From adab1f41794e53570cabd67f92d639d579cf3da6 Mon Sep 17 00:00:00 2001 From: Antoine Viallon Date: Thu, 21 Sep 2023 14:26:29 +0200 Subject: [PATCH] [Desktop/Gaming] make shader cache path relative to $XDG_CACHE_HOME --- desktop/games.nix | 14 +++++++------- desktop/general.nix | 10 ++++------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/desktop/games.nix b/desktop/games.nix index 2316af7..c128b0a 100644 --- a/desktop/games.nix +++ b/desktop/games.nix @@ -89,10 +89,14 @@ in { "__GL_SHADER_DISK_CACHE" = "true"; "__GL_SHADER_DISK_CACHE_SIZE" = "${toString (50 * 1000)}"; "__GL_SHADER_DISK_CACHE_SKIP_CLEANUP" = "1"; # Avoid 128mb limit of shader cache - "__GL_SHADER_DISK_CACHE_PATH" = cfg.graphics.shaderCache.path + "/nvidia" ; "MESA_SHADER_CACHE_MAX_SIZE" = "50G"; # Put large-enough value. Default is only 1G - "MESA_SHADER_CACHE_DIR" = cfg.graphics.shaderCache.path + "/mesa"; - "MESA_GLSL_CACHE_DIR" = cfg.graphics.shaderCache.path + "/mesa"; + }; + + environment.sessionVariables = rec { + XDG_CACHE_HOME = "$HOME/.cache"; + "__GL_SHADER_DISK_CACHE_PATH" = "${XDG_CACHE_HOME}/nvidia_gl"; + MESA_SHADER_CACHE_DIR = "${XDG_CACHE_HOME}/mesa"; + MESA_GLSL_CACHE_DIR = "${XDG_CACHE_HOME}/mesa"; }; programs.steam.package = pkgs.steam.override { @@ -105,9 +109,5 @@ in { "steam" "steam-original" "steam-runtime" "steam-run" ]; - systemd.tmpfiles.rules = [ - (mkTmpDir (cfg.graphics.shaderCache.path + "/nvidia") cfg.graphics.shaderCache.cleanupInterval) - (mkTmpDir (cfg.graphics.shaderCache.path + "/mesa") cfg.graphics.shaderCache.cleanupInterval) - ]; }; } diff --git a/desktop/general.nix b/desktop/general.nix index fee134e..cfaaf4a 100644 --- a/desktop/general.nix +++ b/desktop/general.nix @@ -39,12 +39,6 @@ in { }; graphics = { shaderCache = { - path = mkOption { - description = "Where to put shader cache (currently only for NVidia)"; - type = types.path; - default = "/var/tmp/shadercache"; - example = "/tmp/shadercache"; - }; cleanupInterval = mkOption { description = "Interval for cache cleanup (tmpfiles.d format). Set to '-' to disable."; type = types.str; @@ -55,6 +49,10 @@ in { }; }; + imports = [ + (mkRemovedOptionModule [ "aviallon" "desktop" "graphics" "shaderCache" "path" ] "Now always relative to $XDG_CACHE_HOME" ) + ]; + config = mkIf cfg.enable { aviallon.network.backend = mkDefault "NetworkManager";