My AMD Adrenaline / NVIDIA Settings Linux Alternative
A graphical interface for configuring GPU, CPU, Disk, and Kernel performance settings for Linux gaming. Initially made for personal use, now open-sourced so others can benefit from it too.
- What you can do?
- Build/Test Requirements
- Installation
- Testing volt-gui
- How to use volt-gui
- How to use the volt script
- Render Selector explained
- Technical References
- Contributing
- Governor Selection: Choose from available CPU governors.
- Adjust the maximum and minimum CPU frequencies within the permitted range.
- Scheduler Configuration: Select, start and stop CPU pluggable schedulers (requires scx and
Linux Kernel >= 6.12or aCustom Patched Kernel).
- Mesa Drivers: Configure Mesa Drivers specific environment variables.
- NVIDIA Drivers: Configure NVIDIA Proprietary Drivers specific environment variables.
- Dynamic Render Selection: Select renderers for both OpenGL and Vulkan applications. The program dynamically sets the required environment variables depending on your GPU.
- Configure various MangoHud options.
- Configure lsfg-vk settings
- All GPU settings are automatically added to the
voltscript.
- Change Disks Schedulers
- CPU
- Memory
- Disk
- System
- Network
- Security
These will be passed to the executed program. Example:
gamemoderun PROTON_USE_WINED3D=1
- Useful Links and Programs for the average Linux Gamer.
- Configure settings specific to the volt-gui program itself.
- Each profile has its own set of configurations, which can be applied through the program or system tray.
- Python 3.9 or higher
- Pip
- The
python3-venvpackage its required on Debian/Debian based distros. - Linux operating system
- C/C++ Compiler
- patchelf
- ccache (optional, for optimizing compiling times)
If this software is not provided, its options will be locked.
- scx in the case you want to make use of the CPU Pluggable Schedulers
- mangohud in the case you want to make use of the MangoHud Settings. Both the native or the Flatpak version satisfy the dependency.
- lsfg-vk in the case you want to make use of the LS Frame Gen Settings. Both the native or the Flatpak version satisfy the dependency, as long as its not the
nouiversion. glxinfoits required to use the OpenGL Render Selector.vulkaninfoand thevulkan mesa layerare required to use the Vulkan Render Selector.
-
Run one of the builds scripts avaliable to create the application:
Using Pyinstaller:
./make-pyinstaller.sh
Using Nuitka:
./make-nuitka.sh
Note: Both use a Python virtual environment to avoid system wide package installation using pip
-
Install the application system wide:
sudo ./install.sh
This will:
- Copy the executable to
/usr/local/bin/ - Copy the
volt-helperscript to/usr/local/bin/ - Create a desktop entry at
/usr/share/applications/volt-gui.desktop
- Copy the executable to
- To uninstall volt-gui:
This will:
sudo ./remove.sh
- Remove the
volt-guiexecutable from/usr/local/bin/ - Remove the
volt-helperscript from/usr/local/bin/ - Remove the
voltbash script from/usr/local/bin/ - Remove the desktop entry
/usr/share/applications/volt-gui.desktop
- Remove the
In the case you want to contribute to the project you can use the provided test.sh script to test the changes you made. This script will create a Python virtual environment if one does not already exist. This way, you don't have to install the program dependencies systemwide.
The first time you run it, use the -c flag that will also copy the volt-helper to /usr/local/bin/, as the program requires it for appliying the settings:
./test.sh -c
After this unless you make changes to the volt-helper, or the script have been updated, just run it without the flag to avoid unnecessary overwrites of the script:
./test.sh
Note
You can use the remove.sh script to remove the volt-helper. The py_env folder should be deleted in the case you created it with your system python, and you want to use a python version that its inside a distrobox box, or vice versa.
Simply launch volt-gui from your application menu or run volt-gui from the terminal.
The GPU and Launch Options settings are saved on the volt script. Here are some examples of its usage:
When using the terminal or a custom desktop entry:
volt glxgears
When using a Launcher to play your game, you can just add it to the game launch options, like this:
Steam (Native):
volt %command%
Lutris (Native):
volt
When using the terminal or a custom desktop entry:
volt flatpak run net.pcsx2.PCSX2
Select OpenGL RendererSelects the GPU/Renderer that will be used to render OpenGL programs. Those GPUs/Renderers are obtained troughglxinfo.Select Vulkan RendererSelects the GPU/Renderer that will be used to render Vulkan programs. Those GPUs/Renderers are obtained troughvulkaninfo, also for this to work on some distros you might need to install some additional dependencies likevulkan-mesa-layerson Arch Linux. More info its provided on the Welcome Window that opens once you open volt-gui.
Based on documentation and references from:
- Arch Linux Wiki - Improving performance
- Arch Linux Wiki - Gaming
- sched-ext tutorial - CachyOs Wiki
- sched-ext scx Github - Readme
- MangoHud Github - Readme
- lsfg-vk Github - Readme
- lsfg-vk Github - Wiki
- Mesa Documentation - Environment Variables
- FreeDesktop - Dri Configuration Options
- NVIDIA 580 Drivers - Documentation
- NVIDIA 570 Drivers - Documentation
- NVIDIA 470 Drivers - Documentation
- NVIDIA 390 Drivers - Documentation
- Linux Kernel - Subsystem Documentation
- Additionally, sometimes i had to read code from Open Source projects to check how some options work.
Contributions are welcome. Please ensure compatibility with supported Python versions and follow the existing code structure. Read: Build/Test Requirements, Installation, and Testing volt-gui before contributing.


