| 474 | } |
| 475 | |
| 476 | QProcessEnvironment MinecraftInstance::createLaunchEnvironment() |
| 477 | { |
| 478 | // prepare the process environment |
| 479 | QProcessEnvironment env = createEnvironment(); |
| 480 | |
| 481 | #ifdef Q_OS_LINUX |
| 482 | if (settings()->get("EnableMangoHud").toBool() && APPLICATION->capabilities() & Application::SupportsMangoHud) |
| 483 | { |
| 484 | auto preload = env.value("LD_PRELOAD", "") + ":libMangoHud_dlsym.so:libMangoHud.so"; |
| 485 | |
| 486 | env.insert("LD_PRELOAD", preload); |
| 487 | env.insert("MANGOHUD", "1"); |
| 488 | } |
| 489 | |
| 490 | if (settings()->get("UseDiscreteGpu").toBool()) |
| 491 | { |
| 492 | // Open Source Drivers |
| 493 | env.insert("DRI_PRIME", "1"); |
| 494 | // Proprietary Nvidia Drivers |
| 495 | env.insert("__NV_PRIME_RENDER_OFFLOAD", "1"); |
| 496 | env.insert("__VK_LAYER_NV_optimus", "NVIDIA_only"); |
| 497 | env.insert("__GLX_VENDOR_LIBRARY_NAME", "nvidia"); |
| 498 | } |
| 499 | #endif |
| 500 | |
| 501 | return env; |
| 502 | } |
| 503 | |
| 504 | static QString replaceTokensIn(QString text, QMap<QString, QString> with) |
| 505 | { |
no test coverage detected