This also moves all conditions to enable UbaController plugin into IsUbaControllerEnabled(), which are now "-NoUbaController", "-Uba", and the tri-state INI config "[UbaController]:Enabled".
This allows a fine-grained control over what machines support UBA due to Horde bandwidth.
#jira UE-210043
#rnx
#rb henrik.karlsson
[CL 33660304 by laura hermanns in ue5-main branch]
Use several ensure conditions instead of a single one to get filename and file size.
The failed job artifacts don't provide enough information to track down the root cause.
#jira UE-214053
#rnx
#rb dan.elksnitis
[CL 33605110 by laura hermanns in ue5-main branch]
- Changed "[UbaController]:Enabled" INI configuration from boolean to string, now accepting "True", "False", and "BuildMachineOnly".
- Backward compatible to commandline argument "-ini:Engine:[UbaController]:Enabled=true".
- Enable CVar "r.UbaController.DumpTraceFiles" by default so no additional configuration for "BuildMachineOnly" is required (UBA trace files don't take up a lot of memory).
#rnx
#rb Ryan.Hummer
[CL 33408141 by laura hermanns in ue5-main branch]
Also added support to specify a uba port and force remote via the existing UBA Controller section in Engine.ini
[REVIEW]
#rb Laura.Hermanns
[CL 33208834 by sergio gardeazabal in ue5-main branch]
This unifies the Horde agent connection in the UbaController and avoids a custom configuration for the Horde server.
#rnx
#rb Ben.Marsh, henrik.karlsson
[FYI] Ryan.Hummer
[CL 33149289 by laura hermanns in ue5-main branch]
- Set "EnabledByDefault" to true in UbaController plugin to make it engine-wide available and make per-project setting obsolete.
- Move UbaController sources from UbaController/Source/UbaController/ into UbaController/Source/ to match folder pattern of XGEController plugin.
- Remove explicit plugin setting from previous project files as it is now obsolete.
#jira UE-210306
#rnx
#rb Jason.Nadro
[FYI] Henrik.Karlsson, Ryan.Hummer, Bob.Tellez, Dan.Elksnitis
[CL 32441742 by laura hermanns in ue5-main branch]
* Refactored out uba horde integration to its own module called UbaCoordinatorHorde. This required some changes like callback registration to register helpers to uba host
* Added UbaCoordinatorHorde target in uba to be able to compile a coordinator for horde that can be used in UbaCli or other custom written uba tools
#rb laura.hermanns
[CL 32347975 by henrik karlsson in ue5-main branch]
This changes CVar "r.UbaController.ShowUbaLog" (boolean) to "r.UbaController.LogVerbosity" (int32) with three levels of verbosity:
- 0 (Default): Always forward errors and warnings as before.
- 1: Also forward UBA session information.
- 2: Forward all UBA logs.
UBA logs may show up as follows, forwarding the log from the shader backends:
LogUbaController: Display: LogD3D11ShaderCompiler: Warning: RemoveUnusedInputs: Failed to compile!
LogUbaController: Display: LogD3D11ShaderCompiler: Warning: __UE_FILENAME_SENTINEL__(4171): (3) Unable to match rule!
#rnx
#rb henrik.karlsson
[CL 31913446 by laura hermanns in ue5-main branch]
- This renames the trace fiels from "UbaController.run-1.pid-0.uba" to "UbaController.CookWorker-0.Session-0.uba", sorting all session trace files grouped by their cooker instance in a file manager.
- Local cooks will often only have a single trace file, but the build farm launches multiple cooker processes and dependeing on workload, they will launch multiple UBA sessions per cooker.
- Start session ID in filename at zero to be consistent with cooker ID.
#rnx
#rb henrik.karlsson
[CL 31627549 by laura hermanns in ue5-main branch]
- Dump all UBA trace files into ShaderDebugInfo/UbaTrace folder.
- Rename CVar r.UbaController.TraceFilename (FString) to r.UbaController.DumpTraceFiles (bool) to simplify generation of trace files.
- Unify output filenames for trace files to always have file extension *.uba.
#rnx
#rb massimo.tristano
[FYI] Jason.Nadro, Dan.Elksnitis, Henrik.Karlsson
[CL 31436856 by laura hermanns in ue5-main branch]
* Changed how local number of local processes is calculated based on how many remotes. Previous equation was way to aggressive towards turning off local processes
[CL 31372226 by henrik karlsson in ue5-main branch]
This adds more information about the distributed shader compiler to the compile stats. As an example from the UBA default settings when launching Lyra:
"LogShaderCompilers: Display: Highest number of remote agents active in parallel: 15 (480 active cores peak)"
#jira UE-206317
#rb Jason.Nadro
#rnx
[CL 31308083 by laura hermanns in ue5-main branch]
* Changed Scheduler_GetStats to separate active into activeLocal and activeRemote
* Added Storage_DeleteFile that can be used to delete cas entries if we know a file will never be used again (no point taking up space)
* Fixed so ubaagents spawned through horde has a idle timeout of 15 seconds (also made them quiet)
* Changed so UbaJobProcessor shutdown uba after 100 seconds instead of 10 seconds of idling without tasks
* Added so .uba.in and .uba.out is deleted from cas storage after used.. no point storing them there since they will never be used again
* Fixed so number of local SCW instances are decreased when more remote helpers are running
* Fixed race condition where tasks could be added when uba was shutting down causing tasks to be cancelled
[CL 30607957 by henrik karlsson in ue5-main branch]