UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VirtualTexturing.h File Reference
#include "Async/TaskGraphInterfaces.h"
#include "Containers/EnumAsByte.h"
#include "Containers/HashTable.h"
#include "CoreMinimal.h"
#include "Logging/LogMacros.h"
#include "Math/Color.h"
#include "Math/IntVector.h"
#include "Math/UnrealMathSSE.h"
#include "Misc/AssertionMacros.h"
#include "Misc/EnumClassFlags.h"
#include "PixelFormat.h"
#include "Stats/Stats.h"
#include "Templates/RefCounting.h"
#include "Templates/TypeHash.h"
#include "UObject/NameTypes.h"

Go to the source code of this file.

Classes

union  FVirtualTextureProducerHandle
 
struct  FAllocatedVTDescription
 
struct  FVTProducerDescription
 
class  IVirtualTextureFinalizer
 
struct  FVTRequestPageResult
 
struct  FVTProduceTargetLayer
 
class  IVirtualTexture
 
class  IAllocatedVirtualTexture
 
class  IAdaptiveVirtualTexture
 
struct  FAdaptiveVTDescription
 
union  FVirtualTextureLocalTile
 
union  FVirtualTextureLocalTileRequest
 

Namespaces

namespace  ERHIFeatureLevel
 

Macros

#define VIRTUALTEXTURE_MAX_FEEDBACK_SPACES   16
 
#define VIRTUALTEXTURE_SPACE_MAXLAYERS   8
 
#define VIRTUALTEXTURE_LOG2_MAX_PAGETABLE_SIZE   12u
 
#define VIRTUALTEXTURE_MAX_PAGETABLE_SIZE   (1u << VIRTUALTEXTURE_LOG2_MAX_PAGETABLE_SIZE)
 
#define VIRTUALTEXTURE_MIN_PAGETABLE_SIZE   32u
 

Typedefs

typedef void() FVTProducerDestroyedFunction(const FVirtualTextureProducerHandle &InHandle, void *Baton)
 

Enumerations

enum class  EVTRequestPageStatus { Invalid , Saturated , Pending , Available }
 
enum class  EVTRequestPagePriority { Normal , High }
 
enum class  EVTProducePageFlags : uint8 { None = 0u , SkipPageBorders = (1u << 0) , ContinuousUpdate = (1u << 1) }
 
enum class  EVTPageTableFormat : uint8 { UInt16 , UInt32 }
 

Functions

bool VTRequestPageStatus_HasData (EVTRequestPageStatus InStatus)
 
 ENUM_CLASS_FLAGS (EVTProducePageFlags)
 
FVirtualTextureLocalTileRequestAddOrMergeTileRequest (const FVirtualTextureLocalTileRequest &InTileRequest, TSet< FVirtualTextureLocalTileRequest > &TileRequests)
 
RENDERCORE_API DECLARE_LOG_CATEGORY_EXTERN (LogVirtualTexturing, Log, All)
 
 DECLARE_STATS_GROUP (TEXT("Virtual Texturing"), STATGROUP_VirtualTexturing, STATCAT_Advanced)
 
 DECLARE_STATS_GROUP (TEXT("Virtual Texture Memory"), STATGROUP_VirtualTextureMemory, STATCAT_Advanced)
 

Macro Definition Documentation

◆ VIRTUALTEXTURE_LOG2_MAX_PAGETABLE_SIZE

#define VIRTUALTEXTURE_LOG2_MAX_PAGETABLE_SIZE   12u

Maximum dimension of VT page table texture

◆ VIRTUALTEXTURE_MAX_FEEDBACK_SPACES

#define VIRTUALTEXTURE_MAX_FEEDBACK_SPACES   16

Maximum number of virtual texture spaces that can support feedback

◆ VIRTUALTEXTURE_MAX_PAGETABLE_SIZE

#define VIRTUALTEXTURE_MAX_PAGETABLE_SIZE   (1u << VIRTUALTEXTURE_LOG2_MAX_PAGETABLE_SIZE)

◆ VIRTUALTEXTURE_MIN_PAGETABLE_SIZE

#define VIRTUALTEXTURE_MIN_PAGETABLE_SIZE   32u

◆ VIRTUALTEXTURE_SPACE_MAXLAYERS

#define VIRTUALTEXTURE_SPACE_MAXLAYERS   8

Maximum number of layers that can be allocated in a single VT page table

Typedef Documentation

◆ FVTProducerDestroyedFunction

typedef void() FVTProducerDestroyedFunction(const FVirtualTextureProducerHandle &InHandle, void *Baton)

Enumeration Type Documentation

◆ EVTPageTableFormat

enum class EVTPageTableFormat : uint8
strong
Enumerator
UInt16 
UInt32 

◆ EVTProducePageFlags

enum class EVTProducePageFlags : uint8
strong
Enumerator
None 
SkipPageBorders 
ContinuousUpdate 

◆ EVTRequestPagePriority

Enumerator
Normal 
High 

◆ EVTRequestPageStatus

enum class EVTRequestPageStatus
strong
Enumerator
Invalid 

The request is invalid and no data will ever be available

Saturated 

Requested data is not being produced, and a request can't be started as some part of the system is at capacity. Requesting the same data at a later time should succeed.

Pending 

Requested data is currently being produced, but is not yet ready. It's valid to produce this data, but doing so may block until data is ready.

Available 

Requested data is available

Function Documentation

◆ AddOrMergeTileRequest()

FVirtualTextureLocalTileRequest & AddOrMergeTileRequest ( const FVirtualTextureLocalTileRequest InTileRequest,
TSet< FVirtualTextureLocalTileRequest > &  TileRequests 
)
inline

Helper function that tries to add a new FVirtualTextureLocalTileRequest to a TSet but, in case this tile is already in the set, merges it with the existing request :

◆ DECLARE_LOG_CATEGORY_EXTERN()

RENDERCORE_API DECLARE_LOG_CATEGORY_EXTERN ( LogVirtualTexturing  ,
Log  ,
All   
)

◆ DECLARE_STATS_GROUP() [1/2]

DECLARE_STATS_GROUP ( TEXT("Virtual Texture Memory" ,
STATGROUP_VirtualTextureMemory  ,
STATCAT_Advanced   
)

◆ DECLARE_STATS_GROUP() [2/2]

DECLARE_STATS_GROUP ( TEXT("Virtual Texturing" ,
STATGROUP_VirtualTexturing  ,
STATCAT_Advanced   
)

◆ ENUM_CLASS_FLAGS()

ENUM_CLASS_FLAGS ( EVTProducePageFlags  )

◆ VTRequestPageStatus_HasData()

bool VTRequestPageStatus_HasData ( EVTRequestPageStatus  InStatus)
inline

Check to see there is data available (possibly requiring waiting) given the current status