UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMaterialCacheTagProvider Class Reference

#include <MaterialCacheTagProvider.h>

+ Inheritance diagram for FMaterialCacheTagProvider:

Public Member Functions

uint32 AllocatePrimitiveTagOffset ()
 
void FreePrimitiveTagOffset (uint32 TagOffset)
 
void SetTagEntry (uint32 TagOffset, const FGuid &TagGuid, const UE::HLSL::FMaterialCacheTagEntry &Entry)
 
void Update (FRDGBuilder &GraphBuilder)
 
void CallPendingCallbacks ()
 
virtual FMaterialCacheTagBindingData GetBindingData (const FGuid &Guid) override
 
virtual FMaterialCacheTagUniformData GetUniformData (const FGuid &Guid) override
 
virtual void Register (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FMaterialCacheTagLayout &TagLayout, IAllocatedVirtualTexture *VirtualTexture) override
 
virtual void Unregister (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FGuid &TagGuid, IAllocatedVirtualTexture *VirtualTexture) override
 
virtual void Flush (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FGuid &TagGuid) override
 
virtual IVirtualTextureCreateProducer (FSceneInterface *Scene, FPrimitiveComponentId PrimitiveComponentId, const FMaterialCacheTagLayout &TagLayout, const FVTProducerDescription &ProducerDesc) override
 
virtual void AddTagSceneInvalidationCallback (const FGuid &TagGuid, FMaterialCacheTagProviderSceneInvalidationDelegate Delegate, void *Baton) override
 
virtual void RemoveTagSceneInvalidationCallbacks (void *Baton) override
 
- Public Member Functions inherited from IMaterialCacheTagProvider
virtual ~IMaterialCacheTagProvider ()=default
 

Static Public Member Functions

static void Initialize ()
 
static void Shutdown ()
 
static FMaterialCacheTagProviderGet ()
 

Member Function Documentation

◆ AddTagSceneInvalidationCallback()

void FMaterialCacheTagProvider::AddTagSceneInvalidationCallback ( const FGuid TagGuid,
FMaterialCacheTagProviderSceneInvalidationDelegate  Delegate,
void Baton 
)
overridevirtual

Add a callback for whenever the tag scene bindings / data has changed

Parameters
TagGuidThe tag to subscribe to
DelegateDelegate to be called on invalidations
BatonBaton to pass into the callback, also used for broad deregistration

Implements IMaterialCacheTagProvider.

◆ AllocatePrimitiveTagOffset()

uint32 FMaterialCacheTagProvider::AllocatePrimitiveTagOffset ( )

Allocate a new primitive tag offset, each tag may serve a number of tags (backing virtual textures)

◆ CallPendingCallbacks()

void FMaterialCacheTagProvider::CallPendingCallbacks ( )

Call all pending invalidation callbacks

◆ CreateProducer()

IVirtualTexture * FMaterialCacheTagProvider::CreateProducer ( FSceneInterface Scene,
FPrimitiveComponentId  PrimitiveComponentId,
const FMaterialCacheTagLayout TagLayout,
const FVTProducerDescription ProducerDesc 
)
overridevirtual

Create

Parameters
SceneThe scene the producer renders for
PrimitiveComponentIdThe primitive the producer renders for
TagLayoutGenerated layout of the virtual texture
ProducerDescGeneral producer description
Returns
nullptr if failed

Implements IMaterialCacheTagProvider.

◆ Flush()

void FMaterialCacheTagProvider::Flush ( FSceneInterface Scene,
FPrimitiveComponentId  PrimitiveComponentId,
const FGuid TagGuid 
)
overridevirtual

Flush all pages of a given tag

Parameters
SceneScene to flush against
PrimitiveComponentIdPrimitive to flush against
TagGuidOptional, null for default tag

Implements IMaterialCacheTagProvider.

◆ FreePrimitiveTagOffset()

void FMaterialCacheTagProvider::FreePrimitiveTagOffset ( uint32  TagOffset)

Free a primitive tag offset

◆ Get()

FMaterialCacheTagProvider & FMaterialCacheTagProvider::Get ( )
static

Get the tag provider

◆ GetBindingData()

FMaterialCacheTagBindingData FMaterialCacheTagProvider::GetBindingData ( const FGuid Guid)
overridevirtual

◆ GetUniformData()

FMaterialCacheTagUniformData FMaterialCacheTagProvider::GetUniformData ( const FGuid Guid)
overridevirtual

Get the scene uniform data for a given tag

Parameters
GuidOptional, null for default tag
Returns
Always valid

Implements IMaterialCacheTagProvider.

◆ Initialize()

void FMaterialCacheTagProvider::Initialize ( )
static

Installation Initialize the global tag provider

◆ Register()

void FMaterialCacheTagProvider::Register ( FSceneInterface Scene,
FPrimitiveComponentId  PrimitiveComponentId,
const FMaterialCacheTagLayout TagLayout,
IAllocatedVirtualTexture VirtualTexture 
)
overridevirtual

Register a new virtual texture for a given primitive

Parameters
SceneThe scene it's registered against
PrimitiveComponentIdThe primitive that is to own the virtual texture
TagLayoutGenerated layout of the virtual texture
VirtualTextureTexture to be registered

Implements IMaterialCacheTagProvider.

◆ RemoveTagSceneInvalidationCallbacks()

void FMaterialCacheTagProvider::RemoveTagSceneInvalidationCallbacks ( void Baton)
overridevirtual

Remove all tag scene bindings / data listeners

Parameters
BatonBaton whose listeners are to be removed

Implements IMaterialCacheTagProvider.

◆ SetTagEntry()

void FMaterialCacheTagProvider::SetTagEntry ( uint32  TagOffset,
const FGuid TagGuid,
const UE::HLSL::FMaterialCacheTagEntry &  Entry 
)

Set the tag entry

◆ Shutdown()

void FMaterialCacheTagProvider::Shutdown ( )
static

Shutdown the global tag provider

◆ Unregister()

void FMaterialCacheTagProvider::Unregister ( FSceneInterface Scene,
FPrimitiveComponentId  PrimitiveComponentId,
const FGuid TagGuid,
IAllocatedVirtualTexture VirtualTexture 
)
overridevirtual

Deregister an existing virtual texture from a given primitive

Parameters
SceneThe scene it's registered against
PrimitiveComponentIdThe primitive that owns the virtual texture
TagGuidOptional, null for default tag
VirtualTextureTexture to be deregistered

Implements IMaterialCacheTagProvider.

◆ Update()

void FMaterialCacheTagProvider::Update ( FRDGBuilder GraphBuilder)

Update the GPU state

Note: We're just updating the full tag buffer for now, this can easily be a scatter upload But let's keep it simple for now to get things going.


The documentation for this class was generated from the following files: