tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
primus: 1.0.0748176 -> 20151204, add useNvidia flag
Nikolay Amiantov
10 years ago
56ffc2ec
ae7ff020
+41
-52
4 changed files
expand all
collapse all
unified
split
pkgs
tools
X11
primus
builder.sh
default.nix
lib.nix
top-level
all-packages.nix
-12
pkgs/tools/X11/primus/builder.sh
···
1
1
-
source $stdenv/setup
2
2
-
3
3
-
cp -r $src src
4
4
-
cd src
5
5
-
6
6
-
export LIBDIR=$out/lib
7
7
-
export PRIMUS_libGLa=$nvidia/lib/libGL.so
8
8
-
export PRIMUS_libGLd=$mesa/lib/libGL.so
9
9
-
export PRIMUS_LOAD_GLOBAL=$mesa/lib/libglapi.so
10
10
-
11
11
-
make
12
12
-
ln -s $LIBDIR/libGL.so.1 $LIBDIR/libGL.so
+10
-23
pkgs/tools/X11/primus/default.nix
···
5
5
# Other distributions do the same.
6
6
{ stdenv
7
7
, primusLib
8
8
-
, writeScript
8
8
+
, writeScriptBin
9
9
, primusLib_i686 ? null
10
10
+
, useNvidia ? true
10
11
}:
11
11
-
with stdenv.lib;
12
12
+
12
13
let
13
13
-
version = "1.0.0748176";
14
14
-
ldPath = makeLibraryPath ([primusLib] ++ optional (primusLib_i686 != null) primusLib_i686);
15
15
-
primusrun = writeScript "primusrun"
16
16
-
''
14
14
+
primus = if useNvidia then primusLib else primusLib.override { nvidia_x11 = null; };
15
15
+
primus_i686 = if useNvidia then primusLib_i686 else primusLib_i686.override { nvidia_x11 = null; };
16
16
+
ldPath = stdenv.lib.makeLibraryPath ([primus] ++ stdenv.lib.optional (primusLib_i686 != null) primus_i686);
17
17
+
18
18
+
in writeScriptBin "primusrun" ''
19
19
+
#!${stdenv.shell}
17
20
export LD_LIBRARY_PATH=${ldPath}:$LD_LIBRARY_PATH
18
21
exec "$@"
19
19
-
'';
20
20
-
in
21
21
-
stdenv.mkDerivation {
22
22
-
name = "primus-${version}";
23
23
-
builder = writeScript "builder"
24
24
-
''
25
25
-
source $stdenv/setup
26
26
-
mkdir -p $out/bin
27
27
-
cp ${primusrun} $out/bin/primusrun
28
28
-
'';
29
29
-
30
30
-
meta = {
31
31
-
homepage = https://github.com/amonakov/primus;
32
32
-
description = "Faster OpenGL offloading for Bumblebee";
33
33
-
maintainers = with maintainers; [ coconnor ];
34
34
-
};
35
35
-
}
22
22
+
''
+25
-10
pkgs/tools/X11/primus/lib.nix
···
1
1
{ stdenv, fetchgit
2
2
, xlibsWrapper, mesa
3
3
-
, nvidia
3
3
+
, nvidia_x11 ? null
4
4
+
, libX11
4
5
}:
5
5
-
let
6
6
-
version = "1.0.0748176";
7
7
-
in
6
6
+
8
7
stdenv.mkDerivation {
9
9
-
name = "primus-lib-${version}";
8
8
+
name = "primus-lib-20151204";
9
9
+
10
10
src = fetchgit {
11
11
url = git://github.com/amonakov/primus.git;
12
12
-
rev = "074817614c014e3a99259388cb18fd54648b659a";
13
13
-
sha256 = "0mrh432md6zrm16avxyk57mgszrqpgwdjahspchvlaccqxp3x82v";
12
12
+
rev = "d1afbf6fce2778c0751eddf19db9882e04f18bfd";
13
13
+
sha256 = "8f095b5e2030cdb155a42a49873832843c1e4dc3087a6fb94d198de982609923";
14
14
};
15
15
16
16
-
inherit nvidia mesa;
16
16
+
buildInputs = [ libX11 mesa ];
17
17
+
18
18
+
makeFlags = [ "LIBDIR=$(out)/lib"
19
19
+
"PRIMUS_libGLa=${if nvidia_x11 == null then mesa else nvidia_x11}/lib/libGL.so"
20
20
+
"PRIMUS_libGLd=${mesa}/lib/libGL.so"
21
21
+
"PRIMUS_LOAD_GLOBAL=${mesa}/lib/libglapi.so"
22
22
+
];
23
23
+
24
24
+
installPhase = ''
25
25
+
ln -s $out/lib/libGL.so.1 $out/lib/libGL.so
26
26
+
'';
17
27
18
18
-
buildInputs = [ xlibsWrapper mesa ];
19
19
-
builder = ./builder.sh;
28
28
+
meta = with stdenv.lib; {
29
29
+
description = "Low-overhead client-side GPU offloading";
30
30
+
homepage = https://github.com/amonakov/primus;
31
31
+
platforms = platforms.linux;
32
32
+
license = licenses.bsd2;
33
33
+
maintainers = with maintainers; [ abbradar ];
34
34
+
};
20
35
}
+6
-7
pkgs/top-level/all-packages.nix
···
13387
13387
13388
13388
virtualgl = callPackage ../tools/X11/virtualgl { };
13389
13389
13390
13390
+
13391
13391
+
primusLib = callPackage ../tools/X11/primus/lib.nix {
13392
13392
+
nvidia_x11 = linuxPackages.nvidia_x11.override { libsOnly = true; };
13393
13393
+
};
13394
13394
+
13390
13395
primus = callPackage ../tools/X11/primus {
13391
13391
-
primusLib = callPackage ../tools/X11/primus/lib.nix {
13392
13392
-
nvidia = linuxPackages.nvidia_x11;
13393
13393
-
};
13394
13394
-
13395
13396
primusLib_i686 = if system == "x86_64-linux"
13396
13396
-
then callPackage_i686 ../tools/X11/primus/lib.nix {
13397
13397
-
nvidia = pkgsi686Linux.linuxPackages.nvidia_x11.override { libsOnly = true; };
13398
13398
-
}
13397
13397
+
then pkgsi686Linux.primusLib
13399
13398
else null;
13400
13399
};
13401
13400