From d50b22e8823fdef1ae67494221f065a11ac1b937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Wed, 30 Jan 2013 20:22:40 +0100 Subject: [PATCH] Adding vaapi drivers to nixos Enabling nvidia and intel drivers by default. I tried both, and they work fine with "vlc --ffmpeg-hw". --- modules/services/x11/display-managers/default.nix | 13 +++++++++++++ modules/services/x11/xserver.nix | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/services/x11/display-managers/default.nix b/modules/services/x11/display-managers/default.nix index 1f842c0c953..42b5ce4aac5 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 d4dc8b761bf..c93c443287b 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 = ''