UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VirtualTexturing.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "Containers/HashTable.h"
8#include "CoreMinimal.h"
9#include "Logging/LogMacros.h"
10#include "Math/Color.h"
11#include "Math/IntVector.h"
12#include "Math/UnrealMathSSE.h"
14#include "Misc/EnumClassFlags.h"
15#include "PixelFormat.h"
16#include "Stats/Stats.h"
18#include "Templates/TypeHash.h"
19#include "UObject/NameTypes.h"
20
21class FRDGBuilder;
24class FRHITexture;
27class ISceneRenderer;
28namespace ERHIFeatureLevel { enum Type : int; }
29enum class EVTProducerPriority : uint8;
30enum class EVTInvalidatePriority : uint8;
31
33{
37
38 inline bool IsValid() const { return PackedValue != 0u; }
39 inline bool IsNull() const { return PackedValue == 0u; }
40
42 struct
43 {
46 };
47
48 friend inline bool operator==(const FVirtualTextureProducerHandle& Lhs, const FVirtualTextureProducerHandle& Rhs) { return Lhs.PackedValue == Rhs.PackedValue; }
49 friend inline bool operator!=(const FVirtualTextureProducerHandle& Lhs, const FVirtualTextureProducerHandle& Rhs) { return Lhs.PackedValue != Rhs.PackedValue; }
50};
51static_assert(sizeof(FVirtualTextureProducerHandle) == sizeof(uint32), "Bad packing");
52
54#define VIRTUALTEXTURE_MAX_FEEDBACK_SPACES 16
55
57#define VIRTUALTEXTURE_SPACE_MAXLAYERS 8
58
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
63
69{
71
80
85
86 union
87 {
89 struct
90 {
96
103 };
104 };
105
106 friend inline bool operator==(const FAllocatedVTDescription& Lhs, const FAllocatedVTDescription& Rhs)
107 {
108 if (Lhs.TileSize != Rhs.TileSize ||
109 Lhs.TileBorderSize != Rhs.TileBorderSize ||
110 Lhs.Dimensions != Rhs.Dimensions ||
111 Lhs.NumTextureLayers != Rhs.NumTextureLayers ||
112 Lhs.PackedFlags != Rhs.PackedFlags)
113 {
114 return false;
115 }
116 for (uint32 LayerIndex = 0u; LayerIndex < Lhs.NumTextureLayers; ++LayerIndex)
117 {
118 if (Lhs.ProducerHandle[LayerIndex] != Rhs.ProducerHandle[LayerIndex] ||
119 Lhs.ProducerLayerIndex[LayerIndex] != Rhs.ProducerLayerIndex[LayerIndex])
120 {
121 return false;
122 }
123 }
124 return true;
125 }
126 friend inline bool operator!=(const FAllocatedVTDescription& Lhs, const FAllocatedVTDescription& Rhs)
127 {
128 return !operator==(Lhs, Rhs);
129 }
130
131 friend inline uint32 GetTypeHash(const FAllocatedVTDescription& Description)
132 {
133 uint32 Hash = GetTypeHash(Description.TileSize);
134 Hash = HashCombine(Hash, GetTypeHash(Description.TileBorderSize));
135 Hash = HashCombine(Hash, GetTypeHash(Description.Dimensions));
136 Hash = HashCombine(Hash, GetTypeHash(Description.NumTextureLayers));
137 Hash = HashCombine(Hash, GetTypeHash(Description.PackedFlags));
138 for (uint32 LayerIndex = 0u; LayerIndex < Description.NumTextureLayers; ++LayerIndex)
139 {
140 Hash = HashCombine(Hash, GetTypeHash(Description.ProducerHandle[LayerIndex].PackedValue));
141 Hash = HashCombine(Hash, GetTypeHash(Description.ProducerLayerIndex[LayerIndex]));
142 }
143 return Hash;
144 }
145};
146
193
195
207{
208public:
212 virtual void Finalize(FRDGBuilder& GraphBuilder) = 0;
213};
214
216{
218 Invalid,
219
224 Saturated,
225
230 Pending,
231
233 Available,
234};
235
238
240{
241 Normal,
242 High,
243};
244
246{
247 None = 0u,
248 SkipPageBorders = (1u << 0),
249 ContinuousUpdate = (1u << 1),
250};
252
263
266{
271
272 UE_DEPRECATED(5.6, "Use PooledRenderTarget instead.")
274
275 // Disable some TextureRHI deprecation warnings here.
279 FVTProduceTargetLayer& operator=(const FVTProduceTargetLayer&) = default;
281};
282
289{
290public:
291 inline IVirtualTexture() {}
292 virtual ~IVirtualTexture() {}
293
302 virtual uint32 GetLocalMipBias(uint8 vLevel, uint32 vAddress) const { return 0u; }
303
307 virtual bool IsPageStreamed(uint8 vLevel, uint32 vAddress) const = 0;
308
321
339 FRHICommandListBase& RHICmdList,
340 ERHIFeatureLevel::Type FeatureLevel,
342 const FVirtualTextureProducerHandle& ProducerHandle, uint8 LayerMask, uint8 vLevel, uint64 vAddress,
343 uint64 RequestHandle,
344 const FVTProduceTargetLayer* TargetLayers) = 0;
345
348
350 virtual void GatherProducePageDataTasks(uint64 RequestHandle, FGraphEventArray& InOutTasks) const {};
351
353 virtual void DumpToConsole(bool verbose) {}
354
356 virtual void OnRequestsCompleted() {}
357};
358
360{
361 UInt16,
362 UInt32,
363};
364
374{
375public:
376 static const uint32 LayersPerPageTableTexture = 4u;
377
384 : Description(InDesc)
385 , BlockWidthInTiles(InBlockWidthInTiles)
386 , BlockHeightInTiles(InBlockHeightInTiles)
387 , WidthInBlocks(InWidthInBlocks)
388 , HeightInBlocks(InHeightInBlocks)
389 , DepthInTiles(InDepthInTiles)
390 , FrameDeleted(0u)
391 , NumRefs(0)
392 , bIsWaitingToMap(false)
393 , PageTableFormat(EVTPageTableFormat::UInt32)
394 , SpaceID(~0u)
395 , MaxLevel(0u)
396 , VirtualAddress(~0u)
397 , VirtualPageX(~0u)
398 , VirtualPageY(~0u)
399 {}
400
401 virtual uint32 GetPersistentHash() const = 0;
402 virtual uint32 GetNumPageTableTextures() const = 0;
408
412 virtual void GetPackedUniform(FUintVector4* OutUniform, uint32 LayerIndex) const = 0;
413
414 virtual void DumpToConsole(bool bVerbose) const {}
415
416 inline const FAllocatedVTDescription& GetDescription() const { return Description; }
417 inline const FVirtualTextureProducerHandle& GetProducerHandle(uint32 InLayerIndex) const { check(InLayerIndex < Description.NumTextureLayers); return Description.ProducerHandle[InLayerIndex]; }
418
419 inline uint32 GetVirtualTileSize() const { return Description.TileSize; }
420 inline uint32 GetTileBorderSize() const { return Description.TileBorderSize; }
421 inline uint32 GetPhysicalTileSize() const { return Description.TileSize + Description.TileBorderSize * 2u; }
422 inline uint32 GetNumTextureLayers() const { return Description.NumTextureLayers; }
423 inline uint8 GetDimensions() const { return Description.Dimensions; }
424 inline uint32 GetWidthInBlocks() const { return WidthInBlocks; }
425 inline uint32 GetHeightInBlocks() const { return HeightInBlocks; }
426 inline uint32 GetBlockWidthInTiles() const { return BlockWidthInTiles; }
427 inline uint32 GetBlockHeightInTiles() const { return BlockHeightInTiles; }
428 inline uint32 GetWidthInTiles() const { return BlockWidthInTiles * WidthInBlocks; }
429 inline uint32 GetHeightInTiles() const { return BlockHeightInTiles * HeightInBlocks; }
430 inline uint32 GetDepthInTiles() const { return DepthInTiles; }
431 inline uint32 GetWidthInPixels() const { return GetWidthInTiles() * Description.TileSize; }
432 inline uint32 GetHeightInPixels() const { return GetHeightInTiles() * Description.TileSize; }
433 inline uint32 GetDepthInPixels() const { return DepthInTiles * Description.TileSize; }
434 inline uint32 GetSpaceID() const { return SpaceID; }
435 inline uint32 GetVirtualAddress() const { return VirtualAddress; }
436 inline uint32 GetVirtualPageX() const { return VirtualPageX; }
437 inline uint32 GetVirtualPageY() const { return VirtualPageY; }
438 inline uint32 GetMaxLevel() const { return MaxLevel; }
439 inline EVTPageTableFormat GetPageTableFormat() const { return PageTableFormat; }
440
441protected:
443 virtual void Destroy(class FVirtualTextureSystem* InSystem) = 0;
444 virtual bool TryMapLockedTiles(class FVirtualTextureSystem* InSystem) const = 0;
446
456
457 // should be set explicitly by derived class constructor
464};
465
471{
472public:
475
476protected:
479 virtual int32 GetSpaceID() const = 0;
480 virtual void Destroy(class FVirtualTextureSystem* InSystem) = 0;
481};
482
490
495{
498 : PackedProducerHandle(InProducerHandle.PackedValue)
499 , Local_vAddress(InLocal_vAddress)
500 , Local_vLevel(InLocal_vLevel)
501 , Pad(0)
502 {
503 }
505 : PackedValue(InPackedValue)
506 {
507 Pad = 0;
508 }
509
511
512 uint64 PackedValue = 0;
513 struct
514 {
515 // Core "identity" data that identify a given tile
519 uint32 Pad : 4; // Important : this has to be kept in sync with FVirtualTextureLocalTileRequest : both are packed in a uint64 and the latter stores additional info in these bits
520 };
521
522 friend inline bool operator==(const FVirtualTextureLocalTile& Lhs, const FVirtualTextureLocalTile& Rhs) { return Lhs.PackedValue == Rhs.PackedValue; }
523 friend inline bool operator!=(const FVirtualTextureLocalTile& Lhs, const FVirtualTextureLocalTile& Rhs) { return Lhs.PackedValue != Rhs.PackedValue; }
524 friend inline uint32 GetTypeHash(const FVirtualTextureLocalTile& T) { return GetTypeHash(T.PackedValue); }
525 inline uint16 GetMurmurHash() const { return static_cast<uint16>(MurmurFinalize64(PackedValue)); }
526};
527static_assert(sizeof(FVirtualTextureLocalTile) == sizeof(uint64), "Bad packing");
528
533{
536 : TilePackedValue(InTile.PackedValue)
537 , ProducerPriority(static_cast<uint64>(InProducerPriority))
538 , InvalidatePriority(static_cast<uint64>(InInvalidatePriority))
539 {
540 checkSlow(InTile == GetTile());
541 ValidatePriorities();
542 }
543
544 inline FVirtualTextureLocalTile GetTile() const { return FVirtualTextureLocalTile(TilePackedValue); }
545 inline EVTProducerPriority GetProducerPriority() const { return static_cast<EVTProducerPriority>(ProducerPriority); }
546 inline EVTInvalidatePriority GetInvalidatePriority() const { return static_cast<EVTInvalidatePriority>(InvalidatePriority); }
547
549 {
550 // Keep the highest priorities of the 2 :
551 ProducerPriority = FMath::Max(ProducerPriority, InOther.ProducerPriority);
552 InvalidatePriority = FMath::Max(InvalidatePriority, InOther.InvalidatePriority);
553
554 checkSlow(*this == InOther);
555 checkSlow(GetTile() == InOther.GetTile());
556 ValidatePriorities();
557 return *this;
558 }
559
561 struct
562 {
563 // Core "identity" data that identifies a given tile :
565 // Additional data about the request :
566 uint64 ProducerPriority : 3; // See EVTProducerPriority
567 uint64 InvalidatePriority : 1; // Indicates whether the tile should get prioritized over others
568 };
569
570 friend inline bool operator==(const FVirtualTextureLocalTileRequest& Lhs, const FVirtualTextureLocalTileRequest& Rhs) { return Lhs.GetIdentity() == Rhs.GetIdentity(); }
571 friend inline bool operator!=(const FVirtualTextureLocalTileRequest& Lhs, const FVirtualTextureLocalTileRequest& Rhs) { return Lhs.GetIdentity() != Rhs.GetIdentity(); }
573 inline uint64 GetIdentity() const { return TilePackedValue; } // 2 requests from the same tile are considered identical (it's up to the user to "merge" them if necessary)
574 inline uint16 GetMurmurHash() const { return static_cast<uint16>(MurmurFinalize64(GetIdentity())); }
575
576private:
577 RENDERCORE_API void ValidatePriorities() const;
578};
579static_assert(sizeof(FVirtualTextureLocalTileRequest) == sizeof(uint64), "Bad packing");
580
585{
586 bool bAlreadyInSet = false;
588 if (bAlreadyInSet)
589 {
590 // If the request already exists, merge with this new request, to keep the highest priority :
591 Result.MergeWith(InTileRequest);
592 }
593 return Result;
594}
595
597
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 TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
#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 PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
@ PF_Unknown
Definition PixelFormat.h:17
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
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
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
Definition Color.h:48
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 VirtualTexturing.h:254
uint64 Handle
Definition VirtualTexturing.h:258
EVTRequestPageStatus Status
Definition VirtualTexturing.h:261
FVTRequestPageResult(EVTRequestPageStatus InStatus=EVTRequestPageStatus::Invalid, uint64 InHandle=0u)
Definition VirtualTexturing.h:255
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