Shared DDC in Lab Settings - Shader Compilation Issues

I’ve run into an issue with Unreal 5.1.1 in a lab environment and I was wondering if anyone can offer some suggestions on how I can can configure unreal to be more responsive (it takes forever to compile shaders). Even slower on 5.1.X than in earlier versions.

In the lab we have multiple users logging into any particular the system. Users are not tied to a particular system as the lab is first-come first-served. The hard drives on the lab machines are partitioned to a system drive (C:) and a large projects drive (D:). The C:\ drive is frozen. So, any work that is done on a C:\ drive is automatically cleared when a machine is rebooted. Effectively the C:\ drive content is in a static state (AppData files are flushed on reboots etc.). The D:\ drive on these systems is not frozen and users of the lab can save their projects (or other items) on it. As the AppData drives are being flushed on a reboot there appears to be no way to create a shared DDC cache.

What I am finding is every user has to sit a wait while Unreal Engine compiles shaders every time they open/create a project and/or launch unreal engine. Needless to say this is a very slow process despite the lab hardware being quite good.

What I would like to do is configure Unreal Engine so that all users of a particular machine have access to a common DDC (on D:\ ideally). We tend to only use a few projects for demonstration purpose (3rd Person, ). Not having the re-compile every time a user opens it would be a massive time saver. Ideally, both launching the engine and opening the demo project would not results in re-compiling shaders.

Any suggestion on how we could setup the Engine so that this compiling shaders step can be done only once on a machine? I’ve tried all sorts of changes to the BaseEngine.ini etc. and it seems that the the the compilation process happens no matter what I do. Any help on how I can streamline this would be greatly appreciated.

You can add this line to the end of the DefaultEngine.ini file for the project that multiple users will be working on (just replace "Path=W:" with the location you want). :

[InstalledDerivedDataBackendGraph]
Shared=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, DeleteUnused=true, UnusedFileAge=10, FoldersToClean=10, MaxFileChecksPerSec=1, ConsiderSlowAt=70, PromptIfMissing=true, Path=W:, EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache)

1 Like