r.Lumen.ScreenProbeGather.TileDebugMode
r.Lumen.ScreenProbeGather.TileDebugMode
#Overview
name: r.Lumen.ScreenProbeGather.TileDebugMode
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Display Lumen screen probe tile classification.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of r.Lumen.ScreenProbeGather.TileDebugMode is to enable the display of Lumen screen probe tile classification for debugging purposes. This setting variable is part of the Lumen lighting system in Unreal Engine 5, specifically focusing on the screen probe gather process.
Key points:
-
Unreal Engine subsystem: This variable is used in the Lumen lighting system, which is part of the rendering subsystem.
-
Module: It is implemented in the Renderer module, as evidenced by its location in the “Renderer/Private/Lumen” directory.
-
Value setting: The value is set through a console variable, allowing runtime modification. It’s initialized to 0 by default.
-
Associated variable: It’s directly associated with GLumenScreenProbeTileDebugMode, an integer variable that holds the actual value.
-
Usage: When GLumenScreenProbeTileDebugMode is greater than 0, it triggers a debug pass (AddLumenScreenProbeDebugPass) that visualizes the screen probe tile classification.
-
Developer awareness:
- This is a debugging tool and should be used only when investigating issues or optimizing the Lumen screen probe system.
- Enabling this mode may have performance implications, as it adds an additional debug pass to the rendering pipeline.
-
Best practices:
- Use this variable only during development and debugging.
- Ensure it’s set to 0 in release builds to avoid unnecessary performance overhead.
- When enabled, combine it with other Lumen debugging tools for comprehensive analysis.
Regarding the associated variable GLumenScreenProbeTileDebugMode:
- Purpose: It holds the actual integer value of the debug mode setting.
- Usage: It’s checked in the rendering code to determine whether to execute the debug pass.
- Setting: Its value is set through the console variable r.Lumen.ScreenProbeGather.TileDebugMode.
- Best practices:
- Don’t modify this variable directly in code; use the console variable instead for consistency.
- When reading this value in code, consider caching it if used frequently to avoid repeated console variable lookups.
Developers should use these variables judiciously, as they can impact performance when enabled. They are valuable tools for understanding and optimizing the Lumen screen probe gather process, but should be disabled in production builds.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/Lumen/LumenScreenProbeGather.cpp:322
Scope: file
Source code excerpt:
int32 GLumenScreenProbeTileDebugMode = 0;
FAutoConsoleVariableRef GVarLumenScreenProbeTileDebugMode(
TEXT("r.Lumen.ScreenProbeGather.TileDebugMode"),
GLumenScreenProbeTileDebugMode,
TEXT("Display Lumen screen probe tile classification."),
ECVF_Scalability | ECVF_RenderThreadSafe
);
namespace LumenScreenProbeGather
#Associated Variable and Callsites
This variable is associated with another variable named GLumenScreenProbeTileDebugMode
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/Lumen/LumenScreenProbeGather.cpp:320
Scope: file
Source code excerpt:
);
int32 GLumenScreenProbeTileDebugMode = 0;
FAutoConsoleVariableRef GVarLumenScreenProbeTileDebugMode(
TEXT("r.Lumen.ScreenProbeGather.TileDebugMode"),
GLumenScreenProbeTileDebugMode,
TEXT("Display Lumen screen probe tile classification."),
ECVF_Scalability | ECVF_RenderThreadSafe
);
namespace LumenScreenProbeGather
{
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/Lumen/LumenScreenProbeGather.cpp:1300
Scope (from outer to inner):
file
function void InterpolateAndIntegrate
Source code excerpt:
// Debug pass
if (GLumenScreenProbeTileDebugMode > 0)
{
AddLumenScreenProbeDebugPass(GraphBuilder, View, ViewportIntegrateTileDimensions, TileClassificationBufferDimensions, IntegrateTileData, IntegrateIndirectArgs);
}
}
else // No tile classification
{