diff --git a/pkgs/build-support/opengl/mesa-switch.sh b/pkgs/build-support/opengl/mesa-switch.sh index bc9445319dd..8dcabc07dea 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 00000000000..3894dbd207f --- /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 00000000000..ae348b70c69 --- /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 631051f43da..143b47c2bdf 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 c5146391a75..bac38c88204 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";})