Only a single ShaderCompileWorker Process

Evening everyone!

At work I have got a new workstation, I Installed Unreal on it and when I opened my project I noticed it was actually slower in compiling my shaders that my old workstation. At the time I accepted it but today I upgraded the project to Unreal 4.23 and I noticed it again and started digging around. I found that my old workstation spawn multiple ShaderCompileWorker processes as visible in the task manager and my new workstation does not. My old one uses nearly 100% of the cpu where as the new system only uses 8 to 14 % of the cpu. (where the rest sits pretty much idle)

Do you guy’s have any idea how to fix this. Cause compiling 20.000+ shaders on a single process is really slow.

Cheers!

ML

Hi. I know this was a while ago, but did you ever find a solution to this?

I’m having exactly the same issue, and I’m struggling with finding anyone else whos finding the same behaviour, or how to address it.

1 Like

Managed to find a work around just after posting the comment above.

I don’t know if this has any knock-on effects, but it seems to be related to the “XGE Controller” plugin.

As far as I’ve gathered it’s an Incredibuild powered compilation distribution plugin … but which seems to actually just prevent full utilisation of multiple cores on your CPU.

So, if you’re finding that shader compilation is very slow, AND, you only see one ShaderCompileWorker.exe process being launched when shaders are compiling, this could be your issue as well. Actually, you might see 3 ShaderCompileWorkers in the “processes” tab in Task Manager … but if you switch to the details tab, you might see that there’s only one “shadercompileworker.exe”, and two “XGEControlWorker.exe” processes. For most people there will be no “XGEControlWorker.exe” processes, and many “shadercompileworker.exe” processes instead. Why this functions differently for some people, I have no idea.

Anyway, the solution I found that helped significantly with compilation times is to disable the “XGE Controller” plugin entirely. (In the editor: Edit > Plugins. Search for “XGE Controller”, and untick “enabled”).

Edit: I found something called Incredibuild Coordinator installed on this machine. It detected the shader compile task pending for distribution, but had no valid license installed, so wasn’t actually distributing to multiple cores. I imagine this was the reason most people don’t come across this problem. Without this installed (or something similar?), the engine defaulted to not using XGE Incredibuild powered compilation.

4 Likes

I know of other people that have this plugin on, and they still can access multicore multithreaded shadercompiling. What is happening here, it’s really odd.
I also had to turn this plugin off to solve it - I wonder if even though it uses multicore without the plugin, the performance will not be the same as with multicore with the XGE Controller Plugin Enabled and resorting to multicore.

I didn’t get to install this Incredibuild software. I believe it gets autoinstalled when you install UE4 on your machine. The thing is that once I turned off XGE it started using all the threads to do shadercompiling.

It would be cool to know and compare a particular processor with XGE multithreaded working and without it, to know if there is a major performance gap.

If you uninstall Incredibuild it will naturally stop working, much the same as turning off the plugin.
We’ll see if we have anyone answering, preferably with the XGE multithreaded working vs no XGE/Incredibuild Combo.

I was wondering this too, and in my edit I mentioned that it wasn’t just the plugin on it’s own for me, but a combination of the plugin AND the Incredibuild Coordinator program that I had installed.

If you don’t have this program installed, it might be that it’s interacting with something else in a similar way. But in my findings, it wasn’t the plugin on it’s own, and disabling either the plugin OR uninstalling Incredibuild Coordinator fixed the issue for me.

Thank god I found this. Thanks for posting.

Same issue and disabling the plugin saved me at the end of a very frustrating day.

I was changing my engine.ini but it was not making any difference at all.

Im glad this helped someone else. It drove me crazy for a long time, so Im happy it can save someone the endless troubleshooting I went through.

Oh my god… this bothered me for so long. Thanks mate. I AM THE SPEED.

You are my hero!

I had the same problem, in my case it was caused by ticking “Incredibuild” while installing Visual Studio 22.

Now that I un-installed that thing, everything is back to normal again. Thank you!

Glad this has helped another person! It really is a world of frustration, and seems to only happen to people through an unlikely combination of events. I wonder how many people out there have this issue but might not have the experience to realise something is even wrong.

If I wasn’t so lazy I’d raise this as an issue with Epic … but I am. So hopefully people will manage to find their way here for an easy fix.

1 Like

In the BaseEngine.ini file at C:\Program Files\Epic Games\UE_4.27\Engine\Config\BaseEngine.ini, put “;” behind these options as in the photo, and the problem is solved.

Thanks, yes it was incredibuild and i disabled the XGE enabling the multi core thread shader compile workers.

Jisus thank you. What is the point of having i9 13900k proccesor with 32 treads if im using 1 …once the plug in was disable something that went on for a full day without moving forward now compleatly finished in 10 minutes. Life saver !