28template <
typename CommandType>
62 NumCommands.fetch_add(
InNumCommands, std::memory_order_relaxed);
82 check(CommandFunction);
93 FTaskTagScope Scope(ETaskTag::EParallelRenderingThread);
94 SCOPED_NAMED_EVENT_TCHAR(Pipe.GetDebugName(), FColor::Magenta);
96 TArray<CommandType, SceneRenderingAllocator> Commands;
99 Commands = MoveTemp(Queue);
102 int32 NumProcessedCommands = 0;
104 for (CommandType& Command : Commands)
106 CommandFunction(MoveTemp(Command));
107 NumProcessedCommands++;
115 }, PrerequisiteTask, UE::Tasks::ETaskPriority::High);
121 return Queue.IsEmpty();
126 Pipe.WaitUntilEmpty();
131 CommandFunctionType CommandFunction;
132 EmptyFunctionType EmptyFunction;
136 std::atomic_int32_t NumCommands{ 0 };
204 const int32 Index = NextIndex.fetch_add(1, std::memory_order_relaxed);
217 if (
Index < List.EditorPrimitives.Num())
219 PrimitiveIndex = List.EditorPrimitives[
Index];
228 std::atomic_int32_t NextIndex = { 0 };
261 struct FViewFamilyGroup
264 uint8 ViewSubsetMask;
267 struct FViewMeshArrays
277#if UE_ENABLE_DEBUG_DRAWING
307 return Contexts.
Num() - 1;
313 return Contexts.
Last();
330 FDynamicMeshElementContextArray Contexts;
332 bool bFinished =
false;
357 UE::Tasks::ETaskPriority
TaskPriority = UE::Tasks::ETaskPriority::High;
366 const UE::Tasks::ETaskPriority
TaskPriority = UE::Tasks::ETaskPriority::High;
379 const UE::Tasks::ETaskPriority
TaskPriority = UE::Tasks::ETaskPriority::High;
393 const UE::Tasks::ETaskPriority
TaskPriority = UE::Tasks::ETaskPriority::High;
440 void BeginInitVisibility();
442 struct FOcclusionCull
521 if (!Tasks.bDynamicMeshElementsPrerequisitesTriggered)
523 Tasks.DynamicMeshElementsPrerequisites.Trigger();
524 Tasks.bDynamicMeshElementsPrerequisitesTriggered =
true;
534 return DynamicMeshElements.ViewCommandsPerView;
539 return Tasks.FrustumCull;
544 return Tasks.FinalizeRelevance;
549 return Tasks.LightVisibility;
554 return Tasks.bWaitingAllowed;
572 struct FDynamicMeshElements
585 } DynamicMeshElements;
606 bool bDynamicMeshElementsPrerequisitesTriggered =
false;
607 bool bWaitingAllowed =
false;
613 const bool bAddNaniteRelevance;
614 const bool bAddLightmapDensityCommands;
615 bool bFinished =
false;
620template<
class T,
int TAmplifyFactor = 1>
645 return Prims.IsEmpty();
647 template<
class TARRAY>
690 int32 PrimitiveIndex,
720 const float CurrentWorldTime;
721 const float DeltaWorldTime;
738 int32 NumVisibleDynamicPrimitives = 0;
739 int32 NumVisibleDynamicEditorPrimitives = 0;
758 struct FPrimitiveLODMask
769 int32 PrimitiveIndex;
776 uint16 CombinedShadingModelMask = 0;
777 uint8 SubstrateUintPerPixel = 0;
778 uint8 SubstrateClosureCountMask = 0;
779 uint8 SubstrateTileTypeMask = 0;
780 bool bUsesAnisotropy =
false;
781 bool bHasDistortionPrimitives =
false;
782 bool bHasCustomDepthPrimitives =
false;
783 bool bUsesGlobalDistanceField =
false;
784 bool bUsesLightingChannels =
false;
785 bool bTranslucentSurfaceLighting =
false;
786 bool bUsesCustomDepth =
false;
787 bool bUsesCustomStencil =
false;
788 bool bUsesMotionVectorWorldOffset =
false;
789 bool bSceneHasSkyMaterial =
false;
790 bool bHasSingleLayerWaterMaterial =
false;
791 bool bUsesSecondStageDepthPass =
false;
792 bool bAddLightmapDensityCommands =
false;
793 bool bComputeRelevanceTaskLaunched =
false;
803 check(Packets.IsEmpty());
804 check(bFinished && bFinalized);
819 check(!bLaunchOnAddPrimitive || !bFinished);
820 return Packets.Emplace_GetRef(
new FRelevancePacket(TaskData, View, ViewIndex, ViewData, MarkMasks, PrerequisitesTask));
830 const uint32 NumPrimitivesPerPacket;
834 const bool bLaunchOnAddPrimitive;
835 bool bFinished =
false;
836 bool bFinalized =
false;
933 if (
Scene.PrimitivesSelected[PrimitiveIndex])
936 bCanBeOccluded =
false;
940 return bCanBeOccluded;
950 template <
bool bIsParallel,
typename VisitorType>
1140 return NumInputSubQueries >= MaxInputSubQueries;
1150 static constexpr uint32 ArrayChunkSize = 1024;
1152 const uint32 MaxInputSubQueries;
1153 uint32 NumInputSubQueries = 0;
1155 FRecordVisitor RecordVisitor;
1157 bool bTaskLaunched =
false;
1165 , MaxNonOccludedPrimitives(
ViewPacket.TaskConfig.Relevance.NumPrimitivesPerPacket)
1167 NonOccludedPrimitives.
Reserve(MaxNonOccludedPrimitives);
1168 CreateOcclusionPacket();
1186 void CreateOcclusionPacket()
1191 const uint32 MaxNonOccludedPrimitives;
1196 bool bFinished =
false;
1197 bool bFinalized =
false;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
#define GIsEditor
Definition CoreGlobals.h:233
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ SDPG_Foreground
Definition EngineTypes.h:191
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
void Init()
Definition LockFreeList.h:4
EMeshDrawCommandCullingPayloadFlags
Definition MeshPassProcessor.h:1655
#define UE_SOURCE_LOCATION
Definition PreprocessorHelpers.h:71
void DrawWireBox(FPrimitiveDrawInterface *PDI, const FBox &Box, const FLinearColor &Color, uint8 DepthPriority, float Thickness, float DepthBias, bool bScreenSpace)
Definition PrimitiveDrawingUtils.cpp:1009
EShadingPath
Definition SceneUtils.h:24
EVisibilityTaskSchedule
Definition SceneVisibilityPrivate.h:338
UE::Tasks::EExtendedTaskPriority GetExtendedTaskPriority(bool bExecuteInParallel)
Definition SceneVisibilityPrivate.h:141
if(Failed) console_printf("Failed.\n")
Definition SceneVisibilityPrivate.h:797
void Finish(UE::Tasks::FTaskEvent &ComputeRelevanceTaskEvent)
Definition SceneVisibility.cpp:2189
void Finalize()
Definition SceneVisibility.cpp:2209
void AddPrimitive(int32 Index)
Definition SceneVisibility.cpp:2175
void AddPrimitives(FPrimitiveIndexList &&PrimitiveIndexList)
Definition SceneVisibility.cpp:2149
~FComputeAndMarkRelevance()
Definition SceneVisibilityPrivate.h:801
Definition SceneVisibilityPrivate.h:301
FGraphEventRef LaunchRenderThreadTask(FDynamicPrimitiveIndexList &&PrimitiveIndexList)
Definition SceneVisibility.cpp:4238
int32 GetNumAsyncContexts() const
Definition SceneVisibilityPrivate.h:305
~FDynamicMeshElementContextContainer()
Definition SceneVisibility.cpp:4228
FDynamicMeshElementContext * GetRenderThreadContext() const
Definition SceneVisibilityPrivate.h:310
void MergeContexts(TArray< FDynamicPrimitive, SceneRenderingAllocator > &OutDynamicPrimitives)
Definition SceneVisibility.cpp:4259
void Submit(FRHICommandListImmediate &RHICmdList)
Definition SceneVisibility.cpp:4393
UE::Tasks::FTask LaunchAsyncTask(FDynamicPrimitiveIndexQueue *PrimitiveIndexQueue, int32 Index, UE::Tasks::ETaskPriority TaskPriority)
Definition SceneVisibility.cpp:4233
Definition SceneVisibilityPrivate.h:246
FGraphEventRef LaunchRenderThreadTask(FDynamicPrimitiveIndexList &&PrimitiveIndexList)
Definition SceneVisibility.cpp:4102
void GatherDynamicMeshElementsForEditorPrimitive(FPrimitiveSceneInfo *Primitive, uint8 ViewMask)
Definition SceneVisibility.cpp:4185
UE::Tasks::FTask LaunchAsyncTask(FDynamicPrimitiveIndexQueue *PrimitiveIndexQueue, UE::Tasks::ETaskPriority TaskPriority)
Definition SceneVisibility.cpp:4120
void GatherDynamicMeshElementsForPrimitive(FPrimitiveSceneInfo *Primitive, uint8 ViewMask)
Definition SceneVisibility.cpp:4141
Definition SceneVisibilityPrivate.h:196
FDynamicPrimitiveIndexQueue(FDynamicPrimitiveIndexList &&InList)
Definition SceneVisibilityPrivate.h:198
bool Pop(FDynamicPrimitiveIndex &PrimitiveIndex)
Definition SceneVisibilityPrivate.h:202
Type
Definition RHIResources.h:412
Definition SceneVisibilityPrivate.h:921
const float CurrentRealTime
Definition SceneVisibilityPrivate.h:1097
FSceneViewState & ViewState
Definition SceneVisibilityPrivate.h:1084
const uint32 OcclusionFrameCounter
Definition SceneVisibilityPrivate.h:1095
const FVector ViewOrigin
Definition SceneVisibilityPrivate.h:1094
bool OcclusionCullPrimitive(VisitorType &Visitor, FOcclusionCullResult &Result, int32 Index)
Definition SceneVisibility.cpp:2676
TArray< bool > * SubIsOccluded
Definition SceneVisibilityPrivate.h:1090
FViewElementPDI & ViewElementPDI
Definition SceneVisibilityPrivate.h:1085
const bool bUseOcclusionFeedback
Definition SceneVisibilityPrivate.h:1099
FOcclusionFeedback & OcclusionFeedback
Definition SceneVisibilityPrivate.h:1087
static constexpr uint32 SubIsOccludedPageSize
Definition SceneVisibilityPrivate.h:1080
FVisibilityViewPacket & ViewPacket
Definition SceneVisibilityPrivate.h:1082
bool CanBeOccluded(int32 PrimitiveIndex, EOcclusionFlags::Type &OutOcclusionFlags) const
Definition SceneVisibilityPrivate.h:925
void RecordOcclusionCullResult(FOcclusionCullResult Result)
Definition SceneVisibilityPrivate.h:943
const bool bNewlyConsideredBBoxExpandActive
Definition SceneVisibilityPrivate.h:1100
TSet< FPrimitiveOcclusionHistory, FPrimitiveOcclusionHistoryKeyFuncs > & PrimitiveOcclusionHistorySet
Definition SceneVisibilityPrivate.h:1088
const FScene & Scene
Definition SceneVisibilityPrivate.h:1092
const FGPUOcclusionState & OcclusionState
Definition SceneVisibilityPrivate.h:1093
FHZBOcclusionTester & HZBOcclusionTests
Definition SceneVisibilityPrivate.h:1086
const float PrimitiveProbablyVisibleTime
Definition SceneVisibilityPrivate.h:1096
FViewInfo & View
Definition SceneVisibilityPrivate.h:1083
const float NeverOcclusionTestDistanceSquared
Definition SceneVisibilityPrivate.h:1098
Definition SceneVisibilityPrivate.h:1129
bool AddPrimitive(int32 PrimitiveIndex)
Definition SceneVisibility.cpp:3278
FGPUOcclusionParallelPacket(FVisibilityViewPacket &InViewPacket, const FGPUOcclusionState &InOcclusionState)
Definition SceneVisibilityPrivate.h:1131
void LaunchOcclusionCullTask()
Definition SceneVisibility.cpp:3300
bool IsFull() const
Definition SceneVisibilityPrivate.h:1138
Definition SceneVisibilityPrivate.h:1161
void Finish(UE::Tasks::FTaskEvent &OcclusionCullTasks)
Definition SceneVisibility.cpp:3389
void Unmap(FRHICommandListImmediate &RHICmdListImmediate) override
Definition SceneVisibility.cpp:3452
void AddPrimitives(FPrimitiveRange PrimitiveRange) override
Definition SceneVisibility.cpp:3357
~FGPUOcclusionParallel()
Definition SceneVisibilityPrivate.h:1171
FGPUOcclusionParallel(FVisibilityViewPacket &InViewPacket)
Definition SceneVisibilityPrivate.h:1163
void Finalize()
Definition SceneVisibility.cpp:3414
Definition SceneVisibilityPrivate.h:1201
void AddPrimitives(FPrimitiveRange PrimitiveRange) override
Definition SceneVisibility.cpp:3462
void Unmap(FRHICommandListImmediate &RHICmdListImmediate) override
Definition SceneVisibility.cpp:3486
FGPUOcclusionSerial(FVisibilityViewPacket &InViewPacket)
Definition SceneVisibilityPrivate.h:1203
Definition SceneVisibilityPrivate.h:1104
const FScene & Scene
Definition SceneVisibilityPrivate.h:1120
FGlobalDynamicVertexBuffer DynamicVertexBuffer
Definition SceneVisibilityPrivate.h:1118
FVisibilityViewPacket & ViewPacket
Definition SceneVisibilityPrivate.h:1119
FGPUOcclusionState State
Definition SceneVisibilityPrivate.h:1123
virtual void Unmap(FRHICommandListImmediate &RHICmdList)
Definition SceneVisibility.cpp:3236
FSceneViewState & ViewState
Definition SceneVisibilityPrivate.h:1122
void WaitForLastOcclusionQuery()
Definition SceneVisibility.cpp:3262
virtual ~FGPUOcclusion()=default
virtual void AddPrimitives(FPrimitiveRange PrimitiveRange)=0
FViewInfo & View
Definition SceneVisibilityPrivate.h:1121
Definition GlobalRenderResources.h:300
Definition GlobalRenderResources.h:216
Definition SceneRendering.h:397
uint32 AddBounds(const FVector &BoundsOrigin, const FVector &BoundsExtent)
Definition SceneOcclusion.cpp:831
Definition InstanceCullingManager.h:45
Definition MeshElementCollector.h:26
Definition MeshPassProcessor.h:156
Definition ScenePrivate.h:681
void AddPrimitive(const FPrimitiveOcclusionHistoryKey &PrimitiveKey, const FVector &BoundsOrigin, const FVector &BoundsBoxExtent, FGlobalDynamicVertexBuffer &DynamicVertexBuffer)
Definition SceneOcclusion.cpp:1796
Definition ScenePrivate.h:112
uint32 HZBTestIndex
Definition ScenePrivate.h:123
Definition PrimitiveSceneInfo.h:266
Definition RHICommandList.h:5284
Definition RHICommandList.h:3819
Definition SceneVisibilityPrivate.h:701
void LaunchComputeRelevanceTask()
Definition SceneVisibility.cpp:1263
void Finalize()
Definition SceneVisibility.cpp:1298
Definition SceneRendering.h:2080
Definition SceneView.h:2212
Definition ScenePrivate.h:746
Definition ScenePrivate.h:2875
TArray< uint8 > PrimitiveOcclusionFlags
Definition ScenePrivate.h:2963
Definition SceneManagement.h:1313
Definition StaticMeshBatch.h:40
Definition StaticMeshBatch.h:16
Definition SceneVisibility.h:16
Definition DynamicPrimitiveDrawing.h:17
Definition SceneRendering.h:1970
Definition SceneRendering.h:1132
Definition VirtualTextureSystem.h:86
Definition SceneVisibilityPrivate.h:350
struct FVisibilityTaskConfig::FRelevance Relevance
uint32 NumVisiblePrimitives
Definition SceneVisibilityPrivate.h:359
struct FVisibilityTaskConfig::FAlwaysVisible AlwaysVisible
EVisibilityTaskSchedule Schedule
Definition SceneVisibilityPrivate.h:354
UE::Tasks::ETaskPriority TaskPriority
Definition SceneVisibilityPrivate.h:357
uint32 NumTestedPrimitives
Definition SceneVisibilityPrivate.h:360
struct FVisibilityTaskConfig::FFrustumCull FrustumCull
struct FVisibilityTaskConfig::FOcclusionCull OcclusionCull
Definition SceneVisibilityPrivate.h:503
~FVisibilityTaskData() override
Definition SceneVisibilityPrivate.h:510
void StartGatherDynamicMeshElements() override
Definition SceneVisibilityPrivate.h:519
bool IsTaskWaitingAllowed() const override
Definition SceneVisibilityPrivate.h:552
void FinishGatherDynamicMeshElements(FExclusiveDepthStencil::Type BasePassDepthStencilAccess, FInstanceCullingManager &InstanceCullingManager, FVirtualTextureUpdater *VirtualTextureUpdater) override
Definition SceneVisibility.cpp:4881
UE::Tasks::FTask GetComputeRelevanceTask() const override
Definition SceneVisibilityPrivate.h:542
void ProcessRenderThreadTasks() override
Definition SceneVisibility.cpp:4756
void Finish() override
Definition SceneVisibility.cpp:4900
UE::Tasks::FTask GetLightVisibilityTask() const override
Definition SceneVisibilityPrivate.h:547
TArrayView< FViewCommands > GetViewCommandsPerView() override
Definition SceneVisibilityPrivate.h:532
void LaunchVisibilityTasks(const UE::Tasks::FTask &BeginInitVisibilityPrerequisites)
Definition SceneVisibility.cpp:4420
UE::Tasks::FTask GetFrustumCullTask() const override
Definition SceneVisibilityPrivate.h:537
Definition SceneVisibilityPrivate.h:424
FVisibilityTaskConfig & TaskConfig
Definition SceneVisibilityPrivate.h:432
int32 ViewIndex
Definition SceneVisibilityPrivate.h:436
FVisibilityTaskData & TaskData
Definition SceneVisibilityPrivate.h:431
FScene & Scene
Definition SceneVisibilityPrivate.h:433
FViewElementPDI ViewElementPDI
Definition SceneVisibilityPrivate.h:437
FViewInfo & View
Definition SceneVisibilityPrivate.h:434
FSceneViewState * ViewState
Definition SceneVisibilityPrivate.h:435
Definition SceneVisibility.h:33
Definition ArrayView.h:139
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_REWRITE bool IsEmpty() const
Definition Array.h:1133
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition ChunkedArray.h:56
Definition SceneVisibilityPrivate.h:30
void AddNumCommands(int32 InNumCommands)
Definition SceneVisibilityPrivate.h:60
void Wait()
Definition SceneVisibilityPrivate.h:124
void ReleaseNumCommands(int32 InNumCommands)
Definition SceneVisibilityPrivate.h:65
bool IsEmpty() const
Definition SceneVisibilityPrivate.h:119
void EnqueueCommand(ArgTypes &&... Args)
Definition SceneVisibilityPrivate.h:80
~TCommandPipe()
Definition SceneVisibilityPrivate.h:39
void SetCommandFunction(CommandFunctionType &&InCommandFunction)
Definition SceneVisibilityPrivate.h:45
TCommandPipe(const TCHAR *InName)
Definition SceneVisibilityPrivate.h:35
void SetPrerequisiteTask(const UE::Tasks::FTask &InPrerequisiteTask)
Definition SceneVisibilityPrivate.h:55
void SetEmptyFunction(TFunction< void()> &&InEmptyFunction)
Definition SceneVisibilityPrivate.h:50
Definition ConcurrentLinearAllocator.h:571
Definition ConcurrentLinearAllocator.h:624
Definition ContainerAllocationPolicies.h:1662
void Lock()
Definition Mutex.h:43
void Unlock()
Definition Mutex.h:53
FORCENOINLINE const TCHAR * GetDebugName() const
Definition Pipe.h:140
TTask< TInvokeResult_T< TaskBodyType > > Launch(const TCHAR *InDebugName, TaskBodyType &&TaskBody, ETaskPriority Priority=ETaskPriority::Default, EExtendedTaskPriority ExtendedPriority=EExtendedTaskPriority::None, ETaskFlags Flags=ETaskFlags::None)
Definition Pipe.h:64
Definition SceneVisibilityPrivate.h:666
Type
Definition SceneVisibilityPrivate.h:668
@ StaticMeshFadeOutDitheredLODMapMask
Definition SceneVisibilityPrivate.h:670
@ StaticMeshVisibilityMapMask
Definition SceneVisibilityPrivate.h:669
@ StaticMeshFadeInDitheredLODMapMask
Definition SceneVisibilityPrivate.h:671
Type
Definition MeshPassProcessor.h:38
@ Num
Definition MeshPassProcessor.h:86
Type
Definition ScenePrivate.h:2486
@ CanBeOccluded
Definition ScenePrivate.h:2490
EExtendedTaskPriority
Definition TaskPrivate.h:60
U16 Index
Definition radfft.cpp:71
Definition SceneVisibilityPrivate.h:680
FDrawCommandRelevancePacket()
Definition SceneVisibility.cpp:1164
int32 NumDynamicBuildRequestElements[EMeshPass::Num]
Definition SceneVisibilityPrivate.h:686
bool bUseCachedMeshDrawCommands
Definition SceneVisibilityPrivate.h:687
FPassDrawCommandBuildRequestArray DynamicBuildRequests[EMeshPass::Num]
Definition SceneVisibilityPrivate.h:684
FPassDrawCommandBuildFlagsArray DynamicBuildFlags[EMeshPass::Num]
Definition SceneVisibilityPrivate.h:685
FPassDrawCommandArray VisibleCachedDrawCommands[EMeshPass::Num]
Definition SceneVisibilityPrivate.h:683
void AddCommandsForMesh(int32 PrimitiveIndex, const FPrimitiveSceneInfo *InPrimitiveSceneInfo, const FStaticMeshBatchRelevance &RESTRICT StaticMeshRelevance, const FStaticMeshBatch &RESTRICT StaticMesh, EMeshDrawCommandCullingPayloadFlags CullingPayloadFlags, const FScene &Scene, bool bCanCache, EMeshPass::Type PassType)
Definition SceneVisibility.cpp:1174
Definition SceneVisibilityPrivate.h:176
bool IsEmpty() const
Definition SceneVisibilityPrivate.h:179
FList Primitives
Definition SceneVisibilityPrivate.h:188
Definition SceneVisibilityPrivate.h:163
uint32 ViewMask
Definition SceneVisibilityPrivate.h:172
uint32 Index
Definition SceneVisibilityPrivate.h:171
FDynamicPrimitiveIndex(int32 InIndex, uint8 InViewMask)
Definition SceneVisibilityPrivate.h:166
FDynamicPrimitiveIndex()=default
Definition SceneVisibilityPrivate.h:235
FPrimitiveViewMasks Primitives
Definition SceneVisibilityPrivate.h:236
Definition SceneVisibilityPrivate.h:155
int32 StartElementIndex
Definition SceneVisibilityPrivate.h:158
int32 EndElementIndex
Definition SceneVisibilityPrivate.h:159
int32 PrimitiveIndex
Definition SceneVisibilityPrivate.h:156
int32 ViewIndex
Definition SceneVisibilityPrivate.h:157
Definition SceneVisibilityPrivate.h:655
FVector ViewOrigin
Definition SceneVisibilityPrivate.h:656
bool bFullEarlyZPass
Definition SceneVisibilityPrivate.h:660
float LODScale
Definition SceneVisibilityPrivate.h:658
int32 ForcedLODLevel
Definition SceneVisibilityPrivate.h:657
float MinScreenRadiusForDepthPrepassSquared
Definition SceneVisibilityPrivate.h:659
Definition SceneVisibilityPrivate.h:1005
TArray< FThrottledOcclusionQuery, SceneRenderingAllocator > ThrottledOcclusionQueries
Definition SceneVisibilityPrivate.h:1073
FGlobalDynamicVertexBuffer & DynamicVertexBuffer
Definition SceneVisibilityPrivate.h:1072
FPrimitiveOcclusionHistory * AddOcclusionHistory(const FPrimitiveOcclusionHistory &History)
Definition SceneVisibilityPrivate.h:1018
FProcessVisitor(FGPUOcclusionPacket &InPacket, FRHICommandList &InRHICmdList, FGlobalDynamicVertexBuffer &InDynamicVertexBuffer)
Definition SceneVisibilityPrivate.h:1006
void SubmitThrottledOcclusionQueries()
Definition SceneVisibility.cpp:3099
void AddVisualizeQuery(const FBox &Box)
Definition SceneVisibilityPrivate.h:1028
TSet< FPrimitiveOcclusionHistory, FPrimitiveOcclusionHistoryKeyFuncs > & PrimitiveOcclusionHistorySet
Definition SceneVisibilityPrivate.h:1074
void Replay(const FRecordVisitor &RecordVisitor)
Definition SceneVisibilityPrivate.h:1045
void AddOcclusionQuery(const FOcclusionQuery &Query)
Definition SceneVisibility.cpp:3073
void AddThrottledOcclusionQuery(const FThrottledOcclusionQuery &Query)
Definition SceneVisibilityPrivate.h:1013
FGPUOcclusionPacket & Packet
Definition SceneVisibilityPrivate.h:1070
void AddOcclusionFeedback(const FOcclusionFeedbackEntry &Entry)
Definition SceneVisibilityPrivate.h:1023
FRHICommandList & RHICmdList
Definition SceneVisibilityPrivate.h:1071
void AddVisualizeQuery(const FBox &Box, const FColor &Color)
Definition SceneVisibilityPrivate.h:1033
void AddHZBBounds(const FHZBBound &HZBBounds)
Definition SceneVisibilityPrivate.h:1038
Definition SceneVisibilityPrivate.h:957
TChunkedArray< FPrimitiveOcclusionHistory, ArrayChunkSize, SceneRenderingAllocator > OcclusionHistories
Definition SceneVisibilityPrivate.h:996
void AddThrottledOcclusionQuery(const FThrottledOcclusionQuery &Query)
Definition SceneVisibilityPrivate.h:958
void AddHZBBounds(const FHZBBound &Bounds)
Definition SceneVisibilityPrivate.h:969
FPrimitiveOcclusionHistory * AddOcclusionHistory(const FPrimitiveOcclusionHistory &History)
Definition SceneVisibilityPrivate.h:964
TArray< FOcclusionQuery, SceneRenderingAllocator > OcclusionQueries
Definition SceneVisibilityPrivate.h:997
void AddOcclusionFeedback(const FOcclusionFeedbackEntry &Entry)
Definition SceneVisibilityPrivate.h:974
void AddOcclusionQuery(const FOcclusionQuery &Query)
Definition SceneVisibilityPrivate.h:989
TArray< TPair< FBox, FColor >, SceneRenderingAllocator > VisualizeQueries
Definition SceneVisibilityPrivate.h:1000
TArray< FHZBBound, SceneRenderingAllocator > HZBBounds
Definition SceneVisibilityPrivate.h:999
void AddVisualizeQuery(const FBox &Box)
Definition SceneVisibilityPrivate.h:979
void AddVisualizeQuery(const FBox &Box, const FColor &Color)
Definition SceneVisibilityPrivate.h:984
TArray< FOcclusionFeedbackEntry, SceneRenderingAllocator > OcclusionFeedbacks
Definition SceneVisibilityPrivate.h:998
static constexpr uint32 ArrayChunkSize
Definition SceneVisibilityPrivate.h:994
Definition SceneVisibilityPrivate.h:903
bool bHZBOcclusion
Definition SceneVisibilityPrivate.h:909
int32 ReadBackLagTolerance
Definition SceneVisibilityPrivate.h:904
bool bSubmitQueries
Definition SceneVisibilityPrivate.h:908
int32 NumBufferedFrames
Definition SceneVisibilityPrivate.h:905
bool bAllowSubQueries
Definition SceneVisibilityPrivate.h:911
int32 NumPrimitiveRangeTasks
Definition SceneVisibilityPrivate.h:906
bool bUseRoundRobinOcclusion
Definition SceneVisibilityPrivate.h:910
Definition SceneVisibilityPrivate.h:890
FHZBBound(FPrimitiveOcclusionHistory *InTargetHistory, const FVector &InBoundsOrigin, const FVector &InBoundsExtent)
Definition SceneVisibilityPrivate.h:891
FPrimitiveOcclusionHistory *const TargetHistory
Definition SceneVisibilityPrivate.h:897
const FVector BoundsOrigin
Definition SceneVisibilityPrivate.h:898
const FVector BoundsExtent
Definition SceneVisibilityPrivate.h:899
Definition SceneManagement.h:1831
Definition SceneVisibilityPrivate.h:842
const FVector Extent
Definition SceneVisibilityPrivate.h:849
const FVector Origin
Definition SceneVisibilityPrivate.h:848
FOcclusionBounds(FVector InOrigin, FVector &InExtent)
Definition SceneVisibilityPrivate.h:843
Definition SceneVisibilityPrivate.h:915
uint32 NumTestedQueries
Definition SceneVisibilityPrivate.h:917
uint32 NumCulledPrimitives
Definition SceneVisibilityPrivate.h:916
Definition SceneVisibilityPrivate.h:879
const FPrimitiveOcclusionHistoryKey PrimitiveKey
Definition SceneVisibilityPrivate.h:885
FOcclusionFeedbackEntry(const FPrimitiveOcclusionHistoryKey &PrimitiveKey, FVector InBoundsOrigin, FVector InBoundsExtent)
Definition SceneVisibilityPrivate.h:880
const FOcclusionBounds Bounds
Definition SceneVisibilityPrivate.h:886
Definition SceneVisibilityPrivate.h:866
FPrimitiveOcclusionHistory * PrimitiveOcclusionHistory
Definition SceneVisibilityPrivate.h:873
const bool bGroupedQuery
Definition SceneVisibilityPrivate.h:875
const FOcclusionBounds Bounds
Definition SceneVisibilityPrivate.h:874
FOcclusionQuery(FPrimitiveOcclusionHistory *InPrimitiveOcclusionHistory, FVector InBoundsOrigin, FVector InBoundsExtent, bool bInGroupedQuery)
Definition SceneVisibilityPrivate.h:867
Definition ScenePrivate.h:271
Definition SceneVisibilityPrivate.h:149
int32 StartIndex
Definition SceneVisibilityPrivate.h:150
int32 EndIndex
Definition SceneVisibilityPrivate.h:151
Definition SceneVisibilityPrivate.h:622
FORCEINLINE void AddPrim(T Prim)
Definition SceneVisibilityPrivate.h:630
FORCEINLINE bool IsFull() const
Definition SceneVisibilityPrivate.h:639
const int32 MaxOutputPrims
Definition SceneVisibilityPrivate.h:624
FORCEINLINE bool IsEmpty() const
Definition SceneVisibilityPrivate.h:643
FORCEINLINE void AppendTo(TARRAY &DestArray)
Definition SceneVisibilityPrivate.h:648
TArray< T, SceneRenderingAllocator > Prims
Definition SceneVisibilityPrivate.h:623
FORCEINLINE FRelevancePrimSet(int32 InputPrimCount)
Definition SceneVisibilityPrivate.h:626
Definition SceneVisibilityPrivate.h:853
const FPrimitiveOcclusionHistoryKey PrimitiveOcclusionHistoryKey
Definition SceneVisibilityPrivate.h:860
const FOcclusionBounds Bounds
Definition SceneVisibilityPrivate.h:861
FThrottledOcclusionQuery(FPrimitiveOcclusionHistoryKey InPrimitiveOcclusionHistoryKey, FVector InBoundsOrigin, FVector InBoundsExtent, uint32 InLastQuerySubmitFrame)
Definition SceneVisibilityPrivate.h:854
const uint32 LastQuerySubmitFrame
Definition SceneVisibilityPrivate.h:862
Definition SceneRendering.h:246
Definition SceneVisibilityPrivate.h:363
uint32 NumWordsPerTask
Definition SceneVisibilityPrivate.h:370
uint32 NumPrimitivesPerTask
Definition SceneVisibilityPrivate.h:371
const UE::Tasks::ETaskPriority TaskPriority
Definition SceneVisibilityPrivate.h:366
uint32 NumTasks
Definition SceneVisibilityPrivate.h:369
static constexpr uint32 MinWordsPerTask
Definition SceneVisibilityPrivate.h:364
Definition SceneVisibilityPrivate.h:376
uint32 NumWordsPerTask
Definition SceneVisibilityPrivate.h:383
uint32 NumTasks
Definition SceneVisibilityPrivate.h:382
static constexpr uint32 MinWordsPerTask
Definition SceneVisibilityPrivate.h:377
const UE::Tasks::ETaskPriority TaskPriority
Definition SceneVisibilityPrivate.h:379
std::atomic_uint32_t NumCulledPrimitives
Definition SceneVisibilityPrivate.h:385
uint32 NumPrimitivesPerTask
Definition SceneVisibilityPrivate.h:384
Definition SceneVisibilityPrivate.h:397
uint32 MaxQueriesPerTask
Definition SceneVisibilityPrivate.h:398
Definition SceneVisibilityPrivate.h:390
std::atomic_uint32_t NumCulledPrimitives
Definition SceneVisibilityPrivate.h:402
const UE::Tasks::ETaskPriority FinalizeTaskPriority
Definition SceneVisibilityPrivate.h:394
static constexpr uint32 MinQueriesPerTask
Definition SceneVisibilityPrivate.h:391
std::atomic_uint32_t NumTestedQueries
Definition SceneVisibilityPrivate.h:403
TArray< FView, TInlineAllocator< 2, SceneRenderingAllocator > > Views
Definition SceneVisibilityPrivate.h:401
const UE::Tasks::ETaskPriority TaskPriority
Definition SceneVisibilityPrivate.h:393
Definition SceneVisibilityPrivate.h:408
static constexpr uint32 MinPrimitivesPerTask
Definition SceneVisibilityPrivate.h:409
uint32 NumEstimatedPackets
Definition SceneVisibilityPrivate.h:414
static constexpr uint32 MaxPrimitivesPerTask
Definition SceneVisibilityPrivate.h:410
uint32 NumPrimitivesProcessed
Definition SceneVisibilityPrivate.h:416
const UE::Tasks::ETaskPriority ComputeRelevanceTaskPriority
Definition SceneVisibilityPrivate.h:412
uint32 NumPrimitivesPerPacket
Definition SceneVisibilityPrivate.h:415