Unable to start any projects due to apparent shader compilation bug

Hi, got frustrated after using open-source engines and tools (Babylonjs, ammojs, linux) for years, thought I’d make life easier and move to a more professional ecosystem. Whelp, I can’t even start a project.

I have a fresh install of 5.02, on a Windows 11 machine with a 5950x and a 3090. When I try to start a project, I get an incredibly slow “Compiling Shaders (7,000)…” progress message - it will take about a day at this rate. It only seems to be spinning up one thread.

At the suggestion of helpful forum members I have edited some relevant variables in UE_5.0\Engine\Config\BaseEngine.ini:

[DevOptions.Shaders]
; See FShaderCompilingManager for documentation on what these do
bAllowCompilingThroughWorkers=True
bAllowAsynchronousShaderCompiling=True
; Make sure we don’t starve loading threads
NumUnusedShaderCompilingThreads=3
; Make sure the game has enough cores available to maintain reasonable performance
NumUnusedShaderCompilingThreadsDuringGame=4
; Core count threshold. Below this amount will use NumUnusedShaderCompilingThreads. Above this threshold will use PercentageUnusedShaderCompilingThreads when determining the number of cores to reserve.
ShaderCompilerCoreCountThreshold=12
; Percentage of your available logical cores that will be reserved and NOT used for shader compilation
; 0 means use all your cores to compile Shaders
; 100 means use none of your cores to compile shaders (it will still use 1 core).
PercentageUnusedShaderCompilingThreads=0
; Batching multiple jobs to reduce file overhead, but not so many that latency of blocking compiles is hurt
MaxShaderJobBatchSize=10
bPromptToRetryFailedShaderCompiles=False
bLogJobCompletionTimes=False
; Only using 10ms of game thread time per frame to process async shader maps
ProcessGameThreadTargetTime=.01
; For regular machines, wait this many seconds before exiting an unused worker (float value)
WorkerTimeToLive=20
; For build machines, wait this many seconds before exiting an unused worker (float value)
BuildWorkerTimeToLive=1200
; Set process priority for ShaderCompileWorker (0 is normal)
WorkerProcessPriority=0

But this has had no effect, despite restarting, deleting projects and starting over, etc. I was really expecting a big-business-backed engine to you know… start. On a bog standard installation.

Anyone have any other ideas? Or is this a brick wall?

1 Like

Related:

Might be worth checking if your disk usage is high because of another process, antivirus in particular. But the “compiling shaders” annoyance has been around since forever.

1 Like

Nope, almost zero disk usage. I suppose that is the main issue; CPU, disk, RAM, and GPU utilisation are all extremely low during this process. So a very computationally intensive task (shader compilation) is massively under-utilising hardware. Seems like a significant bug to me.