15#include "LumenDefinitions.h"
162static_assert(
sizeof(
FLumenCardId) ==
sizeof(
uint64),
"Unexpected size of FLumenCardId");
577 struct FPageBinAllocation
588 SubPageList.SetNum(SubPageFreeCount,
false);
593 const int32 Index = SubPageList.FindAndSetFirstZeroBit();
604 SubPageList[
Index] =
false;
607 uint32 GetSubPageFreeCount()
const
609 return SubPageFreeCount;
612 bool HasFreeElements()
const
614 return SubPageFreeCount > 0;
619 return SubPageFreeCount == PageSizeInElements.X * PageSizeInElements.Y;
631 int32 SubPageFreeCount = 0;
640 int32 GetSubPageCount()
const
642 return PageSizeInElements.X * PageSizeInElements.Y;
645 uint32 GetBinAllocationCount()
const
647 return BinAllocations.Num();
650 uint32 GetSubPageFreeCount()
const
660 bool HasFreeElements()
const
673 FPageBinAllocation* GetBinAllocation()
688 FPageBinAllocation&
NewBinAllocation = BinAllocations.AddDefaulted_GetRef();
724 void FreePhysicalAtlasPage(
const FIntPoint& PageCoord);
728 int32 PhysicalPageFreeCount = 0;
747 static const uint8 InvalidPageBinIndex = 0xFF;
749 FPageBinLookup PageBinLookup;
750 bool bInitPageBinLookup =
true;
756 const uint32 OutIndex = FMath::FloorLog2(
InRes.X) + FMath::FloorLog2(
InRes.Y) * 8u;
758 return (
uint8)OutIndex;
765 if (BinIndex != InvalidPageBinIndex)
767 return &PageBins[BinIndex];
776 if (BinIndex != InvalidPageBinIndex)
778 return &PageBins[BinIndex];
787 if (BinIndex == InvalidPageBinIndex)
795 return &PageBins.
Last();
799 return &PageBins[BinIndex];
1217 void FlushPendingCardSharingInfos();
1221 uint32 SurfaceCacheUpdateFrameIndex = 1;
1225 float CurrentCachedLightingPreExposure = 0.0f;
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
ESurfaceCacheCompression
Definition LumenSceneData.h:805
ESurfaceCacheCompression GetSurfaceCacheCompression()
Definition LumenSurfaceCache.cpp:57
uint32 GetTypeHash(const FLumenCardId &Key)
Definition LumenSceneData.h:164
ELumenReflectionPass
Definition LumenSceneData.h:24
FInt32Point FIntPoint
Definition MathFwd.h:124
ELumenCardDilationMode
Definition MeshCardRepresentation.h:17
#define MAX_NUM_GPUS
Definition MultiGPU.h:25
#define MAX_uint8
Definition NumericLimits.h:19
ERDGTextureFlags
Definition RenderGraphDefinitions.h:185
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define SHADER_PARAMETER_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1708
#define END_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1669
#define SHADER_PARAMETER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1720
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1663
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
Definition RobinHoodHashTable.h:72
bool IsValid() const
Definition RobinHoodHashTable.h:82
Definition RobinHoodHashTable.h:1135
Definition BinaryHeap.h:20
Definition ScenePrivate.h:2071
Definition MeshCardBuild.h:23
Definition DeferredShadingRenderer.h:88
Definition LumenSceneData.h:274
float ResolutionScale
Definition LumenSceneData.h:303
bool bVisible
Definition LumenSceneData.h:283
uint8 AxisAlignedDirectionIndex
Definition LumenSceneData.h:302
FLumenSurfaceMipMap SurfaceMipMaps[Lumen::NumResLevels]
Definition LumenSceneData.h:297
void SetTransform(const FMatrix &LocalToWorld, const FLumenMeshCards &MeshCards)
Definition LumenMeshCards.cpp:1210
void GetSurfaceStats(const TSparseSpanArray< FLumenPageTableEntry > &PageTable, FSurfaceStats &Stats) const
Definition LumenMeshCards.cpp:1290
ELumenCardDilationMode DilationMode
Definition LumenSceneData.h:287
FLumenSurfaceMipMap & GetMipMap(int32 ResLevel)
Definition LumenSceneData.h:341
int32 IndexInMeshCards
Definition LumenSceneData.h:300
bool IsAllocated() const
Definition LumenSceneData.h:325
FLumenCardOBBf MeshCardsOBB
Definition LumenSceneData.h:281
int32 MeshCardsIndex
Definition LumenSceneData.h:299
FLumenCard()
Definition LumenMeshCards.cpp:1161
void GetMipMapDesc(int32 ResLevel, FLumenMipMapDesc &Desc) const
Definition LumenMeshCards.cpp:1255
const FLumenSurfaceMipMap & GetMipMap(int32 ResLevel) const
Definition LumenSceneData.h:351
bool bHeightfield
Definition LumenSceneData.h:284
uint8 MinAllocatedResLevel
Definition LumenSceneData.h:290
FLumenCardId CardSharingId
Definition LumenSceneData.h:308
bool bAxisXFlipped
Definition LumenSceneData.h:285
FLumenCardOBBd WorldOBB
Definition LumenSceneData.h:280
void UpdateMinMaxAllocatedLevel()
Definition LumenMeshCards.cpp:1221
uint8 IndexInBuildData
Definition LumenSceneData.h:301
~FLumenCard()
Definition LumenMeshCards.cpp:1170
uint8 MaxAllocatedResLevel
Definition LumenSceneData.h:291
FLumenCardOBBf LocalOBB
Definition LumenSceneData.h:279
FIntPoint ResLevelToResLevelXYBias() const
Definition LumenMeshCards.cpp:1236
uint8 DesiredLockedResLevel
Definition LumenSceneData.h:294
int32 CardSharingListIndex
Definition LumenSceneData.h:309
float CardAspect
Definition LumenSceneData.h:306
Definition LumenSceneData.h:985
bool bDirectionalLightValid
Definition LumenSceneData.h:989
FLinearColor SkyLightColor
Definition LumenSceneData.h:988
FLumenGlobalLightingState()
Definition LumenSceneData.h:992
FLinearColor DirectionalLightColor
Definition LumenSceneData.h:987
bool bSkyLightValid
Definition LumenSceneData.h:990
Definition LumenMeshCards.h:29
Definition LumenSceneData.h:360
const FPrimitiveSceneInfo * Primitive
Definition LumenSceneData.h:366
int32 PrimitiveIndex
Definition LumenSceneData.h:369
TArray< int32, TInlineAllocator< 1 > > LumenPrimitiveGroupIndices
Definition LumenSceneData.h:370
Definition LumenSceneData.h:375
uint8 bFarField
Definition LumenSceneData.h:389
bool HasMergedInstances() const
Definition LumenScene.cpp:326
Experimental::FHashElementId RayTracingGroupMapElementId
Definition LumenSceneData.h:385
uint8 bEmissiveLightSource
Definition LumenSceneData.h:391
float CardResolutionScale
Definition LumenSceneData.h:386
int32 PrimitiveInstanceIndex
Definition LumenSceneData.h:378
int32 HeightfieldIndex
Definition LumenSceneData.h:380
uint8 bValidMeshCards
Definition LumenSceneData.h:388
TArray< FPrimitiveSceneInfo *, TInlineAllocator< 1 > > Primitives
Definition LumenSceneData.h:377
bool HasMergedPrimitives() const
Definition LumenSceneData.h:401
uint8 bHeightfield
Definition LumenSceneData.h:390
int32 MeshCardsIndex
Definition LumenSceneData.h:379
uint8 bLandscape
Definition LumenSceneData.h:395
int32 PrimitiveCullingInfoIndex
Definition LumenSceneData.h:381
uint8 LightingChannelMask
Definition LumenSceneData.h:397
int32 InstanceCullingInfoIndex
Definition LumenSceneData.h:382
uint32 CustomId
Definition LumenSceneData.h:383
uint8 bOpaqueOrMasked
Definition LumenSceneData.h:392
Definition LumenSceneData.h:1002
FUniqueIndexList PrimitivesToUpdateMeshCards
Definition LumenSceneData.h:1053
void InvalidateSurfaceCache(FRHIGPUMask GPUMask, int32 MeshCardsIndex)
Definition LumenMeshCards.cpp:1116
bool bViewSpecific
Definition LumenSceneData.h:1113
bool bTrackAllPrimitives
Definition LumenSceneData.h:1103
bool bAllowCardDownsampleFromSelf
Definition LumenSceneData.h:1010
int32 NumMeshCardsToAdd
Definition LumenSceneData.h:1099
FUniqueIndexList HeightfieldIndicesToUpdateInBuffer
Definition LumenSceneData.h:1041
bool IsPhysicalSpaceAvailable(const FLumenCard &Card, int32 ResLevel, bool bSinglePage) const
Definition LumenSceneData.h:1152
void ReallocVirtualSurface(FLumenCard &Card, int32 CardIndex, int32 ResLevel, bool bLockPages)
Definition LumenScene.cpp:1548
TRefCountPtr< IPooledRenderTarget > RadiosityProbeSHBlueAtlas
Definition LumenSceneData.h:1084
TSparseSpanArray< FLumenHeightfield > Heightfields
Definition LumenSceneData.h:1042
void RemovePrimitiveGroupCullingInfo(FLumenPrimitiveGroup &PrimitiveGroup)
Definition LumenMeshCards.cpp:614
void UpdateSurfaceCacheFeedback(FFeedbackData Data, const TArray< FVector, TInlineAllocator< 2 > > &LumenSceneCameraOrigins, TArray< FSurfaceCacheRequest > &MeshCardsUpdate, const FViewFamilyInfo &ViewFamily, int32 RequestHistogram[Lumen::NumDistanceBuckets])
Definition LumenSurfaceCacheFeedback.cpp:301
TRefCountPtr< IPooledRenderTarget > RadiosityProbeSHRedAtlas
Definition LumenSceneData.h:1082
FRDGAsyncScatterUploadBuffer PrimitiveGroupUploadBuffer
Definition LumenSceneData.h:1024
FIntPoint GetCardCaptureAtlasSizeInPages() const
Definition LumenSceneRendering.cpp:2359
FLumenPrimitiveGroupCullingInfo & GetPrimitiveGroupCullingInfo(const FLumenPrimitiveGroup &PrimitiveGroup, bool bForcePrimitiveLevel=false)
Definition LumenMeshCards.cpp:596
FRDGAsyncScatterUploadBuffer HeightfieldUploadBuffer
Definition LumenSceneData.h:1044
void AddMeshCards(int32 PrimitiveGroupIndex)
Definition LumenMeshCards.cpp:848
TSparseSpanArray< FLumenCard > Cards
Definition LumenSceneData.h:1015
FUniqueIndexList CardIndicesToUpdateInBuffer
Definition LumenSceneData.h:1016
TRefCountPtr< IPooledRenderTarget > FinalLightingAtlas
Definition LumenSceneData.h:1076
bool bReuploadSceneRequest
Definition LumenSceneData.h:1013
bool bFinalLightingAtlasContentsValid
Definition LumenSceneData.h:1098
TRefCountPtr< FRDGPooledBuffer > CardPageLastUsedBuffer
Definition LumenSceneData.h:1062
FIntPoint GetPhysicalAtlasSize() const
Definition LumenSceneData.h:1167
TRefCountPtr< FRDGPooledBuffer > CardBuffer
Definition LumenSceneData.h:1017
void UpdateCardMipMapHierarchy(FLumenCard &Card)
Definition LumenScene.cpp:1717
void UploadPageTable(FRDGBuilder &GraphBuilder, FRDGScatterUploadBuilder &UploadBuilder, FLumenSceneFrameTemporaries &FrameTemporaries)
Definition LumenScene.cpp:519
void UpdatePrimitiveGroupCullingInfo(const FLumenPrimitiveGroup &PrimitiveGroup, const FRenderBounds &NewWorldBounds, bool bForcePrimitiveLevel=false)
Definition LumenMeshCards.cpp:646
FRDGAsyncScatterUploadBuffer CardUploadBuffer
Definition LumenSceneData.h:1018
FLumenPageTableEntry & GetPageTableEntry(int32 PageTableIndex)
Definition LumenSceneData.h:1164
TSparseSpanArray< FLumenMeshCards > MeshCards
Definition LumenSceneData.h:1034
void RemoveMeshCards(int32 PrimitiveGroupIndex, bool bUpdateCullingInfo=true)
Definition LumenMeshCards.cpp:1051
TSet< FPrimitiveSceneInfo * > PendingUpdateOperations
Definition LumenSceneData.h:1105
TRefCountPtr< FRDGPooledBuffer > PageTableBuffer
Definition LumenSceneData.h:1049
~FLumenSceneData()
Definition LumenScene.cpp:671
TSparseSpanArray< FLumenPrimitiveGroupCullingInfo > InstanceCullingInfos
Definition LumenSceneData.h:1035
void IncrementSurfaceCacheUpdateFrameIndex()
Definition LumenSceneRendering.cpp:346
FRDGAsyncScatterUploadBuffer PageTableUploadBuffer
Definition LumenSceneData.h:1050
void ReleaseAtlas()
Definition LumenScene.cpp:1343
TRefCountPtr< IPooledRenderTarget > RadiosityProbeSHGreenAtlas
Definition LumenSceneData.h:1083
TRefCountPtr< IPooledRenderTarget > DiffuseLightingAndSecondMomentHistoryAtlas
Definition LumenSceneData.h:1087
TArray< FLumenPrimitiveGroupRemoveInfo > PendingRemoveOperations
Definition LumenSceneData.h:1107
FIntPoint GetCardCaptureAtlasSize() const
Definition LumenSceneRendering.cpp:2388
TRefCountPtr< IPooledRenderTarget > OpacityAtlas
Definition LumenSceneData.h:1067
TRefCountPtr< IPooledRenderTarget > NumFramesAccumulatedHistoryAtlas
Definition LumenSceneData.h:1088
void ForceEvictEntireCache()
Definition LumenScene.cpp:1954
uint32 GetSurfaceCacheUpdateFrameIndex() const
Definition LumenSceneRendering.cpp:341
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:292
FUniqueIndexList MeshCardsIndicesToUpdateInBuffer
Definition LumenSceneData.h:1033
FLumenSurfaceCacheFeedback SurfaceCacheFeedback
Definition LumenSceneData.h:1094
uint32 GetCardCaptureRefreshNumTexels() const
Definition LumenSceneRendering.cpp:2393
int32 NumHiResPagesToAdd
Definition LumenSceneData.h:1101
void FillFrameTemporaries(FRDGBuilder &GraphBuilder, FLumenSceneFrameTemporaries &FrameTemporaries)
Definition LumenSceneRendering.cpp:1926
TRefCountPtr< IPooledRenderTarget > AlbedoAtlas
Definition LumenSceneData.h:1066
Experimental::TRobinHoodHashMap< int32, int32 > RayTracingGroups
Definition LumenSceneData.h:1027
bool HasPendingOperations() const
Definition LumenSceneData.h:1133
TRefCountPtr< IPooledRenderTarget > NormalAtlas
Definition LumenSceneData.h:1068
float SurfaceCacheResolution
Definition LumenSceneData.h:1110
TRefCountPtr< FRDGPooledBuffer > TileShadowDownsampleFactorAtlas
Definition LumenSceneData.h:1077
int32 GetMeshCardsIndex(const FPrimitiveSceneInfo *PrimitiveSceneInfo, int32 InstanceIndex) const
Definition LumenMeshCards.cpp:582
void RemoveAllMeshCards()
Definition LumenScene.cpp:1370
bool bAllowCardSharing
Definition LumenSceneData.h:1008
TArray< const FPrimitiveSceneInfo * > LandscapePrimitives
Definition LumenSceneData.h:1030
void CopyInitialData(const FLumenSceneData &SourceSceneData)
Definition LumenScene.cpp:1788
void MapSurfaceCachePage(const FLumenSurfaceMipMap &MipMap, int32 PageTableIndex, FRHIGPUMask GPUMask)
Definition LumenScene.cpp:1411
bool bDebugClearAllCachedState
Definition LumenSceneData.h:1005
int32 GetNumCardPages() const
Definition LumenSceneData.h:1166
void UpdateMeshCards(const FMatrix &LocalToWorld, int32 MeshCardsIndex, const FMeshCardsBuildData &MeshCardsBuildData)
Definition LumenMeshCards.cpp:1096
TRefCountPtr< FRDGPooledBuffer > CardPageHighResLastUsedBuffer
Definition LumenSceneData.h:1063
FRDGAsyncScatterUploadBuffer CardPageUploadBuffer
Definition LumenSceneData.h:1059
TRefCountPtr< IPooledRenderTarget > RadiosityTraceHitDistanceAtlas
Definition LumenSceneData.h:1081
const FLumenPageTableEntry & GetPageTableEntry(int32 PageTableIndex) const
Definition LumenSceneData.h:1163
TRefCountPtr< IPooledRenderTarget > EmissiveAtlas
Definition LumenSceneData.h:1069
TChunkedSparseArray< FLumenPrimitiveGroup > PrimitiveGroups
Definition LumenSceneData.h:1022
TArray< int32 > PageTableIndicesToUpdateInBuffer
Definition LumenSceneData.h:1048
void FreeVirtualSurface(FLumenCard &Card, uint8 FromResLevel, uint8 ToResLevel)
Definition LumenScene.cpp:1666
void AllocateCardAtlases(FRDGBuilder &GraphBuilder, FLumenSceneFrameTemporaries &FrameTemporaries, const FSceneViewFamily *ViewFamily)
Definition LumenSurfaceCache.cpp:238
TSet< FPrimitiveSceneInfo * > PendingAddOperations
Definition LumenSceneData.h:1104
TSparseArray< FLumenPrimitiveGroupCullingInfo > PrimitiveCullingInfos
Definition LumenSceneData.h:1036
int32 NumLockedCardsToUpdate
Definition LumenSceneData.h:1100
FLumenGlobalLightingState GlobalLightingState
Definition LumenSceneData.h:1096
FRDGAsyncScatterUploadBuffer SceneInstanceIndexToMeshCardsIndexUploadBuffer
Definition LumenSceneData.h:1055
TRefCountPtr< IPooledRenderTarget > RadiosityTraceRadianceAtlas
Definition LumenSceneData.h:1080
void ProcessLumenSurfaceCacheRequests(const FViewInfo &MainView, float MaxCardUpdateDistanceFromCamera, int32 MaxTileCapturesPerFrame, FLumenCardRenderer &LumenCardRenderer, FRHIGPUMask GPUMask, const TArray< FSurfaceCacheRequest, SceneRenderingAllocator > &SurfaceCacheRequests)
Definition LumenSceneRendering.cpp:876
ESurfaceCacheCompression GetPhysicalAtlasCompression() const
Definition LumenSceneData.h:1173
void ResetAndConsolidate()
Definition LumenScene.cpp:845
TRefCountPtr< FRDGPooledBuffer > CardPageBuffer
Definition LumenSceneData.h:1058
TRefCountPtr< IPooledRenderTarget > RadiosityNumFramesAccumulatedAtlas
Definition LumenSceneData.h:1075
TSparseSpanArray< FLumenPageTableEntry > PageTable
Definition LumenSceneData.h:1047
void RemoveCardFromAtlas(int32 CardIndex)
Definition LumenMeshCards.cpp:1153
bool EvictOldestAllocation(uint32 MaxFramesSinceLastUsed, TSparseUniqueList< int32, SceneRenderingAllocator > &DirtyCards)
Definition LumenScene.cpp:1970
TRefCountPtr< IPooledRenderTarget > DepthAtlas
Definition LumenSceneData.h:1070
uint32 GetCardCaptureRefreshNumPages() const
Definition LumenSceneRendering.cpp:2406
TRefCountPtr< FRDGPooledBuffer > SceneInstanceIndexToMeshCardsIndexBuffer
Definition LumenSceneData.h:1054
TRefCountPtr< FRDGPooledBuffer > HeightfieldBuffer
Definition LumenSceneData.h:1043
FUniqueIndexList PrimitiveGroupIndicesToUpdateInBuffer
Definition LumenSceneData.h:1021
void UpdatePrimitiveInstanceOffset(int32 PrimitiveIndex)
Definition LumenScene.cpp:865
FRDGAsyncScatterUploadBuffer MeshCardsUploadBuffer
Definition LumenSceneData.h:1038
FIntPoint GetRadiosityAtlasSize() const
Definition LumenRadiosity.cpp:268
FLumenSceneReadback SceneReadback
Definition LumenSceneData.h:1091
TRefCountPtr< IPooledRenderTarget > DirectLightingAtlas
Definition LumenSceneData.h:1073
TSet< FPrimitiveSceneInfo * > PendingSurfaceCacheInvalidationOperations
Definition LumenSceneData.h:1106
TRefCountPtr< IPooledRenderTarget > IndirectLightingAtlas
Definition LumenSceneData.h:1074
TRefCountPtr< FRDGPooledBuffer > PrimitiveGroupBuffer
Definition LumenSceneData.h:1023
bool UpdateAtlasSize()
Definition LumenScene.cpp:1388
void DumpStats(const FDistanceFieldSceneData &DistanceFieldSceneData, bool bDumpMeshDistanceFields, bool bDumpPrimitiveCullingInfos, bool bDumpPrimitiveGroups)
Definition LumenScene.cpp:1995
TRefCountPtr< FRDGPooledBuffer > MeshCardsBuffer
Definition LumenSceneData.h:1037
Definition LumenSceneGPUDrivenUpdate.h:14
Definition LumenSceneData.h:815
FRDGTextureRef CreateSharedRT(FRDGBuilder &Builder, const FRDGTextureDesc &Desc, FIntPoint VisibleExtent, const TCHAR *Name, ERDGTextureFlags Flags=ERDGTextureFlags::None)
Definition LumenSceneRendering.cpp:3136
FRDGTextureRef GetRenderTarget() const
Definition LumenSceneData.h:819
Definition LumenSceneData.h:521
void Allocate(const FLumenPageTableEntry &Page, FAllocation &Allocation)
Definition LumenScene.cpp:389
bool IsSpaceAvailable(const FLumenCard &Card, int32 ResLevel, bool bSinglePage) const
Definition LumenScene.cpp:445
void GetStats(FStats &Stats) const
Definition LumenScene.cpp:470
Definition LumenSurfaceCacheFeedback.h:26
Definition LumenSurfaceCacheFeedback.h:20
Definition LumenViewState.h:327
Definition MeshCardBuild.h:94
Definition PrimitiveSceneInfo.h:266
Definition UnifiedBuffer.h:371
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1452
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition UnifiedBuffer.h:391
Definition RenderGraphResources.h:571
Definition RHIGPUReadback.h:116
Definition SceneView.h:2212
Definition ScenePrivate.h:2875
Definition LumenSceneData.h:493
uint16 ResLevel
Definition LumenSceneData.h:496
uint16 LocalPageIndex
Definition LumenSceneData.h:497
float Distance
Definition LumenSceneData.h:498
int32 CardIndex
Definition LumenSceneData.h:495
bool IsLockedMip() const
Definition LumenSceneData.h:500
Definition SceneRendering.h:1970
Definition SceneRendering.h:1132
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition BitArray.h:350
Definition LumenSparseSpanArray.h:210
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
Definition ContainerAllocationPolicies.h:894
Definition SparseArray.h:524
Definition LumenSparseSpanArray.h:16
int32 Num() const
Definition LumenSparseSpanArray.h:18
Definition StaticArray.h:26
Type
Definition EngineTypes.h:1264
Definition DeferredShadingRenderer.cpp:316
uint32 GetFeedbackBufferSize(const FViewFamilyInfo &ViewFamily)
Definition LumenSurfaceCacheFeedback.cpp:68
constexpr uint32 MinResLevel
Definition Lumen.h:41
constexpr uint32 NumResLevels
Definition Lumen.h:44
bool SetLandscapeHeightSamplingParameters(const FVector &LumenSceneViewOrigin, const FScene *Scene, FLumenLandscapeHeightSamplingParameters &OutParameters)
Definition LumenScene.cpp:111
constexpr uint32 NumDistanceBuckets
Definition Lumen.h:47
constexpr uint32 PhysicalPageSize
Definition Lumen.h:38
constexpr uint32 VirtualPageSize
Definition Lumen.h:39
constexpr uint32 FeedbackBufferElementStride
Definition LumenSceneData.h:83
uint32 GetCompactedFeedbackBufferSize()
Definition LumenSurfaceCacheFeedback.cpp:76
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition DoubleFloat.h:75
static CORE_API const FLinearColor Black
Definition Color.h:458
Definition LumenSceneData.h:207
FLumenCardId CardId
Definition LumenSceneData.h:208
uint8 MinAllocatedResLevel
Definition LumenSceneData.h:210
FLumenCardSharingInfoPendingAdd(FLumenCardId InCardId, int32 InCardIndex, uint8 InMinAllocatedResLevel, bool bInAxisXFlipped)
Definition LumenSceneData.h:215
FLumenCardSharingInfoPendingAdd()=default
bool bAxisXFlipped
Definition LumenSceneData.h:211
bool operator<(const FLumenCardSharingInfoPendingAdd &Other) const
Definition LumenSceneData.h:222
int32 CardIndex
Definition LumenSceneData.h:209
Definition LumenSceneData.h:185
FLumenCardSharingInfoPendingRemove()=default
FLumenCardSharingInfoPendingRemove(FLumenCardId InCardId, int32 InCardSharingListIndex)
Definition LumenSceneData.h:191
FLumenCardId CardId
Definition LumenSceneData.h:186
int32 CardSharingListIndex
Definition LumenSceneData.h:187
bool operator<(const FLumenCardSharingInfoPendingRemove &Other) const
Definition LumenSceneData.h:196
Definition LumenSceneData.h:170
FLumenCardSharingInfo(uint32 InCardIndex, uint8 InMinAllocatedResLevel, bool bInAxisXFlipped)
Definition LumenSceneData.h:177
uint32 MinAllocatedResLevel
Definition LumenSceneData.h:172
FLumenCardSharingInfo()=default
uint32 CardIndex
Definition LumenSceneData.h:171
uint32 bAxisXFlipped
Definition LumenSceneData.h:173
Definition LumenSceneData.h:331
uint32 DroppedResLevels
Definition LumenSceneData.h:336
uint32 NumVirtualTexels
Definition LumenSceneData.h:332
uint32 NumPhysicalTexels
Definition LumenSceneData.h:334
uint32 NumLockedVirtualTexels
Definition LumenSceneData.h:333
uint32 NumLockedPhysicalTexels
Definition LumenSceneData.h:335
Definition LumenSceneData.h:264
uint16 ResLevelY
Definition LumenSceneData.h:269
FIntPoint PageResolution
Definition LumenSceneData.h:267
uint16 ResLevelX
Definition LumenSceneData.h:268
FIntPoint SizeInPages
Definition LumenSceneData.h:266
FIntPoint Resolution
Definition LumenSceneData.h:265
bool bSubAllocation
Definition LumenSceneData.h:270
Definition LumenSceneData.h:450
FIntPoint SubAllocationSize
Definition LumenSceneData.h:469
uint32 SamplePageIndex
Definition LumenSceneData.h:458
uint32 GetNumVirtualTexels() const
Definition LumenSceneData.h:481
uint16 SampleCardResLevelY
Definition LumenSceneData.h:462
uint8 ResLevel
Definition LumenSceneData.h:466
uint16 SampleAtlasBiasX
Definition LumenSceneData.h:459
bool IsSubAllocation() const
Definition LumenSceneData.h:471
FIntPoint PhysicalPageCoord
Definition LumenSceneData.h:452
FIntRect PhysicalAtlasRect
Definition LumenSceneData.h:455
uint16 SampleCardResLevelX
Definition LumenSceneData.h:461
uint32 GetNumPhysicalTexels() const
Definition LumenSceneData.h:486
FVector4f CardUVRect
Definition LumenSceneData.h:467
int32 CardIndex
Definition LumenSceneData.h:465
uint16 SampleAtlasBiasY
Definition LumenSceneData.h:460
bool IsMapped() const
Definition LumenSceneData.h:476
Definition LumenSceneData.h:408
uint32 bValidMeshCards
Definition LumenSceneData.h:410
FLumenPrimitiveGroupCullingInfo(const FRenderBounds &Bounds, const FLumenPrimitiveGroup &PrimitiveGroup, int32 InPrimitiveGroupIndex)
Definition LumenSceneData.h:426
int32 PrimitiveGroupIndex
Definition LumenSceneData.h:418
uint32 bVisible
Definition LumenSceneData.h:409
FRenderBounds WorldSpaceBoundingBox
Definition LumenSceneData.h:422
uint32 bOpaqueOrMasked
Definition LumenSceneData.h:413
uint32 NumInstances
Definition LumenSceneData.h:414
uint32 bFarField
Definition LumenSceneData.h:411
FLumenPrimitiveGroupCullingInfo(const FRenderBounds &Bounds, int32 InInstanceCullingInfoOffset, uint32 InNumInstances, bool bInFarField)
Definition LumenSceneData.h:437
int32 InstanceCullingInfoOffset
Definition LumenSceneData.h:419
uint32 bEmissiveLightSource
Definition LumenSceneData.h:412
FLumenPrimitiveGroupCullingInfo()=default
Definition LumenSceneData.h:1176
const uint32 * Data
Definition LumenSceneData.h:1177
uint32 NumElements
Definition LumenSceneData.h:1178
Definition LumenSceneData.h:895
FLumenSharedRT DownsampledSceneDepth2x2
Definition LumenSceneData.h:968
FRDGBufferSRV * HeightfieldBufferSRV
Definition LumenSceneData.h:917
FRDGBufferUAV * CardPageHighResLastUsedBufferUAV
Definition LumenSceneData.h:927
FRDGTextureRef DirectLightingAtlas
Definition LumenSceneData.h:907
FRDGBufferSRVRef DebugData
Definition LumenSceneData.h:980
FRDGTextureRef FinalLightingAtlas
Definition LumenSceneData.h:910
FRDGTextureRef DepthAtlas
Definition LumenSceneData.h:905
FRDGBufferSRV * CardBufferSRV
Definition LumenSceneData.h:915
FRDGTextureRef NumFramesAccumulatedHistoryAtlas
Definition LumenSceneData.h:913
FRDGBufferSRV * CardPageBufferSRV
Definition LumenSceneData.h:921
UE::Tasks::FTask UpdateSceneTask
Definition LumenSceneData.h:936
FRDGTextureRef RadiosityNumFramesAccumulatedAtlas
Definition LumenSceneData.h:909
FLumenSharedRT MegaLightsTileBitmask
Definition LumenSceneData.h:972
FLumenSharedRT DiffuseIndirect
Definition LumenSceneData.h:948
FLumenSharedRT NewHistoryFastUpdateMode_NumFramesAccumulated
Definition LumenSceneData.h:956
FRDGTextureRef NormalAtlas
Definition LumenSceneData.h:903
FRDGBufferRef TileShadowDownsampleFactorAtlas
Definition LumenSceneData.h:911
FRHIGPUBufferReadback * SceneRemoveOpsReadbackBuffer
Definition LumenSceneData.h:933
FRHIGPUBufferReadback * SurfaceCacheFeedbackBuffer
Definition LumenSceneData.h:934
FRDGTextureRef DiffuseLightingAndSecondMomentHistoryAtlas
Definition LumenSceneData.h:912
FRDGBufferSRV * SceneInstanceIndexToMeshCardsIndexBufferSRV
Definition LumenSceneData.h:919
FLumenSharedRT ResolveVariance
Definition LumenSceneData.h:952
FRHIGPUBufferReadback * SceneAddOpsReadbackBuffer
Definition LumenSceneData.h:932
TRDGUniformBufferRef< FLumenCardScene > LumenCardSceneUniformBuffer
Definition LumenSceneData.h:930
FLumenSharedRT ReflectNumHistoryFrames[(uint32) ELumenReflectionPass::MAX]
Definition LumenSceneData.h:945
FRDGTextureRef OpacityAtlas
Definition LumenSceneData.h:902
FRDGBufferUAV * CardPageBufferUAV
Definition LumenSceneData.h:922
FLumenSharedRT NewDiffuseIndirect
Definition LumenSceneData.h:953
FLumenSharedRT ReservoirTraceRadiance
Definition LumenSceneData.h:962
FRDGBufferSRV * CardPageLastUsedBufferSRV
Definition LumenSceneData.h:925
FRDGBufferSRV * MeshCardsBufferSRV
Definition LumenSceneData.h:916
FLumenSharedRT NewResolveVariance
Definition LumenSceneData.h:957
FLumenSharedRT LightIsMoving
Definition LumenSceneData.h:949
FLumenSharedRT ReservoirTraceHitDistance
Definition LumenSceneData.h:963
TArray< FLumenViewOrigin, TFixedAllocator< LUMEN_MAX_VIEWS > > ViewOrigins
Definition LumenSceneData.h:939
FLumenSharedRT EncodedReprojectionVector
Definition LumenSceneData.h:974
FLumenSharedRT DepthHistory
Definition LumenSceneData.h:958
FLumenSharedRT DownsampledSceneDepth2x1
Definition LumenSceneData.h:966
FIntPoint ViewExtent
Definition LumenSceneData.h:941
FRDGBufferSRV * CardPageHighResLastUsedBufferSRV
Definition LumenSceneData.h:928
FRDGTextureRef IndirectLightingAtlas
Definition LumenSceneData.h:908
FLumenSharedRT DownsampledWorldNormal2x2
Definition LumenSceneData.h:969
FLumenSharedRT NewRoughSpecularIndirect
Definition LumenSceneData.h:955
FLumenSharedRT NormalHistory
Definition LumenSceneData.h:959
FRDGTextureRef AlbedoAtlas
Definition LumenSceneData.h:901
FLumenSharedRT LumenTileBitmask
Definition LumenSceneData.h:971
bool bReallocateAtlas
Definition LumenSceneData.h:937
FLumenSurfaceCacheFeedback::FFeedbackResources SurfaceCacheFeedbackResources
Definition LumenSceneData.h:899
FLumenSharedRT RoughSpecularIndirect
Definition LumenSceneData.h:951
FLumenSharedRT LumenPackedPixelData
Definition LumenSceneData.h:975
FRDGBufferSRV * PageTableBufferSRV
Definition LumenSceneData.h:920
FLumenSharedRT ReservoirRayDirection
Definition LumenSceneData.h:961
FLumenSharedRT NewBackfaceDiffuseIndirect
Definition LumenSceneData.h:954
FLumenSharedRT DownsampledWorldNormal2x1
Definition LumenSceneData.h:967
FLumenSharedRT ReflectSpecularIndirect[(uint32) ELumenReflectionPass::MAX]
Definition LumenSceneData.h:944
FLumenSharedRT ReflectResolveVariance[(uint32) ELumenReflectionPass::MAX]
Definition LumenSceneData.h:946
FLumenSharedRT MegaLightsPackedPixelData
Definition LumenSceneData.h:976
FRDGTextureRef EmissiveAtlas
Definition LumenSceneData.h:904
FLumenSharedRT BackfaceDiffuseIndirect
Definition LumenSceneData.h:950
FLumenSharedRT ReservoirTraceHitNormal
Definition LumenSceneData.h:964
FRDGBufferUAV * CardPageLastUsedBufferUAV
Definition LumenSceneData.h:924
FLumenSharedRT ReservoirWeights
Definition LumenSceneData.h:965
FRDGBufferSRV * PrimitiveGroupBufferSRV
Definition LumenSceneData.h:918
Definition LumenSceneData.h:524
FIntRect PhysicalAtlasRect
Definition LumenSceneData.h:529
FIntPoint PhysicalPageCoord
Definition LumenSceneData.h:526
Definition LumenSceneData.h:533
FIntPoint ElementSize
Definition LumenSceneData.h:534
int32 NumAllocations
Definition LumenSceneData.h:535
int32 NumPages
Definition LumenSceneData.h:536
Definition LumenSceneData.h:540
uint32 BinNumPages
Definition LumenSceneData.h:543
uint32 NumFreePages
Definition LumenSceneData.h:541
uint32 BinPageFreeTexels
Definition LumenSceneData.h:545
uint32 BinNumWastedPages
Definition LumenSceneData.h:544
TArray< FBinStats > Bins
Definition LumenSceneData.h:547
Definition LumenSceneData.h:237
FIntPoint GetSizeInPages() const
Definition LumenSceneData.h:252
bool bLocked
Definition LumenSceneData.h:245
uint8 ResLevelY
Definition LumenSceneData.h:241
uint8 SizeInPagesX
Definition LumenSceneData.h:238
bool IsAllocated() const
Definition LumenSceneData.h:247
uint16 PageTableSpanSize
Definition LumenSceneData.h:244
int32 PageTableSpanOffset
Definition LumenSceneData.h:243
uint8 SizeInPagesY
Definition LumenSceneData.h:239
uint8 ResLevelX
Definition LumenSceneData.h:240
int32 GetPageTableIndex(int32 LocalPageIndex) const
Definition LumenSceneData.h:257
Definition LumenSceneData.h:833
FMatrix44f ViewToClip
Definition LumenSceneData.h:850
FVector LumenSceneViewOrigin
Definition LumenSceneData.h:843
FDFVector3 PreViewTranslationDF
Definition LumenSceneData.h:845
const FViewInfo * ReferenceView
Definition LumenSceneData.h:890
float LumenSceneDetail
Definition LumenSceneData.h:856
FVector4f WorldCameraOrigin
Definition LumenSceneData.h:844
float MaxTraceDistance
Definition LumenSceneData.h:854
float LastEyeAdaptationExposure
Definition LumenSceneData.h:853
float CardMaxDistance
Definition LumenSceneData.h:855
bool IsPerspectiveProjection() const
Definition LumenSceneData.h:836
const FSceneViewFamily * Family
Definition LumenSceneData.h:841
float OrthoMaxDimension
Definition LumenSceneData.h:852
FMatrix44f FrustumTranslatedWorldToClip
Definition LumenSceneData.h:849
static constexpr UE_FORCEINLINE_HINT bool IsPowerOfTwo(T Value)
Definition UnrealMathUtility.h:519
Definition RenderGraphDefinitions.h:627
Definition RenderTransform.h:272
Definition LumenUniqueList.h:39
Definition LumenUniqueList.h:19
IntType Y
Definition IntPoint.h:37
static const TIntPoint ZeroValue
Definition IntPoint.h:45
IntType X
Definition IntPoint.h:34
IntType Area() const
Definition IntRect.h:272
Definition LumenSceneData.h:92
uint64 PackedValue
Definition LumenSceneData.h:95
uint32 ResLevelBiasX
Definition LumenSceneData.h:98
static constexpr uint64 InvalidPackedValue
Definition LumenSceneData.h:93
uint32 Unused
Definition LumenSceneData.h:101
bool IsValid() const
Definition LumenSceneData.h:144
uint32 AxisAlignedDirectionIndex
Definition LumenSceneData.h:100
bool operator!=(const FLumenCardId &Other) const
Definition LumenSceneData.h:139
bool operator<(const FLumenCardId &Other) const
Definition LumenSceneData.h:124
static constexpr FLumenCardId GetInvalidId()
Definition LumenSceneData.h:154
uint32 ResLevelBiasY
Definition LumenSceneData.h:99
void Invalidate()
Definition LumenSceneData.h:149
bool operator==(const FLumenCardId &Other) const
Definition LumenSceneData.h:134
uint32 CustomId
Definition LumenSceneData.h:102
bool operator<=(const FLumenCardId &Other) const
Definition LumenSceneData.h:129
FLumenCardId(uint32 InCustomId, uint8 InAxisAlignedDirectionIndex, uint8 InResLevelBiasX, uint8 InResLevelBiasY)
Definition LumenSceneData.h:107
Definition LumenSceneData.h:504
FVirtualPageIndex()
Definition LumenSceneData.h:505
FVirtualPageIndex(int32 InCardIndex, uint16 InResLevel, uint16 InLocalPageIndex)
Definition LumenSceneData.h:506
uint16 ResLevel
Definition LumenSceneData.h:514
uint64 PackedValue
Definition LumenSceneData.h:510
uint16 LocalPageIndex
Definition LumenSceneData.h:515
int32 CardIndex
Definition LumenSceneData.h:513