@@ -265,7 +265,9 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {
265265 res .addDefault ("-Dfml.ignorePatchDiscrepancies=" , "true" );
266266 }
267267
268- if (OperatingSystem .CURRENT_OS == OperatingSystem .WINDOWS && options .getRenderer () != null ) {
268+ if (OperatingSystem .CURRENT_OS == OperatingSystem .WINDOWS
269+ && options .getRenderer () != null
270+ && options .getRenderer ().getMesaLoaderName () != null ) {
269271 res .addDefault ("-Dorg.glavo.mesa.loader.nativeDir=" , FileUtils .getAbsolutePath (nativeFolder .resolve ("mesa-loader" )));
270272 }
271273
@@ -399,6 +401,12 @@ private Command generateCommandLine(Path nativeFolder) throws IOException {
399401 }
400402 }
401403
404+ if (options .getRenderer ().getApi () != null
405+ && gameVersion .isPresent () && gameVersion .get ().compareTo ("26.2-snapshot-2" ) >= 0 ) {
406+ res .add ("--graphicsBackend" );
407+ res .add (options .getRenderer ().getApi ().getMinecraftArg ());
408+ }
409+
402410 res .addAllWithoutParsing (Arguments .parseStringArguments (options .getGameArguments (), configuration ));
403411
404412 res .removeIf (it -> getForbiddens ().containsKey (it ) && getForbiddens ().get (it ).get ());
@@ -629,14 +637,16 @@ private Map<String, String> getEnvVars(Path nativeFolder) {
629637 Renderer renderer = options .getRenderer ();
630638 if (renderer != Renderer .DEFAULT ) {
631639 if (OperatingSystem .CURRENT_OS == OperatingSystem .WINDOWS ) {
632- if (renderer != Renderer .LLVMPIPE )
633- env .put ("GALLIUM_DRIVER" , renderer .name ().toLowerCase (Locale .ROOT ));
640+ if (renderer .getMesaLoaderName () != null ) {
641+ if (renderer != Renderer .LLVMPIPE )
642+ env .put ("GALLIUM_DRIVER" , renderer .name ().toLowerCase (Locale .ROOT ));
634643
635- if (renderer .getApi () == Renderer .API .VULKAN ) {
636- String icdFile = FileUtils .getAbsolutePath (nativeFolder .resolve ("mesa-loader/" + renderer .getIcdFileName ()));
644+ if (renderer .getApi () == Renderer .API .VULKAN ) {
645+ String icdFile = FileUtils .getAbsolutePath (nativeFolder .resolve ("mesa-loader/" + renderer .getIcdFileName ()));
637646
638- env .put ("VK_ICD_FILENAMES" , icdFile );
639- env .put ("VK_DRIVER_FILES" , icdFile );
647+ env .put ("VK_ICD_FILENAMES" , icdFile );
648+ env .put ("VK_DRIVER_FILES" , icdFile );
649+ }
640650 }
641651 } else if (OperatingSystem .CURRENT_OS == OperatingSystem .LINUX ) {
642652 switch (renderer ) {
0 commit comments