summaryrefslogtreecommitdiff
path: root/modules/nixos/traits/nvk/default.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2024-02-07 18:03:24 -0500
committerseth <[email protected]>2024-02-07 18:27:45 -0500
commitcffffeb678e9a1078eeba0f19c9607cda9f31bed (patch)
tree8b8f68aa357becad06845f15b7e528474041371c /modules/nixos/traits/nvk/default.nix
parent48712d44fde91d2685089cca7f9d88295fd59817 (diff)
modules/nixos+darwin: move to traits + archetypes model
Diffstat (limited to 'modules/nixos/traits/nvk/default.nix')
-rw-r--r--modules/nixos/traits/nvk/default.nix43
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;
+ }
+ ];
+ };
+}