#include <GPUScene.h>
|
| | FGPUScene (FScene &InScene) |
| |
| | ~FGPUScene () |
| |
| void | SetEnabled (ERHIFeatureLevel::Type InFeatureLevel) |
| |
| bool | IsEnabled () const |
| |
| void | BeginRender (FRDGBuilder &GraphBuilder, FGPUSceneDynamicContext &GPUSceneDynamicContext) |
| |
| bool | IsRendering () const |
| |
| void | EndRender () |
| |
| ERHIFeatureLevel::Type | GetFeatureLevel () const |
| |
| EShaderPlatform | GetShaderPlatform () const |
| |
| int32 | AllocateInstanceSceneDataSlots (FPersistentPrimitiveIndex PersistentPrimitiveIndex, int32 NumInstanceSceneDataEntries) |
| |
| void | FreeInstanceSceneDataSlots (int32 InstanceSceneDataOffset, int32 NumInstanceSceneDataEntries) |
| |
| int32 | AllocateInstancePayloadDataSlots (int32 NumInstancePayloadFloat4Entries) |
| |
| void | FreeInstancePayloadDataSlots (int32 InstancePayloadDataOffset, int32 NumInstancePayloadFloat4Entries) |
| |
| void | UploadDynamicPrimitiveShaderDataForView (FRDGBuilder &GraphBuilder, FViewInfo &View, bool bRayTracing=false, UE::Renderer::Private::IShadowInvalidatingInstances *ShadowInvalidatingInstances=nullptr) |
| |
| bool | FillSceneUniformBuffer (FRDGBuilder &GraphBuilder, FSceneUniformBuffer &SceneUB) const |
| |
| void | Update (FRDGBuilder &GraphBuilder, FSceneUniformBuffer &SceneUB, FRDGExternalAccessQueue &ExternalAccessQueue, const FUpdateFromComputeCommands &UpdatesFromCompute, const UE::Tasks::FTask &UpdateTaskPrerequisites={}) |
| |
| void RENDERER_API | AddPrimitiveToUpdate (FPersistentPrimitiveIndex PersistentPrimitiveIndex, EPrimitiveDirtyState DirtyState=EPrimitiveDirtyState::ChangedAll) |
| |
| FORCEINLINE EPrimitiveDirtyState | GetPrimitiveDirtyState (FPersistentPrimitiveIndex PersistentPrimitiveIndex) const |
| |
| uint32 | GetSceneFrameNumber () const |
| |
| int32 | GetNumInstances () const |
| |
| int32 | GetNumPrimitives () const |
| |
| int32 | GetMaxLightId () const |
| |
| int32 | GetNumLightmapDataItems () const |
| |
| FGPUSceneDynamicContext * | GetCurrentDynamicContext () const |
| |
| uint32 | GetInstanceIdUpperBoundGPU () const |
| |
| const FSpanAllocator & | GetInstanceSceneDataAllocator () const |
| |
| FGPUSceneResourceParameters | GetShaderParameters (FRDGBuilder &GraphBuilder) const |
| |
| void | DebugRender (FRDGBuilder &GraphBuilder, FSceneUniformBuffer &SceneUniformBuffer, FViewInfo &View) |
| |
| void | ConsolidateInstanceDataAllocations () |
| |
| bool | ExecuteDeferredGPUWritePass (FRDGBuilder &GraphBuilder, TArray< FViewInfo > &Views, EGPUSceneGPUWritePass Pass) |
| |
| bool | HasPendingGPUWrite (uint32 PrimitiveId) const |
| |
| void | OnPreSceneUpdate (FRDGBuilder &GraphBuilder, const FScenePreUpdateChangeSet &ScenePreUpdateData) |
| |
| void | OnPostSceneUpdate (FRDGBuilder &GraphBuilder, const FScenePostUpdateChangeSet &ScenePostUpdateData) |
| |
| void | OnPostLightSceneInfoUpdate (FRDGBuilder &OnPostLightSceneInfoUpdate, const FLightSceneChangeSet &LightsPostUpdateData) |
| |
| const FScene & | GetScene () const |
| |
| SIZE_T | GetAllocatedSize () const |
| |
| FGPUSceneResourceParametersRHI | GetShaderParametersRHI () const |
| |
◆ FInstanceGPULoadBalancer
◆ FInstanceRange
◆ FUpdateFromComputeCommands
◆ FGPUScene()
| FGPUScene::FGPUScene |
( |
FScene & |
InScene | ) |
|
◆ ~FGPUScene()
| FGPUScene::~FGPUScene |
( |
| ) |
|
◆ AddPrimitiveToUpdate()
Queue the given primitive for upload to GPU at next call to Update. May be called multiple times, dirty-flags are cumulative.
◆ AllocateInstancePayloadDataSlots()
| int32 FGPUScene::AllocateInstancePayloadDataSlots |
( |
int32 |
NumInstancePayloadFloat4Entries | ) |
|
◆ AllocateInstanceSceneDataSlots()
Allocates a range of space in the instance scene data buffer for the required number of instances, returns the offset to the first instance or INDEX_NONE if either the allocation failed or NumInstanceSceneDataEntries was zero. Marks the instances as requiring update (actual update is handled later).
◆ BeginRender()
Call at start of rendering (but after scene primitives are updated) to let GPU-Scene record scene primitive count and prepare for dynamic primitive allocations. Scene may be NULL which means there are zero scene primitives (but there may be dynamic ones added later).
◆ ConsolidateInstanceDataAllocations()
| void FGPUScene::ConsolidateInstanceDataAllocations |
( |
| ) |
|
Manually trigger an allocator consolidate (will otherwise be done when an item is allocated).
◆ DebugRender()
Draw GPU-Scene debug info, such as bounding boxes. Call once per view at some point in the frame after GPU scene has been updated fully. What is drawn is controlled by the CVar: r.GPUScene.DebugMode. Enabling this cvar causes ShaderDraw to be being active (if supported).
◆ EndRender()
| void FGPUScene::EndRender |
( |
| ) |
|
◆ ExecuteDeferredGPUWritePass()
Executes GPUScene writes that were deferred until a later point in scene rendering
◆ FillSceneUniformBuffer()
Modifies the GPUScene specific scene UB parameters to the current versions. Returns true if any of the parameters changed.
◆ FreeInstancePayloadDataSlots()
| void FGPUScene::FreeInstancePayloadDataSlots |
( |
int32 |
InstancePayloadDataOffset, |
|
|
int32 |
NumInstancePayloadFloat4Entries |
|
) |
| |
◆ FreeInstanceSceneDataSlots()
| void FGPUScene::FreeInstanceSceneDataSlots |
( |
int32 |
InstanceSceneDataOffset, |
|
|
int32 |
NumInstanceSceneDataEntries |
|
) |
| |
Free the instance data slots for reuse.
◆ GetAllocatedSize()
| SIZE_T FGPUScene::GetAllocatedSize |
( |
| ) |
const |
◆ GetCurrentDynamicContext()
◆ GetFeatureLevel()
◆ GetInstanceIdUpperBoundGPU()
| uint32 FGPUScene::GetInstanceIdUpperBoundGPU |
( |
| ) |
const |
Returns the highest instance ID that is represented in the GPU scene (which may be lower than the host allocated IDs due to various limits) Never larger than MAX_INSTANCE_ID, see Engine\Shaders\Shared\SceneDefinitions.h
◆ GetInstanceSceneDataAllocator()
| const FSpanAllocator & FGPUScene::GetInstanceSceneDataAllocator |
( |
| ) |
const |
|
inline |
◆ GetMaxLightId()
| int32 FGPUScene::GetMaxLightId |
( |
| ) |
const |
|
inline |
◆ GetNumInstances()
| int32 FGPUScene::GetNumInstances |
( |
| ) |
const |
|
inline |
◆ GetNumLightmapDataItems()
| int32 FGPUScene::GetNumLightmapDataItems |
( |
| ) |
const |
|
inline |
◆ GetNumPrimitives()
| int32 FGPUScene::GetNumPrimitives |
( |
| ) |
const |
|
inline |
◆ GetPrimitiveDirtyState()
◆ GetScene()
| const FScene & FGPUScene::GetScene |
( |
| ) |
const |
|
inline |
◆ GetSceneFrameNumber()
| uint32 FGPUScene::GetSceneFrameNumber |
( |
| ) |
const |
|
inline |
◆ GetShaderParameters()
Return the GPU scene resource
◆ GetShaderParametersRHI()
◆ GetShaderPlatform()
◆ HasPendingGPUWrite()
| bool FGPUScene::HasPendingGPUWrite |
( |
uint32 |
PrimitiveId | ) |
const |
Returns whether or not a GPU Write is pending for the specified primitive
◆ IsEnabled()
| bool FGPUScene::IsEnabled |
( |
| ) |
const |
|
inline |
◆ IsRendering()
| bool FGPUScene::IsRendering |
( |
| ) |
const |
|
inline |
◆ OnPostLightSceneInfoUpdate()
◆ OnPostSceneUpdate()
Called by FScene::UpdateAllPrimimitiveSceneInfos after the scene is udated.
◆ OnPreSceneUpdate()
Called by FScene::UpdateAllPrimimitiveSceneInfos before the scene is udated.
◆ SetEnabled()
◆ Update()
Pull all pending updates from Scene and upload primitive & instance data.
◆ UploadDynamicPrimitiveShaderDataForView()
Upload primitives from View.DynamicPrimitiveCollector.
◆ FGPUScenePrimitiveCollector
◆ bUpdateAllPrimitives
| bool FGPUScene::bUpdateAllPrimitives |
◆ InstancePayloadDataAllocator
◆ InstancePayloadDataBuffer
◆ InstancePayloadUploadBuffer
◆ InstanceSceneDataBuffer
GPU primitive instance list
◆ InstanceSceneUploadBuffer
◆ LightmapDataAllocator
◆ LightmapDataBuffer
◆ LightmapUploadBuffer
◆ PrimitiveBuffer
◆ PrimitiveUploadBuffer
The documentation for this class was generated from the following files: