// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. using System.IO; using Flax.Build; using Flax.Build.NativeCpp; /// /// DirectX 12 graphics backend module. /// public class GraphicsDeviceDX12 : GraphicsDeviceBaseModule { /// /// Enables using PIX events to instrument game labeling regions of CPU or GPU work and marking important occurrences. /// public bool UseWinPixEventRuntime = false; /// public override void Setup(BuildOptions options) { base.Setup(options); options.PublicDefinitions.Add("GRAPHICS_API_DIRECTX12"); switch (options.Platform.Target) { case TargetPlatform.Windows: options.OutputFiles.Add("d3d12.lib"); options.DelayLoadLibraries.Add("d3d12.dll"); break; case TargetPlatform.XboxOne: options.OutputFiles.Add("d3d12_x.lib"); break; case TargetPlatform.XboxScarlett: options.OutputFiles.Add("d3d12_xs.lib"); break; } if (UseWinPixEventRuntime) { options.PrivateDefinitions.Add("USE_PIX"); options.PrivateIncludePaths.Add(Path.Combine(Globals.EngineRoot, "Source/ThirdParty/WinPixEventRuntime")); options.OutputFiles.Add(Path.Combine(options.DepsFolder, "WinPixEventRuntime.lib")); options.DependencyFiles.Add(Path.Combine(options.DepsFolder, "WinPixEventRuntime.dll")); options.DelayLoadLibraries.Add("WinPixEventRuntime.dll"); } } }