r.GPUCrashDebugging.Aftermath.TrackAll
r.GPUCrashDebugging.Aftermath.TrackAll
#Overview
name: r.GPUCrashDebugging.Aftermath.TrackAll
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Enable maximum tracking for Aftermath dumps
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of r.GPUCrashDebugging.Aftermath.TrackAll is to enable maximum tracking for Aftermath dumps in GPU crash debugging scenarios. This setting variable is part of the GPU crash debugging system in Unreal Engine 5, specifically for the NVIDIA Aftermath technology.
This setting variable is primarily used in the RHI (Rendering Hardware Interface) module and is referenced in both D3D11 and D3D12 implementations. It’s particularly relevant for the Direct3D graphics APIs on Windows platforms.
The value of this variable is set as a console variable with a default value of 1 (enabled). It can be modified through the console or configuration files, but it’s marked as read-only, suggesting that changes should be made before the engine initializes.
Other variables that interact with r.GPUCrashDebugging.Aftermath.TrackAll include:
- r.GPUCrashDebugging.Aftermath.Markers
- r.GPUCrashDebugging.Aftermath.Callstack
- r.GPUCrashDebugging.Aftermath.ResourceTracking
Developers should be aware that enabling this variable may have performance implications, as it enables maximum tracking for Aftermath dumps. It’s particularly useful for debugging GPU crashes but may not be necessary for all development or production scenarios.
Best practices when using this variable include:
- Enable it during development and testing phases, especially when debugging GPU-related issues.
- Consider disabling it in production builds to avoid potential performance overhead.
- Use in conjunction with other Aftermath-related variables for comprehensive GPU crash debugging.
- Be aware of the potential impact on performance and memory usage when enabled.
- Ensure that the NVIDIA Aftermath SDK is properly integrated into the project when using this feature.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/RHI/Private/RHI.cpp:1158
Scope: file
Source code excerpt:
static TAutoConsoleVariable<int32> CVarGPUCrashDebuggingAftermathTrackAll(
TEXT("r.GPUCrashDebugging.Aftermath.TrackAll"),
1,
TEXT("Enable maximum tracking for Aftermath dumps"),
ECVF_ReadOnly
);
static FAutoConsoleVariableRef CVarEnableVariableRateShading(
#Loc: <Workspace>/Engine/Source/Runtime/D3D12RHI/Private/D3D12Adapter.cpp:669
Scope (from outer to inner):
file
function void FD3D12Adapter::CreateRootDevice
Source code excerpt:
static IConsoleVariable* CallstackCVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.GPUCrashDebugging.Aftermath.Callstack"));
static IConsoleVariable* ResourcesCVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.GPUCrashDebugging.Aftermath.ResourceTracking"));
static IConsoleVariable* TrackAllCVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.GPUCrashDebugging.Aftermath.TrackAll"));
const bool bEnableMarkers = FParse::Param(FCommandLine::Get(), TEXT("aftermathmarkers")) || (MarkersCVar && MarkersCVar->GetInt());
const bool bEnableCallstack = FParse::Param(FCommandLine::Get(), TEXT("aftermathcallstack")) || (CallstackCVar && CallstackCVar->GetInt());
const bool bEnableResources = FParse::Param(FCommandLine::Get(), TEXT("aftermathresources")) || (ResourcesCVar && ResourcesCVar->GetInt());
const bool bEnableAll = FParse::Param(FCommandLine::Get(), TEXT("aftermathall")) || (TrackAllCVar && TrackAllCVar->GetInt());
#Loc: <Workspace>/Engine/Source/Runtime/Windows/D3D11RHI/Private/Windows/WindowsD3D11Device.cpp:1343
Scope (from outer to inner):
file
function void FD3D11DynamicRHI::StartNVAftermath
Source code excerpt:
static IConsoleVariable* CallstackCVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.GPUCrashDebugging.Aftermath.Callstack"));
static IConsoleVariable* ResourcesCVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.GPUCrashDebugging.Aftermath.ResourceTracking"));
static IConsoleVariable* TrackAllCVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.GPUCrashDebugging.Aftermath.TrackAll"));
const bool bEnableInEditor = GIsEditor && !FParse::Param(FCommandLine::Get(), TEXT("nogpucrashdebugging"));
const bool bEnableMarkers = FParse::Param(FCommandLine::Get(), TEXT("aftermathmarkers")) || (MarkersCVar && MarkersCVar->GetInt()) || bEnableInEditor;
const bool bEnableCallstack = FParse::Param(FCommandLine::Get(), TEXT("aftermathcallstack")) || (CallstackCVar && CallstackCVar->GetInt());
const bool bEnableResources = FParse::Param(FCommandLine::Get(), TEXT("aftermathresources")) || (ResourcesCVar && ResourcesCVar->GetInt());
const bool bEnableAll = FParse::Param(FCommandLine::Get(), TEXT("aftermathall")) || (TrackAllCVar && TrackAllCVar->GetInt());