Hi Tomaz, Bumblebee maintainer and nvidia-driver co-maintainer here (although to be fair w.r.t. nvidia-driver, Andreas does most of the work there :P ); sorry for the late reply!
On Wed, Dec 3, 2014 at 7:49 AM, Tomaz Fogaça <tom.fog...@gmail.com> wrote: > Package: nvidia-driver > Version: 340.46-5 > Severity: important > > Dear Maintainer, > > I've struck some inconsistencies between the nvidia-driver package and the > Nvidia installer provided by Nvidia themselves, through their site. To the best of my understanding, what you're seeing (and I'll elaborate further below with inline replies to the other parts of your bug report) are probably not inconsistencies, but different methods of enabling Optimus functionality on Linux, admittedly none of which are seamless as with Windows. Arch Linux's wiki article on Optimus [1] describes the current options pretty well (I suggest at least reading the summary), i.e. 1) nouveau-only: PRIME GPU offloading using nouveau [2] 2) nvidia-only: nvidia's more recent implementation [3], also packaged as nvidia-prime [4] in Ubuntu 3) nouveau or nvidia: bumblebee ...all of which have their own benefits and drawbacks. It's worth pointing out that in Debian, only option 3 is packaged (as bumblebee, bbswitch, and primus); options 1 and 2 should be possible, but involve manual configuration. There's a request for nvidia-prime to be packaged in Debian [5], but I simply haven't had time to get around to it. The package in Ubuntu does not seem to be readily backport-able to Debian, unfortunately. > Whenever I try installing the Nvidia drivers/libraries through the Nvidia > installer, I get the expected results: the drivers are installed and the > libraries are > put into place so that when I have Xorg come up, all applications requiring > OpenGL work as expected, and it would seem to me that either the Nvidia > installer enables > transparent GPU switching or it just sends all commands straight to the > discrete GPU automatically. That's probably nvidia-prime; I actually wasn't aware that the nvidia's installer configures that automatically (but see [3] if you want to do it yourself). I'll point out that this doesn't offer transparent GPU switching; in order to switch between having your main X display be driven by either your Intel or nvidia GPU, you need to kill your current X session and start a new one. This also partially defeats one of the supposed benefits of Optimus, i.e. that your nvidia GPU is powered down when not in use to save battery life on your laptop; with nvidia-prime, with your nvidia GPU enabled, it remains enabled and powered on until you end your current X session, as opposed to e.g. bumblebee. > On the other hand, if I install the 'nvidia-driver' package, which installs > with it the OpenGL, GLX > and Xserver libs, and then use 'update-alternatives --config glx' to have > glx point to the nvidia implementation, and then fire up xorg, I can't get > my OpenGL > programs to work. 'glxinfo' gives me errors like 'Xlib: extension "GLX" > missing on display "0:0". > > If I use the alternatives system to have glx point instead to mesa-diverted, > this results in using the integrated GPU for everything. Yes, without any X server configuration (either done by yourself or apparently by nvidia's installer), you'll be using your intel GPU to drive your primary display, and that requires mesa's libGL implementation rather than nvidia's. This is the ideal configuration if you can disable your nvidia GPU via a BIOS setting and choose not to use your nvidia GPU. > I'm doing all of these experiments on a live system without persistency, so > I can mess around with configs and reset them upon reboot. Also, I'm not > using any > Xorg.conf file. > > I eventually tried using bumblebee. I used 'update-alternatives --config > glx' to make glx point to the mesa-diverted libs and indeed, I could get > OpenGL working ( > with 'optirun someOpenGLApp' ). But it bugs me that the Nvidia installer can > work some magic to switch GPUs automatically or to always use the Nvidia > card, but I > can't get that to work with the debian nvidia packages, and must always use > bumblebee explicitly. And of course bumblebee is also a viable option; this allows you to run applications using your nvidia GPU on-demand, and bumblebee will automatically toggle your nvidia GPU on and off as necessary (this is actually done by bbswitch), but you have to specify which applications you want using optirun (everything uses your Intel GPU by default). Note that bumblebee may not offer the best performance compared to nvidia-prime (it works essentially by intercepting GLX calls and redirecting GL rendering to an invisible, secondary X display, then copying everything back to the primary X display, from what I understand). In summary, there's no perfect solution, although it would be nice if nvidia-prime was packaged for Debian...it's on my todo list, but I totally wouldn't mind if someone beats me in packaging it for Debian. :) Regards, Vincent [1] https://wiki.archlinux.org/index.php/NVIDIA_Optimus [2] http://nouveau.freedesktop.org/wiki/Optimus/ [3] http://us.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html [4] https://launchpad.net/ubuntu/+source/nvidia-prime [5] http://lists.alioth.debian.org/pipermail/pkg-nvidia-devel/2014-November/010814.html -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org