|
| | FTexturePagePool () |
| |
| | ~FTexturePagePool () |
| |
| void | Initialize (uint32 InNumPages) |
| |
| FCriticalSection & | GetLock () |
| |
| uint32 | GetNumPages () const |
| |
| uint32 | GetNumLockedPages () const |
| |
| uint32 | GetNumMappedPages () const |
| |
| uint32 | GetNumAllocatedPages () const |
| |
| void | EvictAllPages (FVirtualTextureSystem *System) |
| |
| void | EvictPages (FVirtualTextureSystem *System, const FVirtualTextureProducerHandle &ProducerHandle) |
| |
| void | EvictPages (FVirtualTextureSystem *System, FVirtualTextureProducerHandle const &ProducerHandle, FVTProducerDescription const &Desc, FIntRect const &TextureRegion, uint32 MaxLevelToEvict, uint32 MinFrameToKeepMapped, EVTInvalidatePriority InvalidatePriority, TSet< union FVirtualTextureLocalTileRequest > &OutDirtyMapped) |
| |
| void | UnmapAllPagesForSpace (FVirtualTextureSystem *System, uint8 SpaceID, uint32 vAddress, uint32 Width, uint32 Height, uint32 MaxLevel) |
| |
| void | RemapPages (FVirtualTextureSystem *System, uint8 SpaceID, FVirtualTexturePhysicalSpace *PhysicalSpace, FVirtualTextureProducerHandle const &ProducerHandleOld, uint32 OldVirtualAddress, FVirtualTextureProducerHandle const &ProducerHandleNew, uint32 NewVirtualAddress, int32 vLevelBias, uint32 Frame) |
| |
| void | GetAllLockedPages (FVirtualTextureSystem *System, TSet< union FVirtualTextureLocalTile > &OutPages) |
| |
| FVirtualTextureLocalTile | GetLocalTileFromPhysicalAddress (uint16 pAddress) |
| |
| uint8 | GetLocalLevelForAddress (uint16 pAddress) const |
| |
| bool | AnyFreeAvailable (uint32 Frame, uint32 FreeThreshold) const |
| |
| uint32 | FindPageAddress (const FVirtualTextureProducerHandle &ProducerHandle, uint8 GroupIndex, uint32 Local_vAddress, uint8 Local_vLevel) const |
| |
| uint32 | FindNearestPageAddress (const FVirtualTextureProducerHandle &ProducerHandle, uint8 GroupIndex, uint32 Local_vAddress, uint8 Local_vLevel, uint8 MaxLevel) const |
| |
| uint32 | FindNearestPageLevel (const FVirtualTextureProducerHandle &ProducerHandle, uint8 GroupIndex, uint32 Local_vAddress, uint8 Local_vLevel) const |
| |
| uint32 | Alloc (FVirtualTextureSystem *System, uint32 Frame, const FVirtualTextureProducerHandle &ProducerHandle, uint8 GroupIndex, uint32 Local_vAddress, uint8 Local_vLevel, bool bLock) |
| |
| void | Free (FVirtualTextureSystem *System, uint16 pAddress) |
| |
| void | Lock (uint16 pAddress) |
| |
| void | Unlock (uint32 Frame, uint16 pAddress) |
| |
| void | UpdateUsage (uint32 Frame, uint16 pAddress) |
| |
| uint32 | GetNumVisiblePages (uint32 Frame) const |
| |
| void | CollectProducerCounts (TMap< uint32, FUintVector2 > &OutProducerCountMap) const |
| |
| void | MapPage (FVirtualTextureSpace *Space, FVirtualTexturePhysicalSpace *PhysicalSpace, uint8 PageTableLayerIndex, uint8 MaxLevel, uint8 vLogSize, uint32 vAddress, uint8 Local_vLevel, uint16 pAddress) |
| |
Manages a pool of texture pages, backed by a large GPU texture atlas. Pages can be allocated for a particular virtual texture, and mapped into any number of virtual pages tables. FTexturePagePool tracks the VT that owns the allocation for each page, and maintains a list of page table mappings for each allocated page. In order to maintain page table mappings, this class works closely with FTexturePageMap, which tracks mappings for a single layer of a given page table