diff options
Diffstat (limited to 'modules/nixos/traits/nvk/default.nix')
| -rw-r--r-- | modules/nixos/traits/nvk/default.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/modules/nixos/traits/nvk/default.nix b/modules/nixos/traits/nvk/default.nix new file mode 100644 index 0000000..8e849ce --- /dev/null +++ b/modules/nixos/traits/nvk/default.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.traits.nvk; + mesa = import ./mesa.nix pkgs; + mesa32 = import ./mesa.nix pkgs.pkgsi686Linux; +in { + options.traits.nvk = { + enable = lib.mkEnableOption "nvk drivers"; + }; + + config = lib.mkIf cfg.enable { + # make sure we're loading new gsp firmware + boot.kernelParams = [ + "nouveau.config=NvGspRm=1" + "nouveau.debug=info,VBIOS=info,gsp=debug" + ]; + + environment.sessionVariables = { + # (fake) advertise vk 1.3 + MESA_VK_VERSION_OVERRIDE = "1.3"; + }; + + hardware.opengl = { + package = mesa.drivers; + package32 = mesa32.drivers; + }; + + system.replaceRuntimeDependencies = [ + { + original = pkgs.mesa.out; + replacement = mesa.out; + } + { + original = pkgs.pkgsi686Linux.mesa.out; + replacement = mesa32.out; + } + ]; + }; +} |
