renderdoc.CaptureAllActivity

renderdoc.CaptureAllActivity

#Overview

name: renderdoc.CaptureAllActivity

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

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of renderdoc.CaptureAllActivity is to control the scope of RenderDoc’s capture functionality within Unreal Engine 5. This setting variable is specifically related to the RenderDoc plugin, which is a graphics debugging tool integrated into Unreal Engine.

This setting variable is used by the RenderDocPlugin module, which is part of the developer tools in Unreal Engine 5. It’s primarily utilized in the RenderDocPluginModule.cpp file within the RenderDocPlugin source code.

The value of this variable is set through a console variable (CVar) system in Unreal Engine. It’s initialized with a default value of 0, but can be changed at runtime through console commands or configuration files.

The associated variable CVarRenderDocCaptureAllActivity directly interacts with renderdoc.CaptureAllActivity. They share the same value and purpose.

Developers must be aware that:

  1. When set to 0 (default), RenderDoc will only capture data from the current viewport.
  2. When set to 1, RenderDoc will capture all activity across all viewports and editor windows for the entire frame.

Best practices when using this variable include:

  1. Use the default value (0) for focused debugging of specific viewports to minimize performance impact and capture size.
  2. Set to 1 when a comprehensive capture of all rendering activity is needed, but be aware of potential performance implications and larger capture sizes.
  3. Consider the interaction with CVarRenderDocCaptureFrameCount, as capturing multiple frames automatically enables capturing all activity.

Regarding the associated variable CVarRenderDocCaptureAllActivity:

Developers should use the console variable renderdoc.CaptureAllActivity to control this setting, rather than directly manipulating CVarRenderDocCaptureAllActivity in code. This ensures consistency and allows for runtime configuration changes.

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Plugins/Developer/RenderDocPlugin/Source/RenderDocPlugin/Private/RenderDocPluginModule.cpp:35

Scope: file

Source code excerpt:


static TAutoConsoleVariable<int32> CVarRenderDocCaptureAllActivity(
	TEXT("renderdoc.CaptureAllActivity"),
	0,
	TEXT("0 - RenderDoc will only capture data from the current viewport. ")
	TEXT("1 - RenderDoc will capture all activity, in all viewports and editor windows for the entire frame."));
static TAutoConsoleVariable<int32> CVarRenderDocCaptureCallstacks(
	TEXT("renderdoc.CaptureCallstacks"),
	1,

#Associated Variable and Callsites

This variable is associated with another variable named CVarRenderDocCaptureAllActivity. They share the same value. See the following C++ source code.

#Loc: <Workspace>/Engine/Plugins/Developer/RenderDocPlugin/Source/RenderDocPlugin/Private/RenderDocPluginModule.cpp:34

Scope: file

Source code excerpt:

#define LOCTEXT_NAMESPACE "RenderDocPlugin"

static TAutoConsoleVariable<int32> CVarRenderDocCaptureAllActivity(
	TEXT("renderdoc.CaptureAllActivity"),
	0,
	TEXT("0 - RenderDoc will only capture data from the current viewport. ")
	TEXT("1 - RenderDoc will capture all activity, in all viewports and editor windows for the entire frame."));
static TAutoConsoleVariable<int32> CVarRenderDocCaptureCallstacks(
	TEXT("renderdoc.CaptureCallstacks"),

#Loc: <Workspace>/Engine/Plugins/Developer/RenderDocPlugin/Source/RenderDocPlugin/Private/RenderDocPluginModule.cpp:360

Scope (from outer to inner):

file
function     bool FRenderDocPluginModule::ShouldCaptureAllActivity

Source code excerpt:

{
	// capturing more than 1 frame means that we can't just capture the current viewport : 
	return CVarRenderDocCaptureAllActivity.GetValueOnAnyThread() || (CVarRenderDocCaptureFrameCount.GetValueOnAnyThread() > 1);
}

void FRenderDocPluginModule::ShowNotification(const FText& Message, bool bForceNewNotification)
{
#if WITH_EDITOR
	FRenderDocPluginNotification::Get().ShowNotification(Message, bForceNewNotification);