Nix flake to build the library for Lossless Scaling's frame generation on NixOS https://github.com/PancakeTAS/lsfg-vk/
Find a file
pabloaul 291be68043
Merge pull request #2 from exalexi/main
module.nix: add losslessDLLFile option
2025-07-18 01:03:55 +02:00
.gitignore Initial commit 2025-07-10 15:35:26 +02:00
default.nix default.nix: update lsfg-vk to 83b869b 2025-07-15 00:32:41 +02:00
flake.lock init: publish to git 2025-07-11 13:48:40 +02:00
flake.nix module.nix: init 2025-07-15 00:24:57 +02:00
LICENSE Initial commit 2025-07-10 15:35:26 +02:00
module.nix module.nix: add losslessDLLFile option 2025-07-18 01:00:00 +02:00
README.md readme: make it somewhat nicer 2025-07-15 02:43:34 +02:00

lsfg-vk-flake

Nix flake for using Lossless Scaling's frame generation on Linux

Important

You need to have Lossless Scaling installed on Steam! In case it is not installed on the default Steam drive, you may want to consider setting the environment variable LSFG_DLL_PATH=<ABSOLUTE_PATH_TO>/Lossless.dll

Installation

System-wide (NixOS module)

This approach will install an implicit layer to /etc/vulkan/implicit_layer.d/

Add this repository to your flake inputs, output function and module list:

inputs = {
  ...
  lsfg-vk-flake.url = "github:pabloaul/lsfg-vk-flake/main";
  lsfg-vk-flake.inputs.nixpkgs.follows = "nixpkgs";
}

outputs = {nixpkgs, lsfg-vk-flake, ...}: {

  nixosConfigurations.hostname = nixpkgs.lib.nixosSystem {
    ...
    modules = [
      ...
      lsfg-vk-flake.nixosModules.default
    ];
  };
}

And then you should be able to enable this in your system config using:

services.lsfg-vk.enable = true;

# optional but recommended:
environment.variables = { LSFG_DLL_PATH = "<ABSOLUTE_PATH_TO>/Lossless.dll"; }

User install (manual)

  1. Build the library: nix build
  2. Create the following path in case it does not exist: mkdir -p $HOME/.local/share/vulkan/implicit_layer.d
  3. Symlink the build results to your $HOME/.local/ cp -ifrsv "$(readlink -f ./result)"/* $HOME/.local/

Usage

Run a Vulkan application with the environment variable ENABLE_LSFG=1 set.

Example: ENABLE_LSFG=1 vkcube and look for output like this in the terminal: lsfg-vk(...): ...

You can also enable it per game on Steam by adding this to the launch options of a game like this: ENABLE_LSFG=1 %COMMAND%

There are many more options that can be set. Consult the original repository for further documentation.