#include <VirtualShadowMapCacheManager.h>
|
| | FVirtualShadowMapArrayCacheManager (FScene &InScene) |
| |
| virtual | ~FVirtualShadowMapArrayCacheManager () |
| |
| virtual void | InitExtension (FScene &InScene) override |
| |
| virtual ISceneExtensionUpdater * | CreateUpdater () override |
| |
| virtual ISceneExtensionRenderer * | CreateRenderer (FSceneRendererBase &InSceneRenderer, const FEngineShowFlags &EngineShowFlags) override |
| |
| void | SetPhysicalPoolSize (FRDGBuilder &GraphBuilder, FIntPoint RequestedSize, int RequestedArraySize, uint32 MaxPhysicalPages) |
| |
| void | FreePhysicalPool (FRDGBuilder &GraphBuilder) |
| |
| TRefCountPtr< IPooledRenderTarget > | GetPhysicalPagePool () const |
| |
| TRefCountPtr< FRDGPooledBuffer > | GetPhysicalPageMetaData () const |
| |
| TRefCountPtr< IPooledRenderTarget > | SetHZBPhysicalPoolSize (FRDGBuilder &GraphBuilder, FIntPoint RequestedSize, int32 RequestedArraySize, const EPixelFormat Format) |
| |
| void | FreeHZBPhysicalPool (FRDGBuilder &GraphBuilder) |
| |
| void | Invalidate (FRDGBuilder &GraphBuilder) |
| |
| void | UpdateUnreferencedCacheEntries (FVirtualShadowMapArray &VirtualShadowMapArray) |
| |
| void | ExtractFrameData (FRDGBuilder &GraphBuilder, FVirtualShadowMapArray &VirtualShadowMapArray, const FSceneRenderer &SceneRenderer, bool bAllowPersistentData) |
| |
| TSharedPtr< FVirtualShadowMapPerLightCacheEntry > | FindCreateLightCacheEntry (int32 LightSceneId, uint32 ViewUniqueID, uint32 NumShadowMaps, uint32 TypeIdTag=0u) |
| |
| bool | IsCacheEnabled () |
| |
| bool | IsCacheDataAvailable () |
| |
| bool | IsHZBDataAvailable () |
| |
| FRHIGPUMask | GetCacheValidGPUMask () const |
| |
| void | UpdateCacheValidGPUMask (FRHIGPUMask GPUMask, bool bMergeMask) |
| |
| bool | IsAccumulatingStats () |
| |
| bool | IsVisualizePassEnabled (const FViewInfo &View, int32 ViewIndex, EVSMVisualizationPostPass Pass) const |
| |
| FScreenPassTexture | AddVisualizePass (FRDGBuilder &GraphBuilder, const FViewInfo &View, int32 ViewIndex, EVSMVisualizationPostPass Pass, FScreenPassTexture &SceneColor, FScreenPassRenderTarget &Output) |
| |
| void | ProcessInvalidations (FRDGBuilder &GraphBuilder, FSceneUniformBuffer &SceneUniformBuffer, FInvalidatingPrimitiveCollector &InvalidatingPrimitiveCollector) |
| |
| uint64 | GetGPUSizeBytes (bool bLogSizes) const |
| |
| const FVirtualShadowMapArrayFrameData & | GetPrevBuffers () const |
| |
| uint32 | GetStatusFeedbackMessageId () const |
| |
| uint32 | GetStatsFeedbackMessageId () const |
| |
| float | GetGlobalResolutionLodBias () const |
| |
| FEntryMap::TIterator | CreateEntryIterator () |
| |
| FEntryMap::TConstIterator | CreateConstEntryIterator () const |
| |
| UE::Renderer::Private::IShadowInvalidatingInstances * | GetInvalidatingInstancesInterface () |
| |
| FRDGBufferRef | UploadCachePrimitiveAsDynamic (FRDGBuilder &GraphBuilder) const |
| |
| void | ReallocatePersistentPrimitiveIndices () |
| |
| uint32 | GetPhysicalMaxWidth () |
| |
| | ISceneExtension (FScene &InScene) |
| |
| virtual | ~ISceneExtension () |
| |
◆ FEntryMap
◆ FInstanceGPULoadBalancer
◆ FVirtualShadowMapArrayCacheManager()
| FVirtualShadowMapArrayCacheManager::FVirtualShadowMapArrayCacheManager |
( |
FScene & |
InScene | ) |
|
◆ ~FVirtualShadowMapArrayCacheManager()
| FVirtualShadowMapArrayCacheManager::~FVirtualShadowMapArrayCacheManager |
( |
| ) |
|
|
virtual |
◆ AddVisualizePass()
◆ CreateConstEntryIterator()
| FEntryMap::TConstIterator FVirtualShadowMapArrayCacheManager::CreateConstEntryIterator |
( |
| ) |
const |
|
inline |
◆ CreateEntryIterator()
| FEntryMap::TIterator FVirtualShadowMapArrayCacheManager::CreateEntryIterator |
( |
| ) |
|
|
inline |
◆ CreateRenderer()
◆ CreateUpdater()
◆ ExtractFrameData()
Call at end of frame to extract resouces from the virtual SM array to preserve to next frame.
If bAllowPersistentData is false, all previous frame data is dropped and cache (and HZB!) data will not be available for the next frame. This flag is mostly intended for temporary editor resources like thumbnail rendering that will be used infrequently but often not properly destructed. We need to ensure that the VSM data associated with these renderer instances gets dropped.
◆ FindCreateLightCacheEntry()
Finds an existing cache entry and moves to the active set or creates a fresh one. TypeIdTag is an arbitrary type ID to make it possible to have more than one shadow map for the same light & view, it is up to the user to make sure there are no collisions.
◆ FreeHZBPhysicalPool()
| void FVirtualShadowMapArrayCacheManager::FreeHZBPhysicalPool |
( |
FRDGBuilder & |
GraphBuilder | ) |
|
◆ FreePhysicalPool()
| void FVirtualShadowMapArrayCacheManager::FreePhysicalPool |
( |
FRDGBuilder & |
GraphBuilder | ) |
|
◆ GetCacheValidGPUMask()
| FRHIGPUMask FVirtualShadowMapArrayCacheManager::GetCacheValidGPUMask |
( |
| ) |
const |
|
inline |
◆ GetGlobalResolutionLodBias()
| float FVirtualShadowMapArrayCacheManager::GetGlobalResolutionLodBias |
( |
| ) |
const |
|
inline |
◆ GetGPUSizeBytes()
| uint64 FVirtualShadowMapArrayCacheManager::GetGPUSizeBytes |
( |
bool |
bLogSizes | ) |
const |
◆ GetInvalidatingInstancesInterface()
◆ GetPhysicalMaxWidth()
| uint32 FVirtualShadowMapArrayCacheManager::GetPhysicalMaxWidth |
( |
| ) |
|
◆ GetPhysicalPageMetaData()
◆ GetPhysicalPagePool()
◆ GetPrevBuffers()
◆ GetStatsFeedbackMessageId()
| uint32 FVirtualShadowMapArrayCacheManager::GetStatsFeedbackMessageId |
( |
| ) |
const |
|
inline |
◆ GetStatusFeedbackMessageId()
| uint32 FVirtualShadowMapArrayCacheManager::GetStatusFeedbackMessageId |
( |
| ) |
const |
|
inline |
◆ InitExtension()
| void FVirtualShadowMapArrayCacheManager::InitExtension |
( |
FScene & |
InScene | ) |
|
|
overridevirtual |
InitExtension is called after all scene extensions have been created, and an extension can therefore query for other extensions here.
Reimplemented from ISceneExtension.
◆ Invalidate()
| void FVirtualShadowMapArrayCacheManager::Invalidate |
( |
FRDGBuilder & |
GraphBuilder | ) |
|
◆ IsAccumulatingStats()
| bool FVirtualShadowMapArrayCacheManager::IsAccumulatingStats |
( |
| ) |
|
◆ IsCacheDataAvailable()
| bool FVirtualShadowMapArrayCacheManager::IsCacheDataAvailable |
( |
| ) |
|
◆ IsCacheEnabled()
| bool FVirtualShadowMapArrayCacheManager::IsCacheEnabled |
( |
| ) |
|
◆ IsHZBDataAvailable()
| bool FVirtualShadowMapArrayCacheManager::IsHZBDataAvailable |
( |
| ) |
|
◆ IsVisualizePassEnabled()
◆ ProcessInvalidations()
◆ ReallocatePersistentPrimitiveIndices()
| void FVirtualShadowMapArrayCacheManager::ReallocatePersistentPrimitiveIndices |
( |
| ) |
|
◆ SetHZBPhysicalPoolSize()
◆ SetPhysicalPoolSize()
| void FVirtualShadowMapArrayCacheManager::SetPhysicalPoolSize |
( |
FRDGBuilder & |
GraphBuilder, |
|
|
FIntPoint |
RequestedSize, |
|
|
int |
RequestedArraySize, |
|
|
uint32 |
MaxPhysicalPages |
|
) |
| |
◆ ShouldCreateExtension()
| bool FVirtualShadowMapArrayCacheManager::ShouldCreateExtension |
( |
FScene & |
InScene | ) |
|
|
static |
◆ UpdateCacheValidGPUMask()
| void FVirtualShadowMapArrayCacheManager::UpdateCacheValidGPUMask |
( |
FRHIGPUMask |
GPUMask, |
|
|
bool |
bMergeMask |
|
) |
| |
|
inline |
◆ UpdateUnreferencedCacheEntries()
Called before VSM builds page allocations to reallocate any lights that may not be visible this frame but that may still have cached physical pages. We reallocate new VSM each frame for these to allow the associated physical pages to live through short periods of being offscreen or otherwise culled. This function also removes entries that are too old.
◆ UploadCachePrimitiveAsDynamic()
◆ FVirtualShadowMapInvalidationSceneRenderer
◆ FVirtualShadowMapInvalidationSceneUpdater
◆ MaxStatFrames
| constexpr uint32 FVirtualShadowMapArrayCacheManager::MaxStatFrames = 512 * 1024U |
|
staticconstexpr |
The documentation for this class was generated from the following files: