summary refs log tree commit diff
path: root/modules/services/x11
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@viric.name>2013-01-30 20:22:40 +0100
committerLluís Batlle i Rossell <viric@viric.name>2013-01-30 20:40:55 +0100
commitd50b22e8823fdef1ae67494221f065a11ac1b937 (patch)
tree1655bdad881e2e827c80ad44a4729769d9fa0709 /modules/services/x11
parent37985ad66bf4aa0fa38479cd955c3cca8ba5c801 (diff)
downloadnixlib-d50b22e8823fdef1ae67494221f065a11ac1b937.tar
nixlib-d50b22e8823fdef1ae67494221f065a11ac1b937.tar.gz
nixlib-d50b22e8823fdef1ae67494221f065a11ac1b937.tar.bz2
nixlib-d50b22e8823fdef1ae67494221f065a11ac1b937.tar.lz
nixlib-d50b22e8823fdef1ae67494221f065a11ac1b937.tar.xz
nixlib-d50b22e8823fdef1ae67494221f065a11ac1b937.tar.zst
nixlib-d50b22e8823fdef1ae67494221f065a11ac1b937.zip
Adding vaapi drivers to nixos
Enabling nvidia and intel drivers by default. I tried both,
and they work fine with "vlc --ffmpeg-hw".
Diffstat (limited to 'modules/services/x11')
-rw-r--r--modules/services/x11/display-managers/default.nix13
-rw-r--r--modules/services/x11/xserver.nix10
2 files changed, 22 insertions, 1 deletions
diff --git a/modules/services/x11/display-managers/default.nix b/modules/services/x11/display-managers/default.nix
index 1f842c0c9534..42b5ce4aac5c 100644
--- a/modules/services/x11/display-managers/default.nix
+++ b/modules/services/x11/display-managers/default.nix
@@ -16,6 +16,17 @@ let
   cfg = config.services.xserver;
   xorg = pkgs.xorg;
 
+  vaapiDrivers = pkgs.buildEnv {
+    name = "vaapi-drivers";
+    paths = cfg.vaapiDrivers;
+    pathsToLink = "/lib/dri";
+
+    # To admit zero-length 'paths'
+    postBuild = "
+      ensureDir $out/lib/dri
+    ";
+  };
+
   # file provided by services.xserver.displayManager.session.script
   xsession = wm: dm: pkgs.writeScript "xsession"
     ''
@@ -80,6 +91,8 @@ let
           ${xorg.xrdb}/bin/xrdb -merge ~/.Xdefaults
       fi
 
+      export LIBVA_DRIVERS_PATH=${vaapiDrivers}/lib/dri;
+
       source /etc/profile
 
       ${cfg.displayManager.sessionCommands}
diff --git a/modules/services/x11/xserver.nix b/modules/services/x11/xserver.nix
index d4dc8b761bfd..c93c443287b1 100644
--- a/modules/services/x11/xserver.nix
+++ b/modules/services/x11/xserver.nix
@@ -30,7 +30,6 @@ let
     (name: { inherit name; driverName = name; } //
       attrByPath [name] (if (hasAttr ("xf86video" + name) xorg) then { modules = [(getAttr ("xf86video" + name) xorg) ]; } else throw "unknown video driver `${name}'") knownVideoDrivers);
 
-
   fontsForXServer =
     config.fonts.fonts ++
     # We don't want these fonts in fonts.conf, because then modern,
@@ -204,6 +203,15 @@ in
         '';
       };
 
+      vaapiDrivers = mkOption {
+        default = [ pkgs.vaapiIntel pkgs.vaapiVdpau ];
+        defaultText = "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]";
+        example = "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]";
+        description = ''
+          Names of the packages providing libva acceleration drivers.
+        '';
+      };
+
       driSupport = mkOption {
         default = true;
         description = ''