diff --git a/README.md b/README.md index fa5f8d2..547095d 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Nix flake for using [Lossless Scaling's frame generation on Linux](https://githu ### 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: +Add this to your flake inputs, output function and modules list: ```nix inputs = { ... @@ -29,25 +29,39 @@ outputs = {nixpkgs, lsfg-vk-flake, ...}: { } ``` -And then you should be able to enable this in your system config using: +And then enable this in your system config: ```nix services.lsfg-vk.enable = true; ``` ### User install (manual) 1. Build the library: - ``nix build`` -3. Create the following path in case it does not exist: - ``mkdir -p $HOME/.local/share/vulkan/implicit_layer.d`` + ```bash + nix build + ``` +2. Create the following path in case it does not exist: + ```bash + 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/`` + ```bash + 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(...): ... +Example: +```bash +ENABLE_LSFG=1 vkcube +``` -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%`` +To confirm that it is working, look for output like this in the terminal: lsfg-vk(...): ... -There are many more options that can be set. Consult the original repository for further documentation. \ No newline at end of file +You can also enable it per game on Steam by adding this to the launch options: +``` +ENABLE_LSFG=1 %COMMAND% +``` + +>[!NOTE] +> If the environment variable is set but the program doesn't show any lsfg-vk output, you may need to add the application to your lsfg-vk configuration file at `~/.config/lsfg-vk/config.toml`. Read more about it in the [Wiki](https://github.com/PancakeTAS/lsfg-vk/wiki/Configuring-lsfg-vk) \ No newline at end of file diff --git a/default.nix b/default.nix index 58317ce..07fa9d5 100644 --- a/default.nix +++ b/default.nix @@ -13,17 +13,21 @@ libXcursor, libXi, libglvnd, + libxkbcommon, + wayland-scanner, + pkg-config, + wayland, }: llvmPackages.stdenv.mkDerivation { pname = "lsfg-vk"; - version = "unstable-2025-07-18-53b4438"; + version = "unstable-2025-07-19-dd5190a"; src = fetchFromGitHub { owner = "PancakeTAS"; repo = "lsfg-vk"; - rev = "53b4438a2a567c26d739c856329c1a4d13aa1968"; - hash = "sha256-Ze4PBu3W7wKbYAMwQIdV2LBI8xWpYWvNJ3qIId2ByPU="; + rev = "dd5190aa680a7543143e724a100bd5d6e9898dd7"; + hash = "sha256-2WrUtjUG8l3tSElDYfhvi4lrFUG1Oh5M7DAEX2mFh5s="; fetchSubmodules = true; }; @@ -38,6 +42,8 @@ llvmPackages.stdenv.mkDerivation { llvmPackages.libllvm # needed for release builds cmake ninja + wayland-scanner + pkg-config ]; buildInputs = [ @@ -50,6 +56,8 @@ llvmPackages.stdenv.mkDerivation { libXcursor libXi libglvnd + libxkbcommon + wayland ]; meta = with lib; { diff --git a/flake.lock b/flake.lock index a63de06..3b37958 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1752687322, + "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251", "type": "github" }, "original": { diff --git a/module.nix b/module.nix index ee61e8f..92ab300 100644 --- a/module.nix +++ b/module.nix @@ -31,6 +31,17 @@ in Required if Lossless Scaling isn't installed in a standard location ''; }; + + configFile = lib.mkOption + { + type = with lib.types; nullOr str; + default = null; + example = "/home/user/.config/lsfg-vk/conf.toml"; + description = '' + Sets the LSFG_CONFIG environment variable. + Required if the lsfg-vk configuration file isn't stored at the standard location + ''; + }; }; }; @@ -42,5 +53,7 @@ in "${cfg.package}/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json"; environment.sessionVariables.LSFG_DLL_PATH = lib.mkIf (cfg.losslessDLLFile != null) cfg.losslessDLLFile; + + environment.sessionVariables.LSFG_CONFIG = lib.mkIf (cfg.configFile != null) cfg.configFile; }; }