diff options
Diffstat (limited to 'src/Ryujinx.Common/GraphicsDriver/DriverUtilities.cs')
-rw-r--r-- | src/Ryujinx.Common/GraphicsDriver/DriverUtilities.cs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/Ryujinx.Common/GraphicsDriver/DriverUtilities.cs b/src/Ryujinx.Common/GraphicsDriver/DriverUtilities.cs index 7fe2a4f02..a9163f348 100644 --- a/src/Ryujinx.Common/GraphicsDriver/DriverUtilities.cs +++ b/src/Ryujinx.Common/GraphicsDriver/DriverUtilities.cs | |||
@@ -1,13 +1,33 @@ | |||
1 | using Ryujinx.Common.Utilities; | ||
1 | using System; | 2 | using System; |
2 | 3 | ||
3 | namespace Ryujinx.Common.GraphicsDriver | 4 | namespace Ryujinx.Common.GraphicsDriver |
4 | { | 5 | { |
5 | public static class DriverUtilities | 6 | public static class DriverUtilities |
6 | { | 7 | { |
8 | private static void AddMesaFlags(string envVar, string newFlags) | ||
9 | { | ||
10 | string existingFlags = Environment.GetEnvironmentVariable(envVar); | ||
11 | |||
12 | string flags = existingFlags == null ? newFlags : $"{existingFlags},{newFlags}"; | ||
13 | |||
14 | OsUtils.SetEnvironmentVariableNoCaching(envVar, flags); | ||
15 | } | ||
16 | |||
17 | public static void InitDriverConfig(bool oglThreading) | ||
18 | { | ||
19 | if (OperatingSystem.IsLinux()) | ||
20 | { | ||
21 | AddMesaFlags("RADV_DEBUG", "nodcc"); | ||
22 | } | ||
23 | |||
24 | ToggleOGLThreading(oglThreading); | ||
25 | } | ||
26 | |||
7 | public static void ToggleOGLThreading(bool enabled) | 27 | public static void ToggleOGLThreading(bool enabled) |
8 | { | 28 | { |
9 | Environment.SetEnvironmentVariable("mesa_glthread", enabled.ToString().ToLower()); | 29 | OsUtils.SetEnvironmentVariableNoCaching("mesa_glthread", enabled.ToString().ToLower()); |
10 | Environment.SetEnvironmentVariable("__GL_THREADED_OPTIMIZATIONS", enabled ? "1" : "0"); | 30 | OsUtils.SetEnvironmentVariableNoCaching("__GL_THREADED_OPTIMIZATIONS", enabled ? "1" : "0"); |
11 | 31 | ||
12 | try | 32 | try |
13 | { | 33 | { |