From 0eac7b5d121ab74c85ca176e8c3e5e11f85d1bfb Mon Sep 17 00:00:00 2001 From: Glavo Date: Fri, 24 Feb 2023 01:56:01 +0800 Subject: [PATCH] Use MESA_LOADER_DRIVER_OVERRIDE on Linux (#2146) --- .../hmcl/launch/DefaultLauncher.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java index fa3a911e5..1d0d34997 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java @@ -470,15 +470,21 @@ public class DefaultLauncher extends Launcher { env.put("INST_JAVA", options.getJava().getBinary().toString()); Renderer renderer = options.getRenderer(); - if (renderer != Renderer.DEFAULT && OperatingSystem.CURRENT_OS != OperatingSystem.OSX) { - if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) { + if (renderer != Renderer.DEFAULT) { + if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) { + if (renderer != Renderer.LLVMPIPE) + env.put("GALLIUM_DRIVER", renderer.name().toLowerCase(Locale.ROOT)); + } else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) { env.put("__GLX_VENDOR_LIBRARY_NAME", "mesa"); - if (renderer == Renderer.LLVMPIPE) - env.put("LIBGL_ALWAYS_SOFTWARE", "1"); + switch (renderer) { + case LLVMPIPE: + env.put("LIBGL_ALWAYS_SOFTWARE", "1"); + break; + case ZINK: + env.put("MESA_LOADER_DRIVER_OVERRIDE", "zink"); + break; + } } - - if (renderer != Renderer.LLVMPIPE) - env.put("GALLIUM_DRIVER", renderer.name().toLowerCase(Locale.ROOT)); } LibraryAnalyzer analyzer = LibraryAnalyzer.analyze(version);