emplacing a value into an unordered map does not override, so if the swapchain handles were identical (which they are commonly), then it would try to continue with the swapchain images from the old swapchain. ironically, the swapchain images are also mostly identical. in fact, when using validation layers they are intentionally-unintentionally identical.. so I never caught this bug. either way, this fixes a bunch of weird behavior: - swapchain creation failing - the application hanging on a present - the infamous "assertion failed!" wine warning - segmentation faults in the NVIDIA driver |
||
|---|---|---|
| .github | ||
| dist | ||
| docs | ||
| lsfg-vk-backend | ||
| lsfg-vk-cli | ||
| lsfg-vk-common | ||
| lsfg-vk-layer | ||
| lsfg-vk-ui | ||
| .gitattributes | ||
| .gitignore | ||
| CMakeLists.txt | ||
| LICENSE.md | ||
| README.md | ||
lsfg-vk
Lossless Scaling is a Windows-exclusive program featuring various algorithms for scaling and interpolating programs.
lsfg-vk is a Vulkan layer that hooks into Vulkan applications and generates additional frames using Lossless Scaling's frame generation algorithm.
Caution
You are reading the README for the upcoming version 2.0 of lsfg-vk. For the stable version 1.x, please read here
Installation
Tip
If you are on a Steam Deck or similar handheld, consider using the Decky plugin for lsfg-vk. This is an easy way to install and configure lsfg-vk on the Steam Deck. Please keep in mind that it is not officially supported and support questions should be directed to the plugin's repository & discord.
- Before proceeding, please make sure you have Lossless Scaling downloaded on Steam.
- Head to the GitHub Releases and download the file named "lsfg-vk-2.0.0-x86_64.tar.xz".
- Open a terminal in the folder where you downloaded the file and run the following:
tar -xvf lsfg-vk-2.0.0-linux.tar.xz -C ~/.local
This will extract lsfg-vk to ~/.local. Please keep track of the files that were extracted, in case you want to uninstall lsfg-vk later.
- The graphical interface requires Qt6 and Qt6 Quick in order to run. If you do not have these installed, install the following packages:
sudo apt install qt6-qpa-plugins libqt6quick6 qml6-module-qtquick-controls qml6-module-qtquick-layouts qml6-module-qtquick-window qml6-module-qtquick-dialogs # On Debian/Ubuntu-based systems
sudo pacman -S qt6-declarative qt6-base # On Arch-based systems
sudo dnf install qt6-qtdeclarative qt6-qtbase # On Fedora
- (Optional) If you wish to use lsfg-vk within Flatpak applications, see the Flatpak Guide.
Usage
In order to start using lsfg-vk, you will need to configure it. This can either be done using the GUI application, or manually.
Graphical Configuration
Start 'lsfg-vk Configuration Window' from your application launcher, or run ~/.local/bin/lsfg-vk-ui in a terminal:
- On the left side, you will see a list of profiles. Each profile has its own settings.
- All properties in the "Global Settings" section apply to all profiles.
- Should Lossless Scaling be installed in a non-standard location, you can specify the path here.
- Select a profile and configure the "Profile Settings" section to your liking.
- When editing the "Active In" list, you can add a game using its executable name (e.g.
Game.exe,mpv).
- When editing the "Active In" list, you can add a game using its executable name (e.g.
- Please see the documentation for detailed information on each setting.
- Once you are done configuring, simply starting a game that matches one of the profiles will automatically apply the settings.
Manual Configuration
The default configuration is located in ~/.config/lsfg-vk/conf.toml. It will be created automatically when any Vulkan application is started.
- In the
[global]section, you can change where Lossless Scaling is installed, as well as other global settings. - Each profile is defined in its own
[[profile]]section. - The
active_inarray/string defines which applications the profile is active in. You can add applications using their executable name (e.g.Game.exe,mpv). - Please see the documentation for detailed information on each setting.
- Once you are done configuring, simply starting a game that matches one of the profiles will automatically apply the settings.
You can validate the configuration using lsfg-vk-cli:
~/.local/bin/lsfg-vk-cli validate
Benchmarking Mode
You can run a frame generation benchmark using lsfg-vk-cli:
~/.local/bin/lsfg-vk-cli benchmark
By default, the benchmark will run for 10 seconds. Add -h to see all available benchmarking options.
Support and Troubleshooting
If you encounter any issues or have questions regarding lsfg-vk, read through the Troubleshooting documentation page or join the Discord server for assistance.