UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TextureStreamingHelpers.cpp File Reference

Functions

 DECLARE_MEMORY_STAT_POOL (TEXT("Safety Pool"), STAT_Streaming01_SafetyPool, STATGROUP_Streaming, FPlatformMemory::MCR_TexturePool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Temporary Pool"), STAT_Streaming02_TemporaryPool, STATGROUP_Streaming, FPlatformMemory::MCR_TexturePool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Streaming Pool"), STAT_Streaming03_StreamingPool, STATGROUP_Streaming, FPlatformMemory::MCR_TexturePool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("NonStreaming Mips"), STAT_Streaming04_NonStreamingMips, STATGROUP_Streaming, FPlatformMemory::MCR_TexturePool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Required Pool"), STAT_Streaming05_RequiredPool, STATGROUP_Streaming, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Visible Mips"), STAT_Streaming06_VisibleMips, STATGROUP_Streaming, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Hidden Mips"), STAT_Streaming07_HiddenMips, STATGROUP_Streaming, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Forced Mips"), STAT_Streaming08_ForcedMips, STATGROUP_Streaming, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("UnkownRef Mips"), STAT_Streaming09_UnkownRefMips, STATGROUP_Streaming, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Cached Mips"), STAT_Streaming11_CachedMips, STATGROUP_Streaming, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Wanted Mips"), STAT_Streaming12_WantedMips, STATGROUP_Streaming, FPlatformMemory::MCR_UsedStreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Inflight Requests"), STAT_Streaming13_InflightRequests, STATGROUP_Streaming, FPlatformMemory::MCR_UsedStreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("IO Bandwidth"), STAT_Streaming14_MipIOBandwidth, STATGROUP_Streaming, FPlatformMemory::MCR_UsedStreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Desired Data Loaded Percent"), STAT_Streaming16_DesiredDataLoadedPct, STATGROUP_Streaming, FPlatformMemory::MCR_UsedStreamingPool)
 
 DECLARE_MEMORY_STAT (TEXT("Virtual Texture Pool"), STAT_Streaming17_VirtualTexturePool, STATGROUP_Streaming)
 
 DECLARE_MEMORY_STAT (TEXT("Virtual Texture Required"), STAT_Streaming18_VirtualTextureRequired, STATGROUP_Streaming)
 
 DECLARE_MEMORY_STAT (TEXT("Virtual Texture Used"), STAT_Streaming19_VirtualTextureUsed, STATGROUP_Streaming)
 
 DECLARE_CYCLE_STAT (TEXT("Setup Async Task"), STAT_Streaming01_SetupAsyncTask, STATGROUP_Streaming)
 
 DECLARE_CYCLE_STAT (TEXT("Update Streaming Data"), STAT_Streaming02_UpdateStreamingData, STATGROUP_Streaming)
 
 DECLARE_CYCLE_STAT (TEXT("Streaming Render Assets"), STAT_Streaming03_StreamRenderAssets, STATGROUP_Streaming)
 
 DECLARE_CYCLE_STAT (TEXT("Notifications"), STAT_Streaming04_Notifications, STATGROUP_Streaming)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Pending 2D Update"), STAT_Streaming05_Pending2DUpdate, STATGROUP_Streaming)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Virtual Texture Count"), STAT_Streaming06_VirtualTextureCount, STATGROUP_Streaming)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Streamable Render Assets"), STAT_StreamingOverview01_StreamableRenderAssets, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT(" Required"), STAT_StreamingOverview02_Required, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT(" Cached"), STAT_StreamingOverview03_Cached, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Streaming Overbudget"), STAT_StreamingOverview04_StreamingOverbudget, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Unstreambale Render Assets"), STAT_StreamingOverview05_UnstreamableRenderAssets, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT(" NeverStream"), STAT_StreamingOverview06_NeverStream, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT(" UI Group"), STAT_StreamingOverview07_UIGroup, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Average Required PoolSize"), STAT_StreamingOverview08_AverageRequiredPool, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Number of Streamed Meshes"), STAT_StreamingOverview09_NumStreamedMeshes, STATGROUP_StreamingOverview)
 
 DECLARE_FLOAT_COUNTER_STAT (TEXT("Average Number of Streamed Mesh LODs"), STAT_StreamingOverview10_AvgNumStreamedLODs, STATGROUP_StreamingOverview)
 
 DECLARE_FLOAT_COUNTER_STAT (TEXT("Average Number of Resident Mesh LODs"), STAT_StreamingOverview11_AvgNumResidentLODs, STATGROUP_StreamingOverview)
 
 DECLARE_FLOAT_COUNTER_STAT (TEXT("Average Number of Evicted Mesh LODs"), STAT_StreamingOverview12_AvgNumEvictedLODs, STATGROUP_StreamingOverview)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Mesh LOD Bytes Streamable"), STAT_StreamingOverview13_StreamedMeshMem, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Mesh LOD Bytes Resident"), STAT_StreamingOverview14_ResidentMeshMem, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DECLARE_MEMORY_STAT_POOL (TEXT("Mesh LOD Bytes Evicted"), STAT_StreamingOverview15_EvictedMeshMem, STATGROUP_StreamingOverview, FPlatformMemory::MCR_StreamingPool)
 
 DEFINE_STAT (STAT_RenderAssetStreaming_GameThreadUpdateTime)
 
 DEFINE_LOG_CATEGORY (LogContentStreaming)
 
ENGINE_API TAutoConsoleVariable< int32CVarStreamingUseNewMetrics (TEXT("r.Streaming.UseNewMetrics"), 1, TEXT("If non-zero, will use improved set of metrics and heuristics."), ECVF_Default)
 
ENGINE_API TAutoConsoleVariable< int32CVarFramesForFullUpdate (TEXT("r.Streaming.FramesForFullUpdate"), 5, TEXT("Texture streaming is time sliced per frame. This values gives the number of frames to visit all textures."))
 
void ResetAverageRequiredTexturePoolSize ()
 
int64 GetAverageRequiredTexturePoolSize ()
 
bool OwnerLevelHasRegisteredStaticComponentsInStreamingManager (const AActor *Owner)
 

Variables

TAutoConsoleVariable< floatCVarStreamingBoost (TEXT("r.Streaming.Boost"), 1.0f, TEXT(">1.0: increase wanted mip levels"), ECVF_Scalability|ECVF_ExcludeFromPreview)
 
TAutoConsoleVariable< floatCVarStreamingMinBoost (TEXT("r.Streaming.MinBoost"), 0.0f, TEXT("Minimum clamp for r.Streaming.Boost"), ECVF_Default)
 
TAutoConsoleVariable< floatCVarStreamingScreenSizeEffectiveMax (TEXT("r.Streaming.MaxEffectiveScreenSize"), 0, TEXT("> 0: Clamp wanted mip size calculation to this value for the vertical screen size component."), ECVF_Scalability)
 
TAutoConsoleVariable< int32CVarStreamingUseFixedPoolSize (TEXT("r.Streaming.UseFixedPoolSize"), 0, TEXT("If non-zero, do not allow the pool size to change at run time."), ECVF_Scalability)
 
TAutoConsoleVariable< int32CVarStreamingPoolSize (TEXT("r.Streaming.PoolSize"), -1, TEXT("-1: Default texture pool size, otherwise the size in MB"), ECVF_Scalability|ECVF_ExcludeFromPreview)
 
TAutoConsoleVariable< int32CVarStreamingMaxTempMemoryAllowed (TEXT("r.Streaming.MaxTempMemoryAllowed"), 50, TEXT("The value must be high enough to not be a limiting streaming speed factor.\n"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingDropMips (TEXT("r.Streaming.DropMips"), 0, TEXT("4: Drop non-inlined LODs of no-ref meshes"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingHLODStrategy (TEXT("r.Streaming.HLODStrategy"), 0, TEXT("2: disable streaming"), ECVF_Default)
 
TAutoConsoleVariable< floatCVarStreamingPerTextureBiasViewBoostThreshold (TEXT("r.Streaming.PerTextureBiasViewBoostThreshold"), 1.5, TEXT("This prevents temporary small FOV from downgrading permanentely texture quality."), ECVF_Default)
 
TAutoConsoleVariable< floatCVarStreamingMaxHiddenPrimitiveViewBoost (TEXT("r.Streaming.MaxHiddenPrimitiveViewBoost"), 1.5, TEXT("This prevents temporary small FOV from streaming all textures to their highest mips."), ECVF_Default)
 
TAutoConsoleVariable< floatCVarStreamingHiddenPrimitiveScale (TEXT("r.Streaming.HiddenPrimitiveScale"), 0.5, TEXT("1: ignore visiblity"), ECVF_Default)
 
TAutoConsoleVariable< floatCVarStreamingMipBias (TEXT("r.Streaming.MipBias"), 0.0f, TEXT("2: drop two mips"), ECVF_Scalability)
 
TAutoConsoleVariable< int32CVarStreamingUsePerTextureBias (TEXT("r.Streaming.UsePerTextureBias"), 1, TEXT("If non-zero, each texture will be assigned a mip bias between 0 and MipBias as required to fit in budget."), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingFullyLoadUsedTextures (TEXT("r.Streaming.FullyLoadUsedTextures"), 0, TEXT("If non-zero, all used texture will be fully streamed in as fast as possible"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingUseAllMips (TEXT("r.Streaming.UseAllMips"), 0, TEXT("If non-zero, all available mips will be used"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingLimitPoolSizeToVRAM (TEXT("r.Streaming.LimitPoolSizeToVRAM"), 0, TEXT("If non-zero, texture pool size with be limited to how much GPU mem is available."), ECVF_Scalability)
 
TAutoConsoleVariable< int32CVarStreamingCheckBuildStatus (TEXT("r.Streaming.CheckBuildStatus"), 0, TEXT("If non-zero, the engine will check whether texture streaming needs rebuild."), ECVF_Scalability)
 
TAutoConsoleVariable< int32CVarStreamingUseMaterialData (TEXT("r.Streaming.UseMaterialData"), 1, TEXT("If non-zero, material texture scales and coord will be used"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingNumStaticComponentsProcessedPerFrame (TEXT("r.Streaming.NumStaticComponentsProcessedPerFrame"), 50, TEXT("If non-zero, the engine will incrementaly inserting levels by processing this amount of components per frame before they become visible"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingDefragDynamicBounds (TEXT("r.Streaming.DefragDynamicBounds"), 1, TEXT("If non-zero, unused dynamic bounds will be removed from the update loop"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingMinMipForSplitRequest (TEXT("r.Streaming.MinMipForSplitRequest"), 10, TEXT("If non-zero, the minimum hidden mip for which load requests will first load the visible mip"), ECVF_Default)
 
TAutoConsoleVariable< floatCVarStreamingMinLevelRenderAssetScreenSize (TEXT("r.Streaming.MinLevelRenderAssetScreenSize"), 100, TEXT("If non-zero, levels only get handled if any of their referenced texture could be required of this size. Using conservative metrics on the level data."), ECVF_Default)
 
TAutoConsoleVariable< floatCVarStreamingMaxTextureUVDensity (TEXT("r.Streaming.MaxTextureUVDensity"), 0, TEXT("Component with bigger entries become handled as dynamic component.\n"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingMipCalculationEnablePerLevelList (TEXT("r.Streaming.MipCalculationEnablePerLevelList"), 1, TEXT("If non-zero, Mip size computation for streamed texture will use levels referenced with it (instead of iterating thorugh every levels).\n"), ECVF_Default)
 
TAutoConsoleVariable< int32CVarStreamingLowResHandlingMode (TEXT("r.Streaming.LowResHandlingMode"),(int32) FRenderAssetStreamingSettings::LRHM_DoNothing, TEXT("How to handle assets with too many missing MIPs or LODs. 0 (default): do nothing, 1: load before regular streaming requests, 2: load before async loading precache requests."), ECVF_Default)
 
float ENGINE_API GNegativeOneOneTable [2] = {-1.0f,1.0f}
 
float GLightmapStreamingFactor = 1.0f
 
float GShadowmapStreamingFactor = 0.09f
 
bool GNeverStreamOutRenderAssets = false
 

Function Documentation

◆ CVarFramesForFullUpdate()

ENGINE_API TAutoConsoleVariable< int32 > CVarFramesForFullUpdate ( TEXT("r.Streaming.FramesForFullUpdate")  ,
,
TEXT("Texture streaming is time sliced per frame. This values gives the number of frames to visit all textures."  
)

◆ CVarStreamingUseNewMetrics()

ENGINE_API TAutoConsoleVariable< int32 > CVarStreamingUseNewMetrics ( TEXT("r.Streaming.UseNewMetrics")  ,
,
TEXT("If non-zero, will use improved set of metrics and heuristics." ,
ECVF_Default   
)

◆ DECLARE_CYCLE_STAT() [1/4]

DECLARE_CYCLE_STAT ( TEXT("Notifications")  ,
STAT_Streaming04_Notifications  ,
STATGROUP_Streaming   
)

◆ DECLARE_CYCLE_STAT() [2/4]

DECLARE_CYCLE_STAT ( TEXT("Setup Async Task" ,
STAT_Streaming01_SetupAsyncTask  ,
STATGROUP_Streaming   
)

◆ DECLARE_CYCLE_STAT() [3/4]

DECLARE_CYCLE_STAT ( TEXT("Streaming Render Assets" ,
STAT_Streaming03_StreamRenderAssets  ,
STATGROUP_Streaming   
)

◆ DECLARE_CYCLE_STAT() [4/4]

DECLARE_CYCLE_STAT ( TEXT("Update Streaming Data" ,
STAT_Streaming02_UpdateStreamingData  ,
STATGROUP_Streaming   
)

◆ DECLARE_DWORD_COUNTER_STAT() [1/3]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Number of Streamed Meshes" ,
STAT_StreamingOverview09_NumStreamedMeshes  ,
STATGROUP_StreamingOverview   
)

◆ DECLARE_DWORD_COUNTER_STAT() [2/3]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Pending 2D Update" ,
STAT_Streaming05_Pending2DUpdate  ,
STATGROUP_Streaming   
)

◆ DECLARE_DWORD_COUNTER_STAT() [3/3]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Virtual Texture Count" ,
STAT_Streaming06_VirtualTextureCount  ,
STATGROUP_Streaming   
)

◆ DECLARE_FLOAT_COUNTER_STAT() [1/3]

DECLARE_FLOAT_COUNTER_STAT ( TEXT("Average Number of Evicted Mesh LODs" ,
STAT_StreamingOverview12_AvgNumEvictedLODs  ,
STATGROUP_StreamingOverview   
)

◆ DECLARE_FLOAT_COUNTER_STAT() [2/3]

DECLARE_FLOAT_COUNTER_STAT ( TEXT("Average Number of Resident Mesh LODs" ,
STAT_StreamingOverview11_AvgNumResidentLODs  ,
STATGROUP_StreamingOverview   
)

◆ DECLARE_FLOAT_COUNTER_STAT() [3/3]

DECLARE_FLOAT_COUNTER_STAT ( TEXT("Average Number of Streamed Mesh LODs" ,
STAT_StreamingOverview10_AvgNumStreamedLODs  ,
STATGROUP_StreamingOverview   
)

◆ DECLARE_MEMORY_STAT() [1/3]

DECLARE_MEMORY_STAT ( TEXT("Virtual Texture Pool" ,
STAT_Streaming17_VirtualTexturePool  ,
STATGROUP_Streaming   
)

◆ DECLARE_MEMORY_STAT() [2/3]

DECLARE_MEMORY_STAT ( TEXT("Virtual Texture Required" ,
STAT_Streaming18_VirtualTextureRequired  ,
STATGROUP_Streaming   
)

◆ DECLARE_MEMORY_STAT() [3/3]

DECLARE_MEMORY_STAT ( TEXT("Virtual Texture Used" ,
STAT_Streaming19_VirtualTextureUsed  ,
STATGROUP_Streaming   
)

◆ DECLARE_MEMORY_STAT_POOL() [1/25]

DECLARE_MEMORY_STAT_POOL ( TEXT(" Cached")  ,
STAT_StreamingOverview03_Cached  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [2/25]

DECLARE_MEMORY_STAT_POOL ( TEXT(" NeverStream")  ,
STAT_StreamingOverview06_NeverStream  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [3/25]

DECLARE_MEMORY_STAT_POOL ( TEXT(" Required")  ,
STAT_StreamingOverview02_Required  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [4/25]

DECLARE_MEMORY_STAT_POOL ( TEXT(" UI Group" ,
STAT_StreamingOverview07_UIGroup  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [5/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Average Required PoolSize" ,
STAT_StreamingOverview08_AverageRequiredPool  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [6/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Cached Mips" ,
STAT_Streaming11_CachedMips  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [7/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Desired Data Loaded Percent" ,
STAT_Streaming16_DesiredDataLoadedPct  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_UsedStreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [8/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Forced Mips" ,
STAT_Streaming08_ForcedMips  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [9/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Hidden Mips" ,
STAT_Streaming07_HiddenMips  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [10/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Inflight Requests" ,
STAT_Streaming13_InflightRequests  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_UsedStreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [11/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("IO Bandwidth" ,
STAT_Streaming14_MipIOBandwidth  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_UsedStreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [12/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Mesh LOD Bytes Evicted" ,
STAT_StreamingOverview15_EvictedMeshMem  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [13/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Mesh LOD Bytes Resident" ,
STAT_StreamingOverview14_ResidentMeshMem  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [14/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Mesh LOD Bytes Streamable" ,
STAT_StreamingOverview13_StreamedMeshMem  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [15/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("NonStreaming Mips" ,
STAT_Streaming04_NonStreamingMips  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_TexturePool   
)

◆ DECLARE_MEMORY_STAT_POOL() [16/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Required Pool" ,
STAT_Streaming05_RequiredPool  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [17/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Safety Pool" ,
STAT_Streaming01_SafetyPool  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_TexturePool   
)

Streaming stats

◆ DECLARE_MEMORY_STAT_POOL() [18/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Streamable Render Assets" ,
STAT_StreamingOverview01_StreamableRenderAssets  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

Streaming Overview stats

◆ DECLARE_MEMORY_STAT_POOL() [19/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Streaming Overbudget" ,
STAT_StreamingOverview04_StreamingOverbudget  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [20/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Streaming Pool" ,
STAT_Streaming03_StreamingPool  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_TexturePool   
)

◆ DECLARE_MEMORY_STAT_POOL() [21/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Temporary Pool" ,
STAT_Streaming02_TemporaryPool  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_TexturePool   
)

◆ DECLARE_MEMORY_STAT_POOL() [22/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("UnkownRef Mips" ,
STAT_Streaming09_UnkownRefMips  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [23/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Unstreambale Render Assets" ,
STAT_StreamingOverview05_UnstreamableRenderAssets  ,
STATGROUP_StreamingOverview  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [24/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Visible Mips" ,
STAT_Streaming06_VisibleMips  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_StreamingPool   
)

◆ DECLARE_MEMORY_STAT_POOL() [25/25]

DECLARE_MEMORY_STAT_POOL ( TEXT("Wanted Mips" ,
STAT_Streaming12_WantedMips  ,
STATGROUP_Streaming  ,
FPlatformMemory::MCR_UsedStreamingPool   
)

◆ DEFINE_LOG_CATEGORY()

DEFINE_LOG_CATEGORY ( LogContentStreaming  )

◆ DEFINE_STAT()

◆ GetAverageRequiredTexturePoolSize()

int64 GetAverageRequiredTexturePoolSize ( )

Returns the average value of the required texture pool "r.streaming.PoolSize" since engine start or since the last ResetAverageRequiredTexturePoolSize(). This value gives the perfect value for "r.streaming.PoolSize" so that the streamer would always have enough memory to stream in everything. The requirements are different depending on whether GPoolSizeVRAMPercentage > 0 or not. When GPoolSizeVRAMPercentage > 0, the non streaming mips are not accounted in the required pool size since StreamingPool = Min(TexturePool, GPoolSizeVRAMPercentage * VRAM - RenderTargets - NonStreamingTexture) This means that the StreamingPool = TexturePool, unless there is not enough VRAM Otherwise, when GPoolSizeVRAMPercentage == 0, StreamingPool = TexturePool - NonStreamingTexture. In which case "r.streaming.PoolSize" must account for the size of NonStreamingTexture

◆ OwnerLevelHasRegisteredStaticComponentsInStreamingManager()

bool OwnerLevelHasRegisteredStaticComponentsInStreamingManager ( const AActor Owner)

◆ ResetAverageRequiredTexturePoolSize()

void ResetAverageRequiredTexturePoolSize ( )

Reset the history of the value returned by GetAverageRequiredTexturePoolSize()

Variable Documentation

◆ CVarStreamingBoost

TAutoConsoleVariable< float > CVarStreamingBoost(TEXT("r.Streaming.Boost"), 1.0f, TEXT(">1.0: increase wanted mip levels"), ECVF_Scalability|ECVF_ExcludeFromPreview) ( TEXT("r.Streaming.Boost")  ,
1.  0f,
TEXT(">1.0: increase wanted mip levels" ,
ECVF_Scalability ECVF_ExcludeFromPreview 
)

◆ CVarStreamingCheckBuildStatus

TAutoConsoleVariable< int32 > CVarStreamingCheckBuildStatus(TEXT("r.Streaming.CheckBuildStatus"), 0, TEXT("If non-zero, the engine will check whether texture streaming needs rebuild."), ECVF_Scalability) ( TEXT("r.Streaming.CheckBuildStatus")  ,
,
TEXT("If non-zero, the engine will check whether texture streaming needs rebuild." ,
ECVF_Scalability   
)

◆ CVarStreamingDefragDynamicBounds

TAutoConsoleVariable< int32 > CVarStreamingDefragDynamicBounds(TEXT("r.Streaming.DefragDynamicBounds"), 1, TEXT("If non-zero, unused dynamic bounds will be removed from the update loop"), ECVF_Default) ( TEXT("r.Streaming.DefragDynamicBounds")  ,
,
TEXT("If non-zero, unused dynamic bounds will be removed from the update loop" ,
ECVF_Default   
)

◆ CVarStreamingDropMips

TAutoConsoleVariable< int32 > CVarStreamingDropMips(TEXT("r.Streaming.DropMips"), 0, TEXT("4: Drop non-inlined LODs of no-ref meshes"), ECVF_Default) ( TEXT("r.Streaming.DropMips")  ,
,
TEXT("4: Drop non-inlined LODs of no-ref meshes" ,
ECVF_Default   
)

◆ CVarStreamingFullyLoadUsedTextures

TAutoConsoleVariable< int32 > CVarStreamingFullyLoadUsedTextures(TEXT("r.Streaming.FullyLoadUsedTextures"), 0, TEXT("If non-zero, all used texture will be fully streamed in as fast as possible"), ECVF_Default) ( TEXT("r.Streaming.FullyLoadUsedTextures")  ,
,
TEXT("If non-zero, all used texture will be fully streamed in as fast as possible" ,
ECVF_Default   
)

◆ CVarStreamingHiddenPrimitiveScale

TAutoConsoleVariable< float > CVarStreamingHiddenPrimitiveScale(TEXT("r.Streaming.HiddenPrimitiveScale"), 0.5, TEXT("1: ignore visiblity"), ECVF_Default) ( TEXT("r.Streaming.HiddenPrimitiveScale")  ,
0.  5,
TEXT("1: ignore visiblity" ,
ECVF_Default   
)

◆ CVarStreamingHLODStrategy

TAutoConsoleVariable< int32 > CVarStreamingHLODStrategy(TEXT("r.Streaming.HLODStrategy"), 0, TEXT("2: disable streaming"), ECVF_Default) ( TEXT("r.Streaming.HLODStrategy")  ,
,
TEXT("2: disable streaming" ,
ECVF_Default   
)

◆ CVarStreamingLimitPoolSizeToVRAM

TAutoConsoleVariable< int32 > CVarStreamingLimitPoolSizeToVRAM(TEXT("r.Streaming.LimitPoolSizeToVRAM"), 0, TEXT("If non-zero, texture pool size with be limited to how much GPU mem is available."), ECVF_Scalability) ( TEXT("r.Streaming.LimitPoolSizeToVRAM")  ,
,
TEXT("If non-zero, texture pool size with be limited to how much GPU mem is available." ,
ECVF_Scalability   
)

◆ CVarStreamingLowResHandlingMode

TAutoConsoleVariable< int32 > CVarStreamingLowResHandlingMode(TEXT("r.Streaming.LowResHandlingMode"),(int32) FRenderAssetStreamingSettings::LRHM_DoNothing, TEXT("How to handle assets with too many missing MIPs or LODs. 0 (default): do nothing, 1: load before regular streaming requests, 2: load before async loading precache requests."), ECVF_Default) ( TEXT("r.Streaming.LowResHandlingMode")  ,
(int32) FRenderAssetStreamingSettings::LRHM_DoNothing  ,
TEXT("How to handle assets with too many missing MIPs or LODs. 0 (default): do nothing, 1: load before regular streaming requests, 2: load before async loading precache requests." ,
ECVF_Default   
)

◆ CVarStreamingMaxHiddenPrimitiveViewBoost

TAutoConsoleVariable< float > CVarStreamingMaxHiddenPrimitiveViewBoost(TEXT("r.Streaming.MaxHiddenPrimitiveViewBoost"), 1.5, TEXT("This prevents temporary small FOV from streaming all textures to their highest mips."), ECVF_Default) ( TEXT("r.Streaming.MaxHiddenPrimitiveViewBoost")  ,
1.  5,
TEXT("This prevents temporary small FOV from streaming all textures to their highest mips." ,
ECVF_Default   
)

◆ CVarStreamingMaxTempMemoryAllowed

TAutoConsoleVariable< int32 > CVarStreamingMaxTempMemoryAllowed(TEXT("r.Streaming.MaxTempMemoryAllowed"), 50, TEXT("The value must be high enough to not be a limiting streaming speed factor.\n"), ECVF_Default) ( TEXT("r.Streaming.MaxTempMemoryAllowed")  ,
50  ,
TEXT("The value must be high enough to not be a limiting streaming speed factor.\n" ,
ECVF_Default   
)

◆ CVarStreamingMaxTextureUVDensity

TAutoConsoleVariable< float > CVarStreamingMaxTextureUVDensity(TEXT("r.Streaming.MaxTextureUVDensity"), 0, TEXT("Component with bigger entries become handled as dynamic component.\n"), ECVF_Default) ( TEXT("r.Streaming.MaxTextureUVDensity")  ,
,
TEXT("Component with bigger entries become handled as dynamic component.\n" ,
ECVF_Default   
)

◆ CVarStreamingMinBoost

TAutoConsoleVariable< float > CVarStreamingMinBoost(TEXT("r.Streaming.MinBoost"), 0.0f, TEXT("Minimum clamp for r.Streaming.Boost"), ECVF_Default) ( TEXT("r.Streaming.MinBoost")  ,
0.  0f,
TEXT("Minimum clamp for r.Streaming.Boost" ,
ECVF_Default   
)

◆ CVarStreamingMinLevelRenderAssetScreenSize

TAutoConsoleVariable< float > CVarStreamingMinLevelRenderAssetScreenSize(TEXT("r.Streaming.MinLevelRenderAssetScreenSize"), 100, TEXT("If non-zero, levels only get handled if any of their referenced texture could be required of this size. Using conservative metrics on the level data."), ECVF_Default) ( TEXT("r.Streaming.MinLevelRenderAssetScreenSize")  ,
100  ,
TEXT("If non-zero, levels only get handled if any of their referenced texture could be required of this size. Using conservative metrics on the level data." ,
ECVF_Default   
)

◆ CVarStreamingMinMipForSplitRequest

TAutoConsoleVariable< int32 > CVarStreamingMinMipForSplitRequest(TEXT("r.Streaming.MinMipForSplitRequest"), 10, TEXT("If non-zero, the minimum hidden mip for which load requests will first load the visible mip"), ECVF_Default) ( TEXT("r.Streaming.MinMipForSplitRequest")  ,
10  ,
TEXT("If non-zero, the minimum hidden mip for which load requests will first load the visible mip" ,
ECVF_Default   
)

◆ CVarStreamingMipBias

TAutoConsoleVariable< float > CVarStreamingMipBias(TEXT("r.Streaming.MipBias"), 0.0f, TEXT("2: drop two mips"), ECVF_Scalability) ( TEXT("r.Streaming.MipBias")  ,
0.  0f,
TEXT("2: drop two mips" ,
ECVF_Scalability   
)

◆ CVarStreamingMipCalculationEnablePerLevelList

TAutoConsoleVariable< int32 > CVarStreamingMipCalculationEnablePerLevelList(TEXT("r.Streaming.MipCalculationEnablePerLevelList"), 1, TEXT("If non-zero, Mip size computation for streamed texture will use levels referenced with it (instead of iterating thorugh every levels).\n"), ECVF_Default) ( TEXT("r.Streaming.MipCalculationEnablePerLevelList")  ,
,
TEXT("If non-zero, Mip size computation for streamed texture will use levels referenced with it (instead of iterating thorugh every levels).\n" ,
ECVF_Default   
)

◆ CVarStreamingNumStaticComponentsProcessedPerFrame

TAutoConsoleVariable< int32 > CVarStreamingNumStaticComponentsProcessedPerFrame(TEXT("r.Streaming.NumStaticComponentsProcessedPerFrame"), 50, TEXT("If non-zero, the engine will incrementaly inserting levels by processing this amount of components per frame before they become visible"), ECVF_Default) ( TEXT("r.Streaming.NumStaticComponentsProcessedPerFrame")  ,
50  ,
TEXT("If non-zero, the engine will incrementaly inserting levels by processing this amount of components per frame before they become visible" ,
ECVF_Default   
)

◆ CVarStreamingPerTextureBiasViewBoostThreshold

TAutoConsoleVariable< float > CVarStreamingPerTextureBiasViewBoostThreshold(TEXT("r.Streaming.PerTextureBiasViewBoostThreshold"), 1.5, TEXT("This prevents temporary small FOV from downgrading permanentely texture quality."), ECVF_Default) ( TEXT("r.Streaming.PerTextureBiasViewBoostThreshold")  ,
1.  5,
TEXT("This prevents temporary small FOV from downgrading permanentely texture quality." ,
ECVF_Default   
)

◆ CVarStreamingPoolSize

TAutoConsoleVariable< int32 > CVarStreamingPoolSize(TEXT("r.Streaming.PoolSize"), -1, TEXT("-1: Default texture pool size, otherwise the size in MB"), ECVF_Scalability|ECVF_ExcludeFromPreview) ( TEXT("r.Streaming.PoolSize")  ,
1,
TEXT("-1: Default texture pool size, otherwise the size in MB" ,
ECVF_Scalability ECVF_ExcludeFromPreview 
)

◆ CVarStreamingScreenSizeEffectiveMax

TAutoConsoleVariable< float > CVarStreamingScreenSizeEffectiveMax(TEXT("r.Streaming.MaxEffectiveScreenSize"), 0, TEXT("> 0: Clamp wanted mip size calculation to this value for the vertical screen size component."), ECVF_Scalability) ( TEXT("r.Streaming.MaxEffectiveScreenSize")  ,
,
TEXT("> 0: Clamp wanted mip size calculation to this value for the vertical screen size component." ,
ECVF_Scalability   
)

◆ CVarStreamingUseAllMips

TAutoConsoleVariable< int32 > CVarStreamingUseAllMips(TEXT("r.Streaming.UseAllMips"), 0, TEXT("If non-zero, all available mips will be used"), ECVF_Default) ( TEXT("r.Streaming.UseAllMips")  ,
,
TEXT("If non-zero, all available mips will be used" ,
ECVF_Default   
)

◆ CVarStreamingUseFixedPoolSize

TAutoConsoleVariable< int32 > CVarStreamingUseFixedPoolSize(TEXT("r.Streaming.UseFixedPoolSize"), 0, TEXT("If non-zero, do not allow the pool size to change at run time."), ECVF_Scalability) ( TEXT("r.Streaming.UseFixedPoolSize")  ,
,
TEXT("If non-zero, do not allow the pool size to change at run time." ,
ECVF_Scalability   
)

◆ CVarStreamingUseMaterialData

TAutoConsoleVariable< int32 > CVarStreamingUseMaterialData(TEXT("r.Streaming.UseMaterialData"), 1, TEXT("If non-zero, material texture scales and coord will be used"), ECVF_Default) ( TEXT("r.Streaming.UseMaterialData")  ,
,
TEXT("If non-zero, material texture scales and coord will be used" ,
ECVF_Default   
)

◆ CVarStreamingUsePerTextureBias

TAutoConsoleVariable< int32 > CVarStreamingUsePerTextureBias(TEXT("r.Streaming.UsePerTextureBias"), 1, TEXT("If non-zero, each texture will be assigned a mip bias between 0 and MipBias as required to fit in budget."), ECVF_Default) ( TEXT("r.Streaming.UsePerTextureBias")  ,
,
TEXT("If non-zero, each texture will be assigned a mip bias between 0 and MipBias as required to fit in budget." ,
ECVF_Default   
)

◆ GLightmapStreamingFactor

float GLightmapStreamingFactor = 1.0f

Smaller value will stream out lightmaps more aggressively.

◆ GNegativeOneOneTable

float ENGINE_API GNegativeOneOneTable[2] = {-1.0f,1.0f}

the float table {-1.0f,1.0f}

◆ GNeverStreamOutRenderAssets

bool GNeverStreamOutRenderAssets = false

For testing, finding useless textures or special demo purposes. If true, textures will never be streamed out (but they can be GC'd). Caution: this only applies to unlimited texture pools (i.e. not consoles)

◆ GShadowmapStreamingFactor

float GShadowmapStreamingFactor = 0.09f

Smaller value will stream out shadowmaps more aggressively.