1{ stdenv, fetchFromGitHub, autoreconfHook, gnum4, pkgconfig, python2
2, intel-gpu-tools, libdrm, libva, libX11, libGL, wayland, libXext
3, enableHybridCodec ? false, vaapi-intel-hybrid
4}:
5
6stdenv.mkDerivation rec {
7 name = "intel-vaapi-driver-${version}";
8 version = "2.3.0"; # generally try to match libva version, but not required
9
10 src = fetchFromGitHub {
11 owner = "intel";
12 repo = "intel-vaapi-driver";
13 rev = version;
14 sha256 = "0s6cz9grymll96s7n2rpzvb3b566a2n21nfp6b23r926db089kjd";
15 };
16
17 patchPhase = ''
18 patchShebangs ./src/shaders/gpp.py
19 '';
20
21 preConfigure = ''
22 sed -i -e "s,LIBVA_DRIVERS_PATH=.*,LIBVA_DRIVERS_PATH=$out/lib/dri," configure
23 '';
24
25 postInstall = stdenv.lib.optionalString enableHybridCodec ''
26 ln -s ${vaapi-intel-hybrid}/lib/dri/* $out/lib/dri/
27 '';
28
29 configureFlags = [
30 "--enable-drm"
31 "--enable-x11"
32 "--enable-wayland"
33 ] ++ stdenv.lib.optional enableHybridCodec "--enable-hybrid-codec";
34
35 nativeBuildInputs = [ autoreconfHook gnum4 pkgconfig python2 ];
36
37 buildInputs = [ intel-gpu-tools libdrm libva libX11 libXext libGL wayland ]
38 ++ stdenv.lib.optional enableHybridCodec vaapi-intel-hybrid;
39
40 enableParallelBuilding = true;
41
42 meta = with stdenv.lib; {
43 homepage = https://01.org/linuxmedia;
44 license = licenses.mit;
45 description = "Intel driver for the VAAPI library";
46 platforms = platforms.unix;
47 maintainers = with maintainers; [ garbas ];
48 };
49}