Shader/Cooking/Packaging Fix

I’ve been using Unreal Engine on and off for years, and I just recently started playing around with it again. I’m using version 4.21.2 and I have to say I have been quite pleased for the most part. I did run into some problems, though, specifically whenever the engine needs to do some serious number crunching. Whenever I have needed the engine to compile shaders, or cook or package a project, I have been running into severe performance issues. On numerous occasions I’ve had to hard reset a frozen computer.

I started with the assumption that my machine is not the problem. My computer is hardly top of the line, but my computers never have been and UE has never done this to me before. So I spent some time searching around, and I found I was not the only person encountering these difficulties. I found a lot of posts in various forums (spanning years) complaining of this, yet the only working solution ever presented seemed to be “Buy a better computer”, which would be good advice if I used UE professionally. But I’m just an enthusiast so I kept looking for another solution.

Eventually I found it. Unfortunately, I can’t seem to relocate the address of the post where I encountered this solution, so I am regrettably unable to give credit where credit is due.

Anyway, the quick fix (and it is ONLY a quick fix) is to use Task Manager to change the priority of UE. This should be done immediately after opening UE, before you ask the engine to do anything fancy. The unexpected trick to this quick fix, surprisingly, is to change the priority of UE to ‘LOW’.

I know. It doesn’t seem to make any sense. But it works. The other day I decided to package a project I’ve been working on. I expected it to take some time, so I told UE to start the process before I left for work in the morning. 8+ hours later I returned home and found that the packaging had still not completed. In fact, my computer was frozen.

Earlier today, I changed the priority of UE to ‘Low’ and tried again. It only took 10 minutes to package the project.

I’m not a developer (I only dabble), but my best guess is that UE runs some functions (especially the more resource-intensive ones) as separate processes, probably to increase overall stability. Since UE defaults to a priority of ‘Normal’, I can only assume that my system automatically consigns child processes to a lower priority setting. But if UE is set to the lowest setting, my system seems to set child processes to a higher priority (I assume ‘Normal’).

In any case, this quick fix/workaround is working wonders for me. If you’ve been experiencing problems with very slow compiling/cooking/packaging times, give it a try. The only caveat is that the fix doesn’t persist - you have to change the priority every time you open UE.