summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/opengl/mesa-switch.sh6
-rw-r--r--pkgs/os-specific/linux/opengl/xorg-sys/builder.sh9
-rw-r--r--pkgs/os-specific/linux/opengl/xorg-sys/default.nix15
-rw-r--r--pkgs/system/all-packages-generic.nix4
-rw-r--r--pkgs/system/populate-cache.nix1
5 files changed, 32 insertions, 3 deletions
diff --git a/pkgs/build-support/opengl/mesa-switch.sh b/pkgs/build-support/opengl/mesa-switch.sh
index bc9445319dd9..8dcabc07dea3 100644
--- a/pkgs/build-support/opengl/mesa-switch.sh
+++ b/pkgs/build-support/opengl/mesa-switch.sh
@@ -19,10 +19,10 @@ This will probably be quite slow.
 
 This program will look for a hardware-accelerated implementation of
 OpenGL in the "$profileName" profile of your Nix installation.  For
-instance, to enable NVidia's accelerated driver on non-NixOS systems,
-try
+instance, to enable the (hopefully) accelerated driver provided by
+your (non-NixOS) Linux distribution, try
 
-  $ nix-env -p $profile -i nvidia-sys-opengl
+  $ nix-env -p $profile -i xorg-sys-opengl
 
 Alternatively, you can set the OPENGL_DRIVER environment variable to
 point at the package containing the OpenGL implementation.
diff --git a/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh b/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh
new file mode 100644
index 000000000000..3894dbd207f6
--- /dev/null
+++ b/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh
@@ -0,0 +1,9 @@
+source $stdenv/setup
+
+ensureDir $out/lib
+
+ln -s /usr/lib/libGL.so.1 $out/lib/
+
+for i in $neededLibs; do
+    ln -s $i/lib/*.so* $out/lib/
+done
diff --git a/pkgs/os-specific/linux/opengl/xorg-sys/default.nix b/pkgs/os-specific/linux/opengl/xorg-sys/default.nix
new file mode 100644
index 000000000000..ae348b70c692
--- /dev/null
+++ b/pkgs/os-specific/linux/opengl/xorg-sys/default.nix
@@ -0,0 +1,15 @@
+# This is a very dirty hack to allow hardware acceleration of OpenGL
+# applications for most (?) users.  It will use the driver that your
+# Linux distribution installed in /usr/lib/libGL.so.1.  Hopefully,
+# this driver uses hardware acceleration.
+#
+# Of course, use of the driver in /usr/lib is highly impure.  But it
+# might actually work ;-)
+
+{stdenv, xlibs, expat}:
+
+stdenv.mkDerivation {
+  name = "xorg-sys-opengl";
+  builder = ./builder.sh;
+  neededLibs = [xlibs.libXxf86vm expat];
+}
diff --git a/pkgs/system/all-packages-generic.nix b/pkgs/system/all-packages-generic.nix
index 631051f43da3..143b47c2bdf0 100644
--- a/pkgs/system/all-packages-generic.nix
+++ b/pkgs/system/all-packages-generic.nix
@@ -1681,6 +1681,10 @@ rec {
     inherit fetchurl stdenv;
   };
 
+  xorg_sys_opengl = import ../os-specific/linux/opengl/xorg-sys {
+    inherit stdenv xlibs expat;
+  };
+
   
   ### DATA
 
diff --git a/pkgs/system/populate-cache.nix b/pkgs/system/populate-cache.nix
index c5146391a755..bac38c882044 100644
--- a/pkgs/system/populate-cache.nix
+++ b/pkgs/system/populate-cache.nix
@@ -130,6 +130,7 @@ let {
     jetty
 
     quake3demo
+    xorg_sys_opengl
   ;};
 
   i686FreeBSDPkgs = {inherit (allPackages {system = "i686-freebsd";})