Files
UnrealEngineUWP/Engine/Source/Programs/ShaderCompileWorker/ShaderCompileWorker.Build.cs
Arciel Rekman 337e706273 Optimize shader compilation through XGE (bringing CL 11084076)
- Avoid directory scanning for .ini files by restoring already initialized config cache state on the workers
  - Avoid directory scanning for modules by restoring already initialized modulemanager state on the workers
  - Avoid directory scanning for external profilers DLLs by disabling the option in the build config
  - 20s -> 319ms of FEngineLoop::PreInit which was caused by directory scan through XGE remote filesystem
  - 5% -> 96% efficiency when computing the effective work against process total time for remotely built shaders
  - 5m36 ->1m26s to run "recompileshaders all" console command including waiting on async built shaders

#rb Danny.Couture (authored), Luke.Thatcher, Steve.Robb, Josh.Adams
[FYI] Bob.Tellez, Danny.Couture


#ROBOMERGE-OWNER: Arciel.Rekman
#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 11106212 via CL 11106216
#ROBOMERGE-BOT: (v640-11091645)

[CL 11106241 by Arciel Rekman in Main branch]
2020-01-24 12:16:02 -05:00

53 lines
1.2 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.IO;
public class ShaderCompileWorker : ModuleRules
{
public ShaderCompileWorker(ReadOnlyTargetRules Target) : base(Target)
{
PrivateDependencyModuleNames.AddRange(
new string[] {
"Core",
"Projects",
"RenderCore",
"SandboxFile",
"TargetPlatform",
"ApplicationCore",
"TraceLog"
});
if (Target.Platform == UnrealTargetPlatform.Linux)
{
PrivateDependencyModuleNames.AddRange(
new string[] {
"NetworkFile",
"PakFile",
"StreamingFile",
});
}
PrivateIncludePathModuleNames.AddRange(
new string[] {
"Launch",
"TargetPlatform",
});
PrivateIncludePaths.Add("Runtime/Launch/Private"); // For LaunchEngineLoop.cpp include
// Include D3D compiler binaries
string EngineDir = Path.GetFullPath(Target.RelativeEnginePath);
if (Target.Platform == UnrealTargetPlatform.Win32)
{
RuntimeDependencies.Add(EngineDir + "Binaries/ThirdParty/Windows/DirectX/x86/d3dcompiler_47.dll");
}
else if (Target.Platform == UnrealTargetPlatform.Win64)
{
RuntimeDependencies.Add(EngineDir + "Binaries/ThirdParty/Windows/DirectX/x64/d3dcompiler_47.dll");
}
}
}