UE4 Slow Shader Compile

As per title, I’m experiencing slow shader compile times (approximately 10 or 11 shaders per second).

My workstation rig is a Ryzen 3900x 12 core processor with 32GB 3600 RAM.

I’ve already googled this problem and found various suggestions that haven’t worked. From what I can tell, compiling shaders is set to a low priority for the CPU and so it doesn’t utilize the full power of the CPU (mine when compiling shaders and multi-tasking while waiting never goes above 20%).

Has anyone else solved this problem and resolved it?

1 Like

I have found one way to fix this problem : https://rhycesmith.com/2019/05/27/improving-ue4-shader-compile-times/

Hi, I had the same issue and found out it was IncrediBuild which comes with Visual Studio that was slowing down my Ryzen 3900x System.

[TABLE=“width: 929”]

		I'm not sure why would slow it down, but I use [Incredibuild](https://www.incredibuild.com/?utm_source=UnrealEngineForum&utm_medium=referral&utm_campaign=1712489)for free (without a valid license) and it actually speeds up compiling. Because it's free you can't use some features, but it speeds up anyway.
		I've tested it out with and without, and the results are that it does some job.
		Try reinstalling or ask for their support, as I'm quite sure it's some problem.

For anyone else who has this issue. I found I needed two fixes.

1 - Using this BuildConfiguration.xml (details on where to set/add it can be found here: Build Configuration | Unreal Engine Documentation)

2 - Uninstalling Incredibuild. To uninstall incredidbuild; do it through the Visual Studio Installer.

This fixed two issues for me:

  • The slow Shader compile times. Sometimes creating a new project would get “stuck” at 39%. You could see with Task manager during this period only 1 instance (at a time) of the ShaderCompileWorker running. Removing Incredibuild (afterwards) showed multiple instances and 100% CPU usage on all cores.
  • Compiling the Engine from source. This went from 3 hours with barely any CPU usage, to ~30 minutes (with 100% usage on all cores).

BuildConfiguration.xml:

<?xml version="1.0" encoding="utf-8" ?> 1 true false 2 12 2 12

Obvisouly be sure to set the correct core count for your CPU (also using 3900x)

Go to task manager
Select shadercompileworker and right click
Then go to detail
Again right click on all the shadercompileworker
Hower on set priority and select high

I have a i3 9th cpu and it works for me
Hope it works for you :slight_smile:

1 Like