NumUnusedShaderCompilingThreads
NumUnusedShaderCompilingThreads
#Overview
name: NumUnusedShaderCompilingThreads
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 2
C++ source files.
#Summary
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:1952, section: [DevOptions.Shaders]
- INI Section:
DevOptions.Shaders
- Raw value:
3
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/ShaderCompiler/ShaderCompiler.cpp:5861
Scope (from outer to inner):
file
function void FShaderCompilingManager::CalculateNumberOfCompilingThreads
Source code excerpt:
const int32 NumVirtualCores = NumberOfCoresIncludingHyperthreads;
int32 NumUnusedShaderCompilingThreads;
verify(GConfig->GetInt(TEXT("DevOptions.Shaders"), TEXT("NumUnusedShaderCompilingThreads"), NumUnusedShaderCompilingThreads, GEngineIni));
int32 NumUnusedShaderCompilingThreadsDuringGame;
verify(GConfig->GetInt(TEXT("DevOptions.Shaders"), TEXT("NumUnusedShaderCompilingThreadsDuringGame"), NumUnusedShaderCompilingThreadsDuringGame, GEngineIni));
int32 ShaderCompilerCoreCountThreshold;
verify(GConfig->GetInt(TEXT("DevOptions.Shaders"), TEXT("ShaderCompilerCoreCountThreshold"), ShaderCompilerCoreCountThreshold, GEngineIni));
#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/ShaderCompiler/ShaderCompiler.cpp:5884
Scope (from outer to inner):
file
function void FShaderCompilingManager::CalculateNumberOfCompilingThreads
Source code excerpt:
PercentageUnusedShaderCompilingThreads = FMath::Clamp(PercentageUnusedShaderCompilingThreads, 0.0f, 100.0f) / 100.0f;
NumUnusedShaderCompilingThreads = FMath::CeilToInt(NumVirtualCores * PercentageUnusedShaderCompilingThreads);
NumUnusedShaderCompilingThreadsDuringGame = NumUnusedShaderCompilingThreads;
}
// Use all the cores on the build machines.
if (GForceAllCoresForShaderCompiling != 0)
{
NumUnusedShaderCompilingThreads = 0;
}
NumShaderCompilingThreads = (bAllowCompilingThroughWorkers && NumVirtualCores > NumUnusedShaderCompilingThreads) ? (NumVirtualCores - NumUnusedShaderCompilingThreads) : 1;
// Make sure there's at least one worker allowed to be active when compiling during the game
NumShaderCompilingThreadsDuringGame = (bAllowCompilingThroughWorkers && NumVirtualCores > NumUnusedShaderCompilingThreadsDuringGame) ? (NumVirtualCores - NumUnusedShaderCompilingThreadsDuringGame) : 1;
// On machines with few cores, each core will have a massive impact on compile time, so we prioritize compile latency over editor performance during the build
if (NumVirtualCores <= 4)