Skip to content

Commit 21bcdd5

Browse files
Merge pull request #22 from pythonlover02/experimental
Update Readme, Render Selector and change Frame Options to Render Pipeline
2 parents 6e7bcb1 + ed05592 commit 21bcdd5

File tree

7 files changed

+320
-129
lines changed

7 files changed

+320
-129
lines changed

README.md

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ A graphical user interface for configuring GPU related environment variables and
1212
![](/images/2.png)
1313
![](/images/3.png)
1414

15+
## Table of Contents
16+
17+
- [What you can do?](#what-you-can-do)
18+
- [Build/Test Requirements](#buildtest-requirements)
19+
- [Installation](#installation)
20+
- [Testing volt-gui](#testing-volt-gui)
21+
- [How to use volt-gui](#how-to-use-volt-gui)
22+
- [How to use the volt script](#how-to-use-the-volt-script)
23+
- [Render Selector explained](#render-selector-explained)
24+
- [Technical References](#technical-references)
25+
- [Contributing](#contributing)
26+
1527
## What you can do?:
1628

1729
- CPU Management
@@ -21,7 +33,7 @@ A graphical user interface for configuring GPU related environment variables and
2133
- Mesa Drivers: Configure Mesa Drivers specific environment variables
2234
- NVIDIA Drivers: Configure NVIDIA Proprietary Drivers specific environment variables
2335
- Render Selection: Choose the renderers for both OpenGL and Vulkan applications
24-
- Set frame limit for both OpenGL and Vulkan applications (requires [mangohud](https://github.com/flightlessmango/MangoHud))
36+
- Set a frame limit for both OpenGL and Vulkan applications, Texture Filters and MidMap LOD Bias for Vulkan only (requires [mangohud](https://github.com/flightlessmango/MangoHud))
2537
- All those GPU settings will be added to the `volt` script
2638
- Disk Configuration
2739
- Change Disks Schedulers
@@ -47,7 +59,7 @@ A graphical user interface for configuring GPU related environment variables and
4759
- Choose /proc/sys/kernel/nmi_watchdog value
4860
- Choose /proc/sys/vm/laptop_mode value
4961

50-
- Launch Options: add custom Launch Options to the `volt` that will be passed to the program executed, ej:
62+
- Launch Options: add custom Launch Options to the `volt` that will be passed to the program executed, example:
5163
```
5264
gamemoderun PROTON_USE_WINED3D=1
5365
```
@@ -58,24 +70,24 @@ A graphical user interface for configuring GPU related environment variables and
5870
- Options for the program itself
5971
- Create or Delete Profiles, all of them with its own settings, witch you can apply trough the program or systray.
6072

61-
## Build Requirements:
73+
## Build/Test Requirements:
6274

6375
- Python 3.9 or higher
6476
- Pip
6577
- The `python3-venv` package its required on Debian/Debian based distros.
6678
- Linux operating system
6779

68-
### Additional requirements in the case you build the program using Nuitka:
80+
## Additional requirements in the case you build the program using Nuitka:
6981

7082
- C/C++ Compiler
7183
- patchelf
7284
- ccache (optional, for optimizing compiling times)
7385

74-
### Additional requirements for some Options:
86+
## Additional requirements for some Options:
7587
If this software is not provided, its options will be locked.
7688

7789
- [scx](https://github.com/sched-ext/scx) in the case you want to make use of the CPU Pluggable Schedulers
78-
- [mangohud](https://github.com/flightlessmango/MangoHud) in the case you want to make use of the Frame Options Settings. Both the native or the Flatpak version satisfy the dependency.
90+
- [mangohud](https://github.com/flightlessmango/MangoHud) in the case you want to make use of the Render Pipeline Settings. Both the native or the Flatpak version satisfy the dependency.
7991

8092
## Installation:
8193

@@ -100,7 +112,7 @@ If this software is not provided, its options will be locked.
100112
```
101113
This will:
102114
- Copy the executable to `/usr/local/bin/`
103-
- Copy the helper scripts to `/usr/local/bin/`
115+
- Copy the `volt-helper` script to `/usr/local/bin/`
104116
- Create a desktop entry at `/usr/share/applications/volt-gui.desktop`
105117

106118
### Removal:
@@ -110,10 +122,26 @@ If this software is not provided, its options will be locked.
110122
```
111123
This will:
112124
- Remove the `volt-gui` executable from `/usr/local/bin/`
113-
- Remove the helper scripts from `/usr/local/bin/`
125+
- Remove the `volt-helper` script from `/usr/local/bin/`
114126
- Remove the `volt` bash script from `/usr/local/bin/`
115127
- Remove the desktop entry `/usr/share/applications/volt-gui.desktop`
116128

129+
## Testing volt-gui:
130+
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.
131+
132+
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:
133+
```
134+
./test.sh -c
135+
```
136+
137+
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:
138+
```
139+
./test.sh
140+
```
141+
142+
> [!NOTE]
143+
> 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.
144+
117145
## How to use `volt-gui`:
118146

119147
Simply launch volt-gui from your application menu or run `volt-gui` from the terminal.
@@ -150,11 +178,10 @@ When using the terminal or a custom desktop entry:
150178
volt flatpak run net.pcsx2.PCSX2
151179
```
152180

153-
## GPU Selector explained:
181+
## Render Selector explained:
154182

155-
- `GLX Vendor Library` Select a GLX provider between the NVIDIA Proprietary Drivers and Mesa Drivers.
156-
- `Mesa Select GPU` Select which to use GPU among those available on the system. (Only for GPUs using the Mesa Drivers)
157-
- `OpenGL Software Rendering` Use Mesa OpenGL Software Rendering; this will ignore the `Mesa Select GPU` option.
183+
- `OpenGL Provider` Select a OpenGL provider between the NVIDIA Proprietary Drivers and Mesa Drivers.
184+
- `Mesa Select GPU` In this case “select” means the GPU will be first in the reported physical devices list, It applies to OpenGL and Vulkan and only GPUs using the Mesa Drivers. Something to add its that the `OpenGL Provider` and `Vulkan ICD` settings have priority over this.
158185
- `Vulkan ICD` Selects the Vulkan Installable Client Driver, obtained from `/usr/share/vulkan/icd.d/`.
159186

160187
## Technical References:
@@ -167,10 +194,11 @@ Documentation used:
167194
- [sched-ext scx Github - Readme](https://github.com/sched-ext/scx/blob/main/README.md)
168195
- [MangoHud Github - Readme](https://github.com/flightlessmango/MangoHud/blob/master/README.md)
169196
- [Mesa Documentation - Environment Variables](https://docs.mesa3d.org/envvars.html#environment-variables)
197+
- [FreeDesktop - Dri Configuration Options](https://dri.freedesktop.org/wiki/ConfigurationOptions/)
170198
- [NVIDIA 570 Drivers - Documentation](https://download.nvidia.com/XFree86/Linux-x86_64/570.153.02/README/openglenvvariables.html)
171199
- [NVIDIA 470 Drivers - Documentation](https://download.nvidia.com/XFree86/Linux-x86_64/470.256.02/README/openglenvvariables.html)
172200
- [NVIDIA 390 Drivers - Documentation](https://download.nvidia.com/XFree86/Linux-x86_64/390.157/README/openglenvvariables.html)
173201

174202
## Contributing:
175203

176-
Contributions are welcome. Please ensure any changes maintain compatibility with the supported Python versions and follow the existing code structure.
204+
Contributions are welcome. Please ensure any changes maintain compatibility with the supported Python versions and follow the existing code structure. You might want to read: [Build/Test Requirements](#buildtest-requirements), [Installation](#installation) and [Testing volt-gui](#testing-volt-gui).

build-nuitka.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ NUITKA_OPTS=(
2828

2929
# Cleanup function
3030
cleanup() {
31-
rm -rf "$BASE_FILENAME.build/" "$BASE_FILENAME.dist/" "$BASE_FILENAME.onefile-build/" **__pycache__*/ 2>/dev/null || true
31+
rm -rf "$BASE_FILENAME.build/" "$BASE_FILENAME.dist/" "$BASE_FILENAME.onefile-build/" 2>/dev/null || true
3232
}
3333

3434
# Check for required commands

build-pyinstaller.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ PYINSTALLER_OPTS=(
2727

2828
# Cleanup function
2929
cleanup() {
30-
rm -rf dist/ build/ **__pycache__*/ "${SPEC_FILE}" 2>/dev/null || true
30+
rm -rf dist/ build/ "${SPEC_FILE}" 2>/dev/null || true
3131
}
3232

3333
# Check for required commands

src/config.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ def save_config(cpu_widgets, gpu_widgets, kernel_widgets, disk_widgets, profile_
6464
if hasattr(widget, 'currentText') and widget_key != 'render_selector_apply_button':
6565
config['RenderSelector'][widget_key] = widget.currentText()
6666

67-
config['FrameControl'] = {}
68-
for widget_key, widget in gpu_widgets['frame_control'].items():
69-
if hasattr(widget, 'currentText') and widget_key != 'frame_control_apply_button':
70-
config['FrameControl'][widget_key] = widget.currentText()
67+
config['RenderPipeline'] = {}
68+
for widget_key, widget in gpu_widgets['render_pipeline'].items():
69+
if hasattr(widget, 'currentText') and widget_key != 'render_pipeline_apply_button':
70+
config['RenderPipeline'][widget_key] = widget.currentText()
7171

7272
if 'launch_options_input' in gpu_widgets['launch_options']:
7373
launch_options = gpu_widgets['launch_options']['launch_options_input'].text().replace('%', '%%')
@@ -124,10 +124,10 @@ def load_config(cpu_widgets, gpu_widgets, kernel_widgets, disk_widgets, profile_
124124
if widget_key in gpu_widgets['render_selector'] and hasattr(gpu_widgets['render_selector'][widget_key], 'setCurrentText'):
125125
gpu_widgets['render_selector'][widget_key].setCurrentText(value)
126126

127-
if 'FrameControl' in config and 'frame_control' in gpu_widgets:
128-
for widget_key, value in config['FrameControl'].items():
129-
if widget_key in gpu_widgets['frame_control'] and hasattr(gpu_widgets['frame_control'][widget_key], 'setCurrentText'):
130-
gpu_widgets['frame_control'][widget_key].setCurrentText(value)
127+
if 'RenderPipeline' in config and 'render_pipeline' in gpu_widgets:
128+
for widget_key, value in config['RenderPipeline'].items():
129+
if widget_key in gpu_widgets['render_pipeline'] and hasattr(gpu_widgets['render_pipeline'][widget_key], 'setCurrentText'):
130+
gpu_widgets['render_pipeline'][widget_key].setCurrentText(value)
131131

132132
if 'LaunchOptions' in config and 'launch_options' in gpu_widgets and 'launch_options_input' in gpu_widgets['launch_options']:
133133
launch_options = config['LaunchOptions'].get('launch_options', '').replace('%%', '%')

0 commit comments

Comments
 (0)