Download

How to limit the number of cores used for shader compiling

How can I limit the number of cores used when packaging or compiling shaders? I just want to keep a couple of cores for my self while these long builds are running. I have tried the BuildConfiguration.xml file but this doesn’t work

<?xml version=“1.0” encoding=“utf-8” ?>
<Configuration xmlns=“https://www.unrealengine.com/BuildConfiguration”>
<BuildConfiguration>
<ParallelExecutor>
<ProcessorCountMultiplier>2</ProcessorCountMultiplier>
<MaxProcessorCount>30</MaxProcessorCount>
</ParallelExecutor>
</BuildConfiguration>
</Configuration>

cpu affinity can do this, and a this program can auto change it everytime it detects that process is running.
https://www.prnwatch.com/prio/
there’s a whole bunch of apps that do the same thing in this thread

personaly i use process lasso as it has a massive amount control to keep all apps from dominating the system (it does this automatically), letting you run heavy workloads while still being able to use the system for other tasks.

Is there no setting to say “only use X number of shader compilers”?

Probably there are some settings that eventually control this, but I’ve found a workaround if you are compiling from source. In ShaderCompiler.cpp, in FShaderCompileThreadRunnable::PullTasksFromQueue() you can just hard-code the NumWorkersToFeed you want. Not the cleanest way but works.