Recommending proprietary driver on hybrid systems can break 3D

Bug #885204 reported by Bryce Harrington
72
This bug affects 24 people
Affects Status Importance Assigned to Milestone
jockey (Ubuntu)
Fix Released
High
Martin Pitt
Oneiric
Fix Released
High
Unassigned
Precise
Fix Released
High
Martin Pitt

Bug Description

Hybrid systems have two video cards, but only one can be used as a time. On some machines, only the active card is visible, but on some both cards are visible to Jockey. In this case, if the system is set up to run on Intel (say) with Unity-3d active and working fine, jockey will notice the NVIDIA card and tell the user that the -nvidia driver is recommended, and required in order to run Unity-3d. The user then installs nvidia as recommended, reboots, and then loses 3d (since they're now using the nvidia GLX library with the intel video driver running.)

There's probably several different ways to solve this. One idea would be a blacklist registering specific systems which we know have hybrid cards with this particular issue, and have jockey not suggest the proprietary driver in this case (unless perhaps a --force flag is passed or some such).

ProblemType: BugDistroRelease: Ubuntu 11.10
Package: jockey-gtk 0.9.4-0ubuntu10
ProcVersionSignature: Ubuntu 3.0.0-12.20-generic-pae 3.0.4
Uname: Linux 3.0.0-12-generic-pae i686
ApportVersion: 1.23-0ubuntu3
Architecture: i386
Date: Wed Nov 2 09:04:15 2011
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release i386 (20111012)
MachineType: LENOVO 417024U
PackageArchitecture: all
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-12-generic-pae root=UUID=8091c6fd-1036-47b4-8198-8c15474e7fad ro quiet splash initcall_debug vt.handoff=7SourcePackage: jockey
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 03/04/2011
dmi.bios.vendor: LENOVO
dmi.bios.version: 8CET30WW (1.07 )
dmi.board.asset.tag: Not Available
dmi.board.name: 417024U
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr8CET30WW(1.07):bd03/04/2011:svnLENOVO:pn417024U:pvrThinkPadT420s:rvnLENOVO:rn417024U:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 417024U
dmi.product.version: ThinkPad T420s
dmi.sys.vendor: LENOVO

Revision history for this message
Bryce Harrington (bryce) wrote :
Bryce Harrington (bryce)
Changed in jockey (Ubuntu):
assignee: nobody → Martin Pitt (pitti)
status: New → Triaged
Revision history for this message
Bryce Harrington (bryce) wrote :

@Martin, this lenovo laptop allows switching cards via BIOS. Selecting 'discrete' will cause nvidia to load (which works properly if -nvidia is installed).

description: updated
Martin Pitt (pitti)
Changed in jockey (Ubuntu Oneiric):
status: New → Triaged
Changed in jockey (Ubuntu Precise):
importance: Undecided → High
Changed in jockey (Ubuntu Oneiric):
importance: Undecided → High
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package jockey - 0.9.5-0ubuntu2

---------------
jockey (0.9.5-0ubuntu2) precise; urgency=low

  * Merge from trunk:
    - Add XorgDriverHandler.loaded_drivers(), as a prerequisite for LP #885204
    - Update translations from Launchpad.
  * data/handlers/{fglrx,nvidia}.py: Do not offer these drivers if intel
    X.org driver is loaded. On hybrid systems where intel is active,
    installing the proprietary drivers and their libGL breaks intel.
    (LP: #885204)
 -- Martin Pitt <email address hidden> Wed, 02 Nov 2011 11:21:03 -0400

Changed in jockey (Ubuntu Precise):
status: Triaged → Fix Released
Revision history for this message
Martin Pitt (pitti) wrote :

Uploaded to oneiric-proposed, needs ubuntu-sru review.

Changed in jockey (Ubuntu Oneiric):
status: Triaged → Fix Committed
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Bryce, or anyone else affected,

Accepted jockey into oneiric-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

tags: added: verification-needed
Revision history for this message
Nuno Ferreira (nuno-f-ferreira) wrote :

Hello,

I have just upgraded from natty to oneiric and have a hybrid-graphics laptop (Lenovo T520 with i915 and nvidia NVS4200M).

I had bumblebee (support for Nvidia Optimus) working in natty but now I can't seem to have nvidia driver loaded by jockey on account of this code from nvidia.py. From jockey 0.9.4-0ubuntu10.1

if 'intel' in self.loaded_drivers():
      logging.debug('Disabling Nvidia driver on intel/hybrid system')
      return False

What's the reasoning behind this? I was going to attempt to use ironhide (bumblebee evolution) but I need to have both GPU drivers loaded in oneiric like I used to have in natty...

TIA,
Nuno

Revision history for this message
Martin Pitt (pitti) wrote :

Nuno, see the bug description. Installing the proprietary NVidia driver installs NVidia's libGL fork, which is not compatible with intel's. So while you configured the BIOS to use the intel card, you'd break your X.org by installing nvidia.

Revision history for this message
Nuno Ferreira (nuno-f-ferreira) wrote :

Sorry, didn't read it properly. But I'm confused nevertheless. Did this change from Natty to Oneiric? Because like I said before I could use both GPUs in Natty with the help of Bumblebee, hence I could install nvidia-current and still keep using i915 and the same for X drivers...

So officially in Oneiric there's no way I can use nvidia OPTIMUS?

Revision history for this message
Martin Pitt (pitti) wrote :

Yes, this was introduced into oneiric. The current check might very well be too strong and err on the side of safety. You can of course still install the "nvidia-current" package manually. But even better would be if we would find a finer-grained condition when it's safe to offer the nvidia driver and when not.

I'm not quite sure how this works on your box, though. You use both the nvidia and intel card at the same time? That pretty much must mean that X.org running on the intel card does not have 3D acceleration?

Revision history for this message
Chris Halse Rogers (raof) wrote :

Officially in *all* Ubuntu releases there's no way to use nVidia optimus. We don't support bumblebee/ironhide, so the result of installing the nvidia drivers will be to break your 3D. This isn't something that we should be recommending that users do, which is what Jockey was doing!

If you're savvy enough to install bumblebee/ironhide, then installing the nvidia_current package without Jockey shouldn't be hard. We're not preventing you from ‘apt-get install nvidia_current’, we're preventing Jockey from suggesting that the user do something that's guaranteed to break their system.

Revision history for this message
Nuno Ferreira (nuno-f-ferreira) wrote :

@Martin @Chris

Well, I can understand bumblebee/ironhide not being supported and I can certainly appreciate your support despite of that.

I think are bigger than just the ones concerning Jockey. I will try to have details later. I did try to apt-get install nvidia-current and then change /etc/alternatives/*gl_conf (that were left pointing at mesa) but then in X.log I got "(EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)" so perhaps this version of X is also not compatible with nVidia GL...

So, I don't know if Jockey does anything else that I should be doing manually to be able to use both GPUs.

With Bumblebee/Ironhide both xorgs running have 3d accel. it's only that glxgears points out very different performances for them :) so I like to have nVidia stopped almost all of the time but I really like to "optirun <my occasionally intensive 3d app>" and launch it.

So, I appreciate if there's more info you can give on this and will try to get to the bottom of this later.

Revision history for this message
Martin Pitt (pitti) wrote :

Could anyone please test the proposed Jockey version? We already have another SRU which is waiting on this one.

Revision history for this message
Nuno Ferreira (nuno-f-ferreira) wrote :

Meanwhile and following up on my previous post I can say that I have Ironhide working in Oneiric the same way Bumblebee was working in Natty. I don't have a way to disable/enable nvidia card though.I'll post my xSDTs to the appropriate mailing-list. Thanks

Revision history for this message
Julian Alarcon (julian-alarcon) wrote :

So, in this case, this is a temporary workaround?? Cause I have a Dell Vostro 3450 with Intel from core i5 (Sandy Bridge) and AMD Radeon 6630.... I will never could use my AMD chip?

Revision history for this message
Martin Pitt (pitti) wrote : Re: [Bug 885204] Re: Recommending proprietary driver on hybrid systems can break 3D

Julián Alarcón [2011-11-29 2:16 -0000]:
> So, in this case, this is a temporary workaround?? Cause I have a Dell
> Vostro 3450 with Intel from core i5 (Sandy Bridge) and AMD Radeon
> 6630.... I will never could use my AMD chip?

If you select the AMD chip in the BIOS and disable the Intel one,
jockey is supposed to offer the FGLRX driver. If it doesn't, please
report back here with /var/log/jockey.log. Thanks!

Revision history for this message
Julian Alarcon (julian-alarcon) wrote :

That's the problem Matias, my Dell BIOS doesn't have this option, and many other niter

Revision history for this message
Cefn (6-launchpad-net-cefn-com) wrote :

I arrived here because I have broken 3D as promised - I have a NVidia Geforce GT 525M in a Dell 5110 (Q15R) with Intel HD 3000 built in.

However, there's no obvious information as to how I get myself out of the mess which Jockey has got me in because...

* Jockey doesn't tell me it's installing a .deb and which one, and offers me no means of reversing it.
* Jockey's 'remove' doesn't actually remove stuff apparently. It just breaks the Intel support by installing a package and leaves it that way, even when you revisit Jockey and ask it to reverse the steps.

Basically I had working 3D desktop effects in LiveCD and original install, then broken effects since running Jockey, and still broken even after asking Jockey to remove, and removing the xorg.conf added by nvidia-xconfig as advised by nvidia-settings.

I think I need to install Synaptic, and remove nvidia-current, but there's been no discussion in this bug thread what people should actually do who are experiencing the bug to get back at least to Intel graphics.

Revision history for this message
Cefn (6-launchpad-net-cefn-com) wrote :

Sure enough, going to Synaptic and asking to completely remove the package nvidia-current has given me back 3D desktop effects.

Revision history for this message
Cefn (6-launchpad-net-cefn-com) wrote :

Forgot to mention, a restart of X was required too to reverse the effects of the Jockey bug (logging in and out again).

Revision history for this message
Clint Byrum (clint-fewbar) wrote :

We need somebody with hybrid Nvidia/Intel graphics to please test the proposed package per the instructions in Comment #5.

@Cefn, can you verify that with the -proposed version of jockey installed, it does not recommend the proprietary nvidia drivers?

Thanks!

Revision history for this message
Cefn (6-launchpad-net-cefn-com) wrote :

Tested it with jockey-gtk and jockey-common from oneiric-proposed. I have finally arrived at the satisfying announcement "No Proprietary Drivers in use in this system", and it offered me nothing at all.

Worth noting I have a bumblebee install now which might potentially complicate things, I guess it won't interfere with the hardware detection routines or Jockey.

Revision history for this message
Martin Pitt (pitti) wrote :

Thanks a lot for testing this!

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package jockey - 0.9.4-0ubuntu10.1

---------------
jockey (0.9.4-0ubuntu10.1) oneiric-proposed; urgency=low

  * debian/control: Update Vcs-Bzr: for oneiric branch.
  * jockey/xorg_driver.py, tests/handlers.py: Add
    XorgDriverHandler.loaded_drivers(), as a prerequisite for LP#885204. Patch
    cherrypicked from trunk r756.
  * data/handlers/nvidia.py: Do not offer this driver if intel X.org driver
    is loaded. On hybrid systems where intel is active, installing the
    proprietary drivers and their libGL breaks intel. (LP: #885204)
 -- Martin Pitt <email address hidden> Wed, 02 Nov 2011 14:10:22 -0400

Changed in jockey (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Revision history for this message
Rüdiger Kupper (ruediger.kupper) wrote :

Well done!
But this is rather a bug on th side of the nvidia driver. It's not so unusual to have several X drivers installed. Another example besides systems with two graphics cards is a (real) X client/server setup:

Say you have (like us) a server and several different thin clients making X connections across the network, the server needs to have the X drivers for all the graphics cards of the different clients installed (at least if you want to have graphics acceleration via GLX). Now, if one of the clients happens to have an nvidia card, the server needs to run the nvidia X server to get acceleration for this client. This breaks acceleration for all clients with other graphics cards.

This is a huge problem in, for example, the Linux Terminal Server Project (LTSP).

Since the real cause is the broken nvidia driver, is there any chance of asking the guys at NVidia to fix this?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.