7#include "Containers/HashTable.h"
54#define VIRTUALTEXTURE_MAX_FEEDBACK_SPACES 16
57#define VIRTUALTEXTURE_SPACE_MAXLAYERS 8
60#define VIRTUALTEXTURE_LOG2_MAX_PAGETABLE_SIZE 12u
61#define VIRTUALTEXTURE_MAX_PAGETABLE_SIZE (1u << VIRTUALTEXTURE_LOG2_MAX_PAGETABLE_SIZE)
62#define VIRTUALTEXTURE_MIN_PAGETABLE_SIZE 32u
118 if (Lhs.
ProducerHandle[LayerIndex] != Rhs.ProducerHandle[LayerIndex] ||
138 for (
uint32 LayerIndex = 0u; LayerIndex < Description.NumTextureLayers; ++LayerIndex)
376 static const uint32 LayersPerPageTableTexture = 4u;
392 , bIsWaitingToMap(
false)
396 , VirtualAddress(~0u)
536 : TilePackedValue(
InTile.PackedValue)
541 ValidatePriorities();
551 ProducerPriority = FMath::Max(ProducerPriority,
InOther.ProducerPriority);
552 InvalidatePriority = FMath::Max(InvalidatePriority,
InOther.InvalidatePriority);
556 ValidatePriorities();
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
uint64 MurmurFinalize64(uint64 Hash)
Definition HashTable.h:33
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
EVTProducerPriority
Definition VirtualTextureEnum.h:11
EVTInvalidatePriority
Definition VirtualTextureEnum.h:29
EVTProducePageFlags
Definition VirtualTexturing.h:246
EVTPageTableFormat
Definition VirtualTexturing.h:360
FVirtualTextureLocalTileRequest & AddOrMergeTileRequest(const FVirtualTextureLocalTileRequest &InTileRequest, TSet< FVirtualTextureLocalTileRequest > &TileRequests)
Definition VirtualTexturing.h:584
EVTRequestPageStatus
Definition VirtualTexturing.h:216
bool VTRequestPageStatus_HasData(EVTRequestPageStatus InStatus)
Definition VirtualTexturing.h:237
EVTRequestPagePriority
Definition VirtualTexturing.h:240
#define VIRTUALTEXTURE_SPACE_MAXLAYERS
Definition VirtualTexturing.h:57
void() FVTProducerDestroyedFunction(const FVirtualTextureProducerHandle &InHandle, void *Baton)
Definition VirtualTexturing.h:194
Definition NameTypes.h:617
Definition RenderGraphBuilder.h:49
Definition RHICommandList.h:455
Definition RHIResources.h:3304
Definition RHIResources.h:2153
Definition RHIResources.h:3294
Definition VirtualTextureSystem.h:108
Definition VirtualTexturing.h:471
virtual int32 GetSpaceID() const =0
virtual IAllocatedVirtualTexture * GetAllocatedVirtualTexture()=0
virtual ~IAdaptiveVirtualTexture()
Definition VirtualTexturing.h:478
virtual void Destroy(class FVirtualTextureSystem *InSystem)=0
Definition VirtualTexturing.h:374
uint32 GetBlockWidthInTiles() const
Definition VirtualTexturing.h:426
uint32 GetVirtualPageY() const
Definition VirtualTexturing.h:437
uint32 DepthInTiles
Definition VirtualTexturing.h:452
uint32 GetWidthInPixels() const
Definition VirtualTexturing.h:431
uint32 MaxLevel
Definition VirtualTexturing.h:460
virtual uint32 GetPersistentHash() const =0
EVTPageTableFormat GetPageTableFormat() const
Definition VirtualTexturing.h:439
virtual ~IAllocatedVirtualTexture()
Definition VirtualTexturing.h:445
virtual void Destroy(class FVirtualTextureSystem *InSystem)=0
virtual uint32 GetNumPageTableTextures() const =0
uint32 GetDepthInTiles() const
Definition VirtualTexturing.h:430
EVTPageTableFormat PageTableFormat
Definition VirtualTexturing.h:458
uint32 GetBlockHeightInTiles() const
Definition VirtualTexturing.h:427
uint32 VirtualPageX
Definition VirtualTexturing.h:462
IAllocatedVirtualTexture(const FAllocatedVTDescription &InDesc, uint32 InBlockWidthInTiles, uint32 InBlockHeightInTiles, uint32 InWidthInBlocks, uint32 InHeightInBlocks, uint32 InDepthInTiles)
Definition VirtualTexturing.h:378
virtual FRHITexture * GetPhysicalTexture(uint32 InLayerIndex) const =0
virtual bool TryMapLockedTiles(class FVirtualTextureSystem *InSystem) const =0
uint32 BlockWidthInTiles
Definition VirtualTexturing.h:448
uint32 GetDepthInPixels() const
Definition VirtualTexturing.h:433
virtual uint32 GetPhysicalTextureSize(uint32 InLayerIndex) const =0
uint32 VirtualPageY
Definition VirtualTexturing.h:463
virtual void GetPackedUniform(FUintVector4 *OutUniform, uint32 LayerIndex) const =0
uint32 GetWidthInTiles() const
Definition VirtualTexturing.h:428
uint32 GetVirtualTileSize() const
Definition VirtualTexturing.h:419
int32 NumRefs
Definition VirtualTexturing.h:454
uint32 GetTileBorderSize() const
Definition VirtualTexturing.h:420
uint32 GetWidthInBlocks() const
Definition VirtualTexturing.h:424
uint32 GetHeightInPixels() const
Definition VirtualTexturing.h:432
uint32 GetPhysicalTileSize() const
Definition VirtualTexturing.h:421
uint32 GetNumTextureLayers() const
Definition VirtualTexturing.h:422
virtual FRHITexture * GetPageTableIndirectionTexture() const =0
uint32 BlockHeightInTiles
Definition VirtualTexturing.h:449
uint32 FrameDeleted
Definition VirtualTexturing.h:453
uint32 GetVirtualPageX() const
Definition VirtualTexturing.h:436
virtual void GetPackedPageTableUniform(FUintVector4 *OutUniform) const =0
uint32 VirtualAddress
Definition VirtualTexturing.h:461
uint8 GetDimensions() const
Definition VirtualTexturing.h:423
uint32 GetHeightInTiles() const
Definition VirtualTexturing.h:429
uint32 GetMaxLevel() const
Definition VirtualTexturing.h:438
uint32 SpaceID
Definition VirtualTexturing.h:459
const FAllocatedVTDescription & GetDescription() const
Definition VirtualTexturing.h:416
uint32 WidthInBlocks
Definition VirtualTexturing.h:450
uint32 GetVirtualAddress() const
Definition VirtualTexturing.h:435
uint32 GetHeightInBlocks() const
Definition VirtualTexturing.h:425
virtual FRHITexture * GetPageTableTexture(uint32 InPageTableIndex) const =0
virtual void DumpToConsole(bool bVerbose) const
Definition VirtualTexturing.h:414
bool bIsWaitingToMap
Definition VirtualTexturing.h:455
FAllocatedVTDescription Description
Definition VirtualTexturing.h:447
virtual FRHIShaderResourceView * GetPhysicalTextureSRV(uint32 InLayerIndex, bool bSRGB) const =0
uint32 HeightInBlocks
Definition VirtualTexturing.h:451
uint32 GetSpaceID() const
Definition VirtualTexturing.h:434
const FVirtualTextureProducerHandle & GetProducerHandle(uint32 InLayerIndex) const
Definition VirtualTexturing.h:417
Definition SceneRendererInterface.h:47
Definition VirtualTexturing.h:207
virtual void Finalize(FRDGBuilder &GraphBuilder)=0
virtual void RenderFinalize(FRDGBuilder &GraphBuilder, ISceneRenderer *SceneRenderingContext)
Definition VirtualTexturing.h:210
Definition VirtualTexturing.h:289
virtual bool IsPageStreamed(uint8 vLevel, uint32 vAddress) const =0
virtual FVTRequestPageResult RequestPageData(FRHICommandListBase &RHICmdList, const FVirtualTextureProducerHandle &ProducerHandle, uint8 LayerMask, uint8 vLevel, uint64 vAddress, EVTRequestPagePriority Priority)=0
IVirtualTexture()
Definition VirtualTexturing.h:291
virtual uint32 GetLocalMipBias(uint8 vLevel, uint32 vAddress) const
Definition VirtualTexturing.h:302
virtual IVirtualTextureFinalizer * ProducePageData(FRHICommandListBase &RHICmdList, ERHIFeatureLevel::Type FeatureLevel, EVTProducePageFlags Flags, const FVirtualTextureProducerHandle &ProducerHandle, uint8 LayerMask, uint8 vLevel, uint64 vAddress, uint64 RequestHandle, const FVTProduceTargetLayer *TargetLayers)=0
virtual void DumpToConsole(bool verbose)
Definition VirtualTexturing.h:353
virtual void OnRequestsCompleted()
Definition VirtualTexturing.h:356
virtual void GatherProducePageDataTasks(FVirtualTextureProducerHandle const &ProducerHandle, FGraphEventArray &InOutTasks) const
Definition VirtualTexturing.h:347
virtual void GatherProducePageDataTasks(uint64 RequestHandle, FGraphEventArray &InOutTasks) const
Definition VirtualTexturing.h:350
virtual ~IVirtualTexture()
Definition VirtualTexturing.h:292
Definition EnumAsByte.h:22
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
int
Definition TestServer.py:515
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition VirtualTexturing.h:485
uint32 MaxAdaptiveLevel
Definition VirtualTexturing.h:488
uint32 TileCountY
Definition VirtualTexturing.h:487
uint32 TileCountX
Definition VirtualTexturing.h:486
Definition VirtualTexturing.h:69
uint8 ProducerLayerIndex[VIRTUALTEXTURE_SPACE_MAXLAYERS]
Definition VirtualTexturing.h:84
uint8 Dimensions
Definition VirtualTexturing.h:76
uint32 TileBorderSize
Definition VirtualTexturing.h:73
friend uint32 GetTypeHash(const FAllocatedVTDescription &Description)
Definition VirtualTexturing.h:131
friend bool operator==(const FAllocatedVTDescription &Lhs, const FAllocatedVTDescription &Rhs)
Definition VirtualTexturing.h:106
uint8 PackedFlags
Definition VirtualTexturing.h:88
uint8 bPrivateSpace
Definition VirtualTexturing.h:95
uint8 NumTextureLayers
Definition VirtualTexturing.h:77
uint8 AdaptiveLevelBias
Definition VirtualTexturing.h:79
uint32 IndirectionTextureSize
Definition VirtualTexturing.h:75
friend bool operator!=(const FAllocatedVTDescription &Lhs, const FAllocatedVTDescription &Rhs)
Definition VirtualTexturing.h:126
uint8 ForceSpaceID
Definition VirtualTexturing.h:78
FVirtualTextureProducerHandle ProducerHandle[VIRTUALTEXTURE_SPACE_MAXLAYERS]
Definition VirtualTexturing.h:82
uint8 bShareDuplicateLayers
Definition VirtualTexturing.h:102
uint32 TileSize
Definition VirtualTexturing.h:72
FName Name
Definition VirtualTexturing.h:70
uint32 MaxSpaceSize
Definition VirtualTexturing.h:74
static CORE_API const FLinearColor Black
Definition Color.h:458
Definition VirtualTexturing.h:266
FRHITexture * TextureRHI
Definition VirtualTexturing.h:273
FIntVector pPageLocation
Definition VirtualTexturing.h:270
IPooledRenderTarget * PooledRenderTarget
Definition VirtualTexturing.h:268
Definition VirtualTexturing.h:148
EVTProducerPriority Priority
Definition VirtualTexturing.h:191
uint32 TileSize
Definition VirtualTexturing.h:159
FName Name
Definition VirtualTexturing.h:151
FLinearColor LayerFallbackColor[VIRTUALTEXTURE_SPACE_MAXLAYERS]
Definition VirtualTexturing.h:184
bool bContinuousUpdate
Definition VirtualTexturing.h:155
uint8 NumPhysicalGroups
Definition VirtualTexturing.h:187
uint8 Dimensions
Definition VirtualTexturing.h:173
uint32 FullNameHash
Definition VirtualTexturing.h:152
uint32 BlockHeightInTiles
Definition VirtualTexturing.h:169
uint32 DepthInTiles
Definition VirtualTexturing.h:170
uint32 BlockWidthInTiles
Definition VirtualTexturing.h:168
uint8 NumTextureLayers
Definition VirtualTexturing.h:182
uint16 WidthInBlocks
Definition VirtualTexturing.h:171
bool bNotifyCompleted
Definition VirtualTexturing.h:157
uint16 HeightInBlocks
Definition VirtualTexturing.h:172
bool bRequiresSinglePhysicalPool
Definition VirtualTexturing.h:156
bool bPersistentHighestMip
Definition VirtualTexturing.h:154
uint32 TileBorderSize
Definition VirtualTexturing.h:160
uint8 PhysicalGroupIndex[VIRTUALTEXTURE_SPACE_MAXLAYERS]
Definition VirtualTexturing.h:188
uint8 MaxLevel
Definition VirtualTexturing.h:174
bool bIsLayerSRGB[VIRTUALTEXTURE_SPACE_MAXLAYERS]
Definition VirtualTexturing.h:185
RENDERCORE_API FVTProducerDescription()
Definition VirtualTexturing.cpp:11
TEnumAsByte< EPixelFormat > LayerFormat[VIRTUALTEXTURE_SPACE_MAXLAYERS]
Definition VirtualTexturing.h:183
Definition RendererInterface.h:494
static const TIntVector3 ZeroValue
Definition IntVector.h:45
Definition VirtualTexturing.h:533
EVTInvalidatePriority GetInvalidatePriority() const
Definition VirtualTexturing.h:546
uint64 PackedValue
Definition VirtualTexturing.h:560
uint64 TilePackedValue
Definition VirtualTexturing.h:564
FVirtualTextureLocalTileRequest()
Definition VirtualTexturing.h:534
friend bool operator==(const FVirtualTextureLocalTileRequest &Lhs, const FVirtualTextureLocalTileRequest &Rhs)
Definition VirtualTexturing.h:570
FVirtualTextureLocalTileRequest & MergeWith(const FVirtualTextureLocalTileRequest &InOther)
Definition VirtualTexturing.h:548
uint64 InvalidatePriority
Definition VirtualTexturing.h:567
uint64 ProducerPriority
Definition VirtualTexturing.h:566
uint16 GetMurmurHash() const
Definition VirtualTexturing.h:574
FVirtualTextureLocalTileRequest(const FVirtualTextureLocalTile &InTile, EVTProducerPriority InProducerPriority, EVTInvalidatePriority InInvalidatePriority)
Definition VirtualTexturing.h:535
EVTProducerPriority GetProducerPriority() const
Definition VirtualTexturing.h:545
FVirtualTextureLocalTile GetTile() const
Definition VirtualTexturing.h:544
uint64 GetIdentity() const
Definition VirtualTexturing.h:573
friend bool operator!=(const FVirtualTextureLocalTileRequest &Lhs, const FVirtualTextureLocalTileRequest &Rhs)
Definition VirtualTexturing.h:571
friend uint32 GetTypeHash(const FVirtualTextureLocalTileRequest &T)
Definition VirtualTexturing.h:572
Definition VirtualTexturing.h:495
uint16 GetMurmurHash() const
Definition VirtualTexturing.h:525
uint32 Local_vAddress
Definition VirtualTexturing.h:517
uint32 PackedProducerHandle
Definition VirtualTexturing.h:516
FVirtualTextureProducerHandle GetProducerHandle() const
Definition VirtualTexturing.h:510
FVirtualTextureLocalTile(const FVirtualTextureProducerHandle &InProducerHandle, uint32 InLocal_vAddress, uint8 InLocal_vLevel)
Definition VirtualTexturing.h:497
FVirtualTextureLocalTile()
Definition VirtualTexturing.h:496
uint32 Pad
Definition VirtualTexturing.h:519
uint32 Local_vLevel
Definition VirtualTexturing.h:518
FVirtualTextureLocalTile(uint64 InPackedValue)
Definition VirtualTexturing.h:504
friend bool operator!=(const FVirtualTextureLocalTile &Lhs, const FVirtualTextureLocalTile &Rhs)
Definition VirtualTexturing.h:523
friend bool operator==(const FVirtualTextureLocalTile &Lhs, const FVirtualTextureLocalTile &Rhs)
Definition VirtualTexturing.h:522
uint64 PackedValue
Definition VirtualTexturing.h:512
friend uint32 GetTypeHash(const FVirtualTextureLocalTile &T)
Definition VirtualTexturing.h:524
Definition VirtualTexturing.h:33
bool IsNull() const
Definition VirtualTexturing.h:39
uint32 PackedValue
Definition VirtualTexturing.h:41
bool IsValid() const
Definition VirtualTexturing.h:38
FVirtualTextureProducerHandle(uint32 InPackedValue)
Definition VirtualTexturing.h:35
FVirtualTextureProducerHandle()
Definition VirtualTexturing.h:34
friend bool operator!=(const FVirtualTextureProducerHandle &Lhs, const FVirtualTextureProducerHandle &Rhs)
Definition VirtualTexturing.h:49
uint32 Index
Definition VirtualTexturing.h:44
friend bool operator==(const FVirtualTextureProducerHandle &Lhs, const FVirtualTextureProducerHandle &Rhs)
Definition VirtualTexturing.h:48
uint32 Magic
Definition VirtualTexturing.h:45
FVirtualTextureProducerHandle(uint32 InIndex, uint32 InMagic)
Definition VirtualTexturing.h:36