PauseRenderAssetStreaming

PauseRenderAssetStreaming

#Overview

name: PauseRenderAssetStreaming

This variable is created as a Console Variable (cvar).

It is referenced in 4 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of PauseRenderAssetStreaming is to control the pausing and resuming of texture and mesh streaming in Unreal Engine 5. This setting variable is primarily used in the rendering system, specifically for managing the streaming of render assets.

Based on the callsites, this variable is relied upon by the Engine module, particularly within the streaming management subsystem. It is referenced in the ContentStreaming.cpp, StreamingManagerTexture.cpp, and StreamingManagerTexture.h files, which are all part of the Engine’s streaming infrastructure.

The value of this variable is set through the PauseRenderAssetStreaming function, which takes a boolean parameter to indicate whether streaming should be paused or resumed. This function is defined as a virtual method in the IRenderAssetStreamingManager interface and implemented in the derived classes.

PauseRenderAssetStreaming interacts with the bPauseRenderAssetStreaming member variable of the streaming manager class. This boolean variable likely controls the internal state of the streaming system.

Developers must be aware that pausing render asset streaming can have significant impacts on game performance and memory usage. When streaming is paused, new assets may not load, and already loaded assets may not unload, potentially leading to increased memory consumption.

Best practices when using this variable include:

  1. Use it judiciously, typically for debugging or specific scenarios where you need to freeze the current streaming state.
  2. Always ensure to resume streaming when it’s no longer needed to be paused.
  3. Be mindful of the performance implications, especially on memory-constrained platforms.
  4. Consider using it in conjunction with other streaming-related commands or settings for comprehensive control over the streaming system.
  5. When using it for debugging, remember to remove or disable any calls to this function before shipping the game.

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/ContentStreaming.cpp:758

Scope (from outer to inner):

file
function     void IRenderAssetStreamingManager::PauseTextureStreaming

Source code excerpt:

void IRenderAssetStreamingManager::PauseTextureStreaming(bool bInShouldPause)
{
	PauseRenderAssetStreaming(bInShouldPause);
}

/*-----------------------------------------------------------------------------
	FStreamingManagerCollection implementation.
-----------------------------------------------------------------------------*/

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/Streaming/StreamingManagerTexture.cpp:2958

Scope: file

Source code excerpt:

	}
	else if (FParse::Command(&Cmd,TEXT("PauseTextureStreaming"))
		|| FParse::Command(&Cmd, TEXT("PauseRenderAssetStreaming")))
	{
		return HandlePauseRenderAssetStreamingCommand( Cmd, Ar );
	}
	else if (FParse::Command(&Cmd,TEXT("StreamingManagerMemory")))
	{
		return HandleStreamingManagerMemoryCommand( Cmd, Ar, InWorld );

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/Streaming/StreamingManagerTexture.h:169

Scope (from outer to inner):

file
function     virtual void PauseRenderAssetStreaming

Source code excerpt:


	/** Set current pause state for texture/mesh streaming */
	virtual void PauseRenderAssetStreaming(bool bInShouldPause) override
	{
		bPauseRenderAssetStreaming = bInShouldPause;
	}

	/** Return all bounds related to the ref object */
	virtual void GetObjectReferenceBounds(const UObject* RefObject, TArray<FBox>& AssetBoxes) override;

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ContentStreaming.h:476

Scope: file

Source code excerpt:


	/** Set current pause state for texture/mesh streaming */
	virtual void PauseRenderAssetStreaming(bool bInShouldPause) = 0;

	/** Return all bounds related to the ref object */
	virtual void GetObjectReferenceBounds(const UObject* RefObject, TArray<FBox>& AssetBoxes) = 0;

	/** Return all components referencing the asset */
	virtual void GetAssetComponents(