41template<
typename ShaderType,
typename Po
interTableType>
class TShaderRefBase;
61 static constexpr const char*
TagName =
"SceneRenderingAllocator";
261 NewDesc.DebugName =
TEXT(
"UnknownTextureCubeArray");
394 return TEXT(
"(INVALID)");
877 UE_DEPRECATED(5.4,
"IPersistentViewUniformBufferExtension will be removed in a future version.")
#define check(expr)
Definition AssertionMacros.h:314
#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
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
FInt32Vector3 FIntVector
Definition MathFwd.h:115
FInt32Point FIntPoint
Definition MathFwd.h:124
#define TexCreate_RenderTargetable
Definition RHIDefinitions.h:1192
#define TexCreate_FastVRAM
Definition RHIDefinitions.h:1213
#define TexCreate_None
Definition RHIDefinitions.h:1191
ETextureCreateFlags
Definition RHIDefinitions.h:1091
#define TexCreate_UAV
Definition RHIDefinitions.h:1209
#define TexCreate_SRGB
Definition RHIDefinitions.h:1196
ERHIFeatureLevel::Type GMaxRHIFeatureLevel
Definition RHI.cpp:1338
RENDERCORE_API TRefCountPtr< IPooledRenderTarget > CreateRenderTarget(FRHITexture *Texture, const TCHAR *Name)
Definition RenderTargetPool.cpp:32
RENDERCORE_API bool CacheRenderTarget(FRHITexture *Texture, const TCHAR *Name, TRefCountPtr< IPooledRenderTarget > &OutPooledRenderTarget)
Definition RenderTargetPool.cpp:48
FOnPostOpaqueRender::FDelegate FPostOpaqueRenderDelegate
Definition RendererInterface.h:569
EDrawRectangleFlags
Definition RendererInterface.h:540
@ EDRF_Default
Definition RendererInterface.h:542
@ EDRF_UseTesselatedIndexBuffer
Definition RendererInterface.h:546
@ EDRF_UseTriangleOptimization
Definition RendererInterface.h:544
void() FVTProducerDestroyedFunction(const FVirtualTextureProducerHandle &InHandle, void *Baton)
Definition VirtualTexturing.h:194
Definition CanvasRender.h:9
Definition CanvasTypes.h:211
Definition IDelegateInstance.h:14
Definition GlobalDistanceFieldParameters.h:18
Definition HitProxies.h:86
Definition SceneManagement.h:820
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:2058
Definition RendererInterface.h:597
void SetRequestData(FVector2f SrcViewportUV, int32 TargetBufferIndex, int32 ViewUniqueId, int32 GBufferFormat, bool StaticLightingEnable, float InPreExposure)
Definition RendererInterface.h:613
float PreExposure
Definition RendererInterface.h:644
bool RenderingCommandSend
Definition RendererInterface.h:633
void MarkSendToRendering()
Definition RendererInterface.h:627
int32 ViewId
Definition RendererInterface.h:639
FVector2f SourceViewportUV
Definition RendererInterface.h:637
int32 BufferIndex
Definition RendererInterface.h:638
FPixelInspectorRequest()
Definition RendererInterface.h:599
int32 FrameCountAfterRenderingCommandSend
Definition RendererInterface.h:634
bool AllowStaticLighting
Definition RendererInterface.h:643
bool RequestComplete
Definition RendererInterface.h:636
~FPixelInspectorRequest()
Definition RendererInterface.h:629
int32 GBufferPrecision
Definition RendererInterface.h:642
int32 RequestTickSinceCreation
Definition RendererInterface.h:635
Definition RendererInterface.h:550
FRHIUniformBuffer * ViewUniformBuffer
Definition RendererInterface.h:561
void * Uid
Definition RendererInterface.h:565
FRDGTexture * NormalTexture
Definition RendererInterface.h:557
const FViewInfo * View
Definition RendererInterface.h:566
FMatrix ViewMatrix
Definition RendererInterface.h:553
const FGlobalDistanceFieldParameterData * GlobalDistanceFieldParams
Definition RendererInterface.h:564
TRDGUniformBufferRef< FMobileSceneTextureUniformParameters > MobileSceneTexturesUniformParams
Definition RendererInterface.h:563
FRDGBuilder * GraphBuilder
Definition RendererInterface.h:560
FRDGTexture * ColorTexture
Definition RendererInterface.h:555
FRDGTexture * SmallDepthTexture
Definition RendererInterface.h:559
TRDGUniformBufferRef< FSceneTextureUniformParameters > SceneTexturesUniformParams
Definition RendererInterface.h:562
FIntRect ViewportRect
Definition RendererInterface.h:552
FMatrix ProjMatrix
Definition RendererInterface.h:554
FRDGTexture * VelocityTexture
Definition RendererInterface.h:558
FRDGTexture * DepthTexture
Definition RendererInterface.h:556
Definition PrimitiveSceneInfo.h:266
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition RHICommandList.h:455
Definition RHICommandList.h:3819
Definition RHIResources.h:2153
Definition RHITransientResourceAllocator.h:399
Definition SceneInterface.h:106
Definition SceneView.h:2212
Definition SceneManagement.h:132
Definition SceneView.h:1425
Definition SceneRendering.h:1132
Definition VirtualTexturing.h:471
Definition VirtualTexturing.h:374
Definition RendererInterface.h:588
virtual ICustomVisibilityQuery * CreateQuery(const FSceneView &View)=0
Definition RendererInterface.h:572
virtual bool IsThreadsafe()
Definition RendererInterface.h:581
virtual bool IsVisible(int32 VisibilityId, const FBoxSphereBounds &Bounds)=0
Definition IMaterialCacheTagProvider.h:18
Definition ModuleInterface.h:14
Definition RefCounting.h:196
Definition RendererInterface.h:686
virtual IScenePrimitiveRenderingContext * BeginScenePrimitiveRendering(FRDGBuilder &GraphBuilder, FSceneViewFamily *ViewFamily)=0
virtual void OnWorldCleanup(UWorld *World, bool bSessionEnded, bool bCleanupResources, bool bWorldChanged)=0
virtual void InvalidatePathTracedOutput(PathTracing::EInvalidateReason InvalidateReason=PathTracing::EInvalidateReason::Uncategorized)=0
virtual void RequestVirtualTextureTiles(const FMaterialRenderProxy *InMaterialRenderProxy, const FVector2D &InScreenSpaceSize, ERHIFeatureLevel::Type InFeatureLevel)=0
virtual void GPUBenchmark(FSynthBenchmarkResults &InOut, float WorkScale=10.0f)=0
virtual FDelegateHandle RegisterOverlayRenderDelegate(const FPostOpaqueRenderDelegate &OverlayRenderDelegate)=0
virtual FSceneUniformBuffer * CreateSinglePrimitiveSceneUniformBuffer(FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, FMeshBatch &Mesh)=0
virtual FVirtualTextureProducerHandle RegisterVirtualTextureProducer(FRHICommandListBase &RHICmdList, const FVTProducerDescription &Desc, IVirtualTexture *Producer)=0
virtual TRDGUniformBufferRef< FBatchedPrimitiveParameters > CreateSinglePrimitiveUniformView(FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, EShaderPlatform ShaderPlatform, FMeshBatch &Mesh)=0
virtual FSceneInterface * AllocateScene(UWorld *World, bool bInRequiresHitProxies, bool bCreateFXSystem, ERHIFeatureLevel::Type InFeatureLevel)=0
virtual uint64 GetNaniteRequestRecordBuffer(TArray< uint32 > &OutRequestData)=0
virtual void ReleaseVirtualTextureProducer(const FVirtualTextureProducerHandle &Handle)=0
virtual class FSceneViewStateInterface * AllocateViewState(ERHIFeatureLevel::Type FeatureLevel, FSceneViewStateInterface *ShareOriginTarget)=0
virtual const FViewMatrices & GetPreviousViewMatrices(const FSceneView &View)=0
virtual void DebugLogOnCrash()=0
virtual void UpdateMapNeedsLightingFullyRebuiltState(UWorld *World)=0
virtual void AddVirtualTextureProducerDestroyedCallback(const FVirtualTextureProducerHandle &Handle, FVTProducerDestroyedFunction *Function, void *Baton)=0
virtual uint32 RemoveAllVirtualTextureProducerDestroyedCallbacks(const void *Baton)=0
virtual void DestroyVirtualTexture(IAllocatedVirtualTexture *AllocatedVT)=0
virtual uint32 GetNumDynamicLightsAffectingPrimitive(const class FPrimitiveSceneInfo *PrimitiveSceneInfo, const class FLightCacheInterface *LCI)=0
virtual FSceneUniformBuffer * CreateSinglePrimitiveSceneUniformBuffer(FRDGBuilder &GraphBuilder, const FViewInfo &SceneView, FMeshBatch &Mesh)=0
virtual void RegisterPersistentViewUniformBufferExtension(IPersistentViewUniformBufferExtension *Extension)=0
virtual void RequestVirtualTextureTiles(const FVector2D &InScreenSpaceSize, int32 InMipLevel)=0
virtual void BeginRenderingViewFamily(FCanvas *Canvas, FSceneViewFamily *ViewFamily)=0
virtual void RegisterCustomCullingImpl(ICustomCulling *impl)=0
virtual void AddMeshBatchToGPUScene(FGPUScenePrimitiveCollector *Collector, FMeshBatch &MeshBatch)=0
virtual void LockVirtualTextureTiles(FVirtualTextureProducerHandle ProducerHandle, int32 InMipLevel)=0
virtual void PostRenderAllViewports()=0
virtual void SyncVirtualTextureUpdates(FRHICommandListImmediate &RHICmdList, ERHIFeatureLevel::Type FeatureLevel)=0
virtual void RequestNanitePages(TArrayView< uint32 > InRequestData)=0
virtual TUniquePtr< ISceneRenderBuilder > CreateSceneRenderBuilder(FSceneInterface *Scene)=0
virtual void UnregisterCustomCullingImpl(ICustomCulling *impl)=0
virtual void RemoveScene(FSceneInterface *Scene)=0
virtual class IMaterialCacheTagProvider * GetMaterialCacheTagProvider()=0
virtual void BeginRenderingViewFamilies(FCanvas *Canvas, TConstArrayView< FSceneViewFamily * > ViewFamilies)=0
virtual void PerFrameCleanupIfSkipRenderer()=0
virtual void UpdateStaticDrawLists()=0
virtual FOnResolvedSceneColor & GetResolvedSceneColorCallbacks()=0
virtual void RemovePostOpaqueRenderDelegate(FDelegateHandle PostOpaqueRenderDelegate)=0
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnResolvedSceneColor, FRDGBuilder &, const FSceneTextures &)
virtual void ResetSceneTextureExtentHistory()=0
virtual const FGlobalDistanceFieldParameterData * GetGlobalDistanceFieldParameterData(const FSceneView &View)=0
virtual void UpdateStaticDrawListsForMaterials(const TArray< const FMaterial * > &Materials)=0
virtual TRDGUniformBufferRef< FBatchedPrimitiveParameters > CreateSinglePrimitiveUniformView(FRDGBuilder &GraphBuilder, const FViewInfo &SceneView, FMeshBatch &Mesh)=0
virtual const TSet< FSceneInterface * > & GetAllocatedScenes()=0
virtual void RequestVirtualTextureTiles(TArray< uint64 > &&InPageRequests)=0
virtual void RemoveOverlayRenderDelegate(FDelegateHandle OverlayRenderDelegate)=0
virtual void FlushVirtualTextureCache()=0
virtual void LoadPendingVirtualTextureTiles(FRHICommandListImmediate &RHICmdList, ERHIFeatureLevel::Type FeatureLevel)=0
virtual void DestroyAdaptiveVirtualTexture(IAdaptiveVirtualTexture *AdaptiveVT)=0
virtual IVirtualTexture * FindProducer(const FVirtualTextureProducerHandle &Handle)=0
virtual void ExecVisualizeTextureCmd(const FString &Cmd)=0
virtual class FSceneViewStateInterface * AllocateViewState(ERHIFeatureLevel::Type FeatureLevel)=0
virtual IAdaptiveVirtualTexture * AllocateAdaptiveVirtualTexture(FRHICommandListBase &RHICmdList, const FAdaptiveVTDescription &AdaptiveVTDesc, const FAllocatedVTDescription &AllocatedVTDesc)=0
virtual void SetVirtualTextureRequestRecordBuffer(uint64 Handle)=0
virtual void PrefetchNaniteResource(const Nanite::FResources *Resource, uint32 NumFramesUntilRender)=0
virtual void RequestStaticMeshUpdate(FPrimitiveSceneInfo *Info)=0
virtual void RequestVirtualTextureTiles(IAllocatedVirtualTexture *AllocatedVT, const FVector2D &InScreenSpaceSize, const FVector2D &InViewportPosition, const FVector2D &InViewportSize, const FVector2D &InUV0, const FVector2D &InUV1, int32 InMipLevel)=0
virtual FDelegateHandle RegisterPostOpaqueRenderDelegate(const FPostOpaqueRenderDelegate &PostOpaqueRenderDelegate)=0
virtual void SetNaniteRequestRecordBuffer(uint64 Handle)=0
virtual uint64 GetVirtualTextureRequestRecordBuffer(TSet< uint64 > &OutPageRequests)=0
virtual void DrawRectangle(FRHICommandList &RHICmdList, float X, float Y, float SizeX, float SizeY, float U, float V, float SizeU, float SizeV, FIntPoint TargetSize, FIntPoint TextureSize, const TShaderRefBase< FShader, FShaderMapPointerTable > &VertexShader, EDrawRectangleFlags Flags=EDRF_Default)=0
virtual void InitializeSystemTextures(FRHICommandListImmediate &RHICmdList)=0
virtual void CreateAndInitSingleView(FRHICommandListImmediate &RHICmdList, class FSceneViewFamily *ViewFamily, const struct FSceneViewInitOptions *ViewInitOptions)=0
virtual void ReleaseVirtualTexturePendingResources()=0
virtual void FlushVirtualTextureCache(IAllocatedVirtualTexture *AllocatedVT, const FVector2f &InUV0, const FVector2f &InUV1)=0
virtual IAllocatedVirtualTexture * AllocateVirtualTexture(FRHICommandListBase &RHICmdList, const FAllocatedVTDescription &Desc)=0
virtual void DrawTileMesh(FCanvasRenderContext &RenderContext, struct FMeshPassProcessorRenderState &DrawRenderState, const FSceneView &View, FMeshBatch &Mesh, bool bIsHitTesting, const class FHitProxyId &HitProxyId, bool bUse128bitRT=false)=0
Definition RendererInterface.h:659
virtual ISceneRenderer * GetSceneRenderer()=0
virtual ~IScenePrimitiveRenderingContext()
Definition RendererInterface.h:661
Definition SceneRenderBuilderInterface.h:52
Definition SceneRendererInterface.h:47
Definition StateStreamManager.h:13
Definition VirtualTexturing.h:289
Definition ArrayView.h:139
Definition ConcurrentLinearAllocator.h:121
Definition ConcurrentLinearAllocator.h:571
Definition ConcurrentLinearAllocator.h:190
Definition ConcurrentLinearAllocator.h:624
UE_FORCEINLINE_HINT void SafeRelease()
Definition RefCounting.h:599
Definition ContainerAllocationPolicies.h:1662
Definition ContainerAllocationPolicies.h:894
Definition ContainerAllocationPolicies.h:1383
Definition UniquePtr.h:107
Type
Definition RHIFeatureLevel.h:20
@ SM5
Definition RHIFeatureLevel.h:42
@ ES3_1
Definition RHIFeatureLevel.h:25
Definition SkinnedMeshComponent.h:50
Definition PathTracingOutputInvalidateReason.h:6
Definition VirtualTexturing.h:485
Definition VirtualTexturing.h:69
Definition RHIResources.h:246
Definition MeshBatch.h:371
Definition MeshPassProcessor.h:2118
Definition RendererInterface.h:81
void Reset()
Definition RendererInterface.h:399
bool Is3DTexture() const
Definition RendererInterface.h:303
uint8 PackedBits
Definition RendererInterface.h:445
bool IsValid() const
Definition RendererInterface.h:314
uint8 bIsArray
Definition RendererInterface.h:439
static FPooledRenderTargetDesc Create2DArrayDesc(FIntPoint InExtent, EPixelFormat InFormat, const FClearValueBinding &InClearValue, ETextureCreateFlags InFlags, ETextureCreateFlags InTargetableFlags, bool bInForceSeparateTargetAndShaderResource, uint16 InArraySize, uint8 InNumMips=1, bool InAutowritable=true, bool InCreateRTWriteMask=false, bool InCreateFmask=false)
Definition RendererInterface.h:130
FClearValueBinding ClearValue
Definition RendererInterface.h:412
static FPooledRenderTargetDesc Create2DDesc(FIntPoint InExtent, EPixelFormat InFormat, const FClearValueBinding &InClearValue, ETextureCreateFlags InFlags, ETextureCreateFlags InTargetableFlags, bool bInForceSeparateTargetAndShaderResource, uint8 InNumMips=1, bool InAutowritable=true, bool InCreateRTWriteMask=false, bool InCreateFmask=false)
Definition RendererInterface.h:95
const TCHAR * DebugName
Definition RendererInterface.h:410
ETextureCreateFlags Flags
Definition RendererInterface.h:414
bool IsCubemap() const
Definition RendererInterface.h:293
static FPooledRenderTargetDesc CreateVolumeDesc(uint32 InSizeX, uint32 InSizeY, uint16 InSizeZ, EPixelFormat InFormat, const FClearValueBinding &InClearValue, ETextureCreateFlags InFlags, ETextureCreateFlags InTargetableFlags, bool bInForceSeparateTargetAndShaderResource, uint8 InNumMips=1, bool InAutowritable=true)
Definition RendererInterface.h:167
uint8 NumSamples
Definition RendererInterface.h:428
uint8 NumMips
Definition RendererInterface.h:426
FIntVector GetSize() const
Definition RendererInterface.h:334
FIntPoint Extent
Definition RendererInterface.h:420
uint16 ArraySize
Definition RendererInterface.h:424
uint8 bReserved0
Definition RendererInterface.h:443
static FPooledRenderTargetDesc CreateCubemapDesc(uint32 InExtent, EPixelFormat InFormat, const FClearValueBinding &InClearValue, ETextureCreateFlags InFlags, ETextureCreateFlags InTargetableFlags, bool bInForceSeparateTargetAndShaderResource, uint16 InArraySize=1, uint8 InNumMips=1, bool InAutowritable=true)
Definition RendererInterface.h:202
EPixelFormat Format
Definition RendererInterface.h:416
bool IsArray() const
Definition RendererInterface.h:309
static FPooledRenderTargetDesc CreateCubemapArrayDesc(uint32 InExtent, EPixelFormat InFormat, const FClearValueBinding &InClearValue, ETextureCreateFlags InFlags, ETextureCreateFlags InTargetableFlags, bool bInForceSeparateTargetAndShaderResource, uint16 InArraySize, uint8 InNumMips=1, bool InAutowritable=true)
Definition RendererInterface.h:237
bool Is2DTexture() const
Definition RendererInterface.h:298
FPooledRenderTargetDesc()
Definition RendererInterface.h:85
bool Compare(const FPooledRenderTargetDesc &rhs, bool bExact) const
Definition RendererInterface.h:268
FString GenerateInfoString() const
Definition RendererInterface.h:343
TArray< EPixelFormat, TInlineAllocator< 1 > > AliasableFormats
Definition RendererInterface.h:432
uint16 Depth
Definition RendererInterface.h:422
EPixelFormat UAVFormat
Definition RendererInterface.h:418
uint8 bIsCubemap
Definition RendererInterface.h:441
uint8 FastVRAMPercentage
Definition RendererInterface.h:430
Definition RendererInterface.h:666
~FScenePrimitiveRenderingContextScopeHelper()
Definition RendererInterface.h:672
IScenePrimitiveRenderingContext * ScenePrimitiveRenderingContext
Definition RendererInterface.h:678
FScenePrimitiveRenderingContextScopeHelper(IScenePrimitiveRenderingContext *InScenePrimitiveRenderingContext)
Definition RendererInterface.h:667
Definition RendererInterface.h:453
FSceneRenderTargetItem(FRHITexture *InTargetableTexture, FRHITexture *InShaderResourceTexture, FUnorderedAccessViewRHIRef InUAV)
Definition RendererInterface.h:458
FRHITexture * GetRHI() const
Definition RendererInterface.h:478
FUnorderedAccessViewRHIRef UAV
Definition RendererInterface.h:487
FSceneRenderTargetItem()
Definition RendererInterface.h:455
void SafeRelease()
Definition RendererInterface.h:464
bool IsValid() const
Definition RendererInterface.h:471
FTextureRHIRef ShaderResourceTexture
Definition RendererInterface.h:484
FTextureRHIRef TargetableTexture
Definition RendererInterface.h:481
Definition RendererInterface.h:56
static constexpr const char * TagName
Definition RendererInterface.h:61
static constexpr uint32 BlockSize
Definition RendererInterface.h:57
static constexpr bool RequiresAccurateSize
Definition RendererInterface.h:59
static constexpr bool InlineBlockAllocation
Definition RendererInterface.h:60
static constexpr bool AllowOversizedBlocks
Definition RendererInterface.h:58
Definition SceneTextures.h:110
Definition SceneView.h:180
Definition GenericPlatformSurvey.h:124
Definition VirtualTexturing.h:148
Definition SceneView.h:317
Definition RendererInterface.h:494
virtual uint32 GetRefCount() const =0
virtual bool IsFree() const =0
FSceneRenderTargetItem RenderTargetItem
Definition RendererInterface.h:524
virtual FRHITransientTexture * GetTransientTexture() const
Definition RendererInterface.h:513
virtual uint32 Release()=0
FRHITexture * GetRHI() const
Definition RendererInterface.h:520
virtual bool IsTracked() const =0
virtual const FPooledRenderTargetDesc & GetDesc() const =0
virtual uint32 AddRef() const =0
virtual uint32 ComputeMemorySize() const =0
virtual ~IPooledRenderTarget()
Definition RendererInterface.h:495
Definition NaniteResources.h:410
Definition BoxSphereBounds.h:25
IntType Y
Definition IntPoint.h:37
static const TIntPoint ZeroValue
Definition IntPoint.h:45
IntType X
Definition IntPoint.h:34
Definition VirtualTexturing.h:33