Ubuntu – My NVidia GTX 960 card creates openGL problems with Unity on Ubuntu

graphicsnvidiaopenglunityxorg

I posted a bug about this on launchpad already, but was hoping maybe someone on here would have some suggestions about other things I could try.

Background:
I had a working Ubuntu 14.10 system with an NVidia GTX 550 Ti adapter. Yesterday I replaced that adapter with an [ASUS Strix] NVidia GTX 960. I am using the X-org-edgers PPA for drivers, version 346, since there are no Ubuntu-Universe drivers with explicit support for my card.

Behavior:
When booting into Ubuntu normally, I should see the Launch panel and top-bar, but I do not. I do see my desktop icons and can interact with the system. Sound works. If I switch to terminal (ctrl+alt+f2) I can login, export display=:0, and launch a gnome-terminal from there, and then open firefox and others. There is no window-decoration, nor is their window compositing.

It appears that all Unity services (including screenshots, volume control, etc) are also not loading.

Some Data
The dump I get from compiz in terminal after doing a dconf reset and "setsid unity" is:

aaron@naegleria:~$ dconf reset -f /org/compiz
aaron@naegleria:~$ setsid unity
[1] 3166
stop: Unknown job: unity-panel-service
compiz (core) - Info: Loading plugin: core
compiz (core) - Info: Starting plugin: core
start: Unknown job: unity-panel-service
compiz (core) - Info: Loading plugin: ccp
compiz (core) - Info: Starting plugin: ccp
compizconfig - Info: Backend : gsettings
compizconfig - Info: Integration : true
compizconfig - Info: Profile : unity
compiz (core) - Info: Loading plugin: composite
compiz (core) - Info: Starting plugin: composite
compiz (core) - Info: Loading plugin: move
compiz (core) - Info: Starting plugin: move
compiz (core) - Info: Loading plugin: place
compiz (core) - Info: Starting plugin: place
compiz (core) - Info: Loading plugin: compiztoolbox
compiz (core) - Info: Starting plugin: compiztoolbox
compiz (core) - Error: Plugin 'opengl' not loaded.

compiz (core) - Info: Loading plugin: resize
compiz (core) - Info: Starting plugin: resize
compiz (core) - Info: Loading plugin: snap
compiz (core) - Info: Starting plugin: snap
compiz (core) - Info: Loading plugin: mousepoll
compiz (core) - Info: Starting plugin: mousepoll
compiz (core) - Info: Loading plugin: imgpng
compiz (core) - Info: Starting plugin: imgpng
compiz (core) - Info: Loading plugin: session
compiz (core) - Info: Starting plugin: session
compiz (core) - Info: Loading plugin: vpswitch
compiz (core) - Info: Starting plugin: vpswitch
compiz (core) - Info: Loading plugin: regex
compiz (core) - Info: Starting plugin: regex
compiz (core) - Info: Loading plugin: workarounds
compiz (core) - Info: Starting plugin: workarounds
compiz (core) - Error: Plugin 'opengl' not loaded.

compiz (core) - Info: Stopping plugin: workarounds
compiz (core) - Info: Unloading plugin: workarounds
compiz (core) - Info: Stopping plugin: regex
compiz (core) - Info: Unloading plugin: regex
compiz (core) - Info: Stopping plugin: vpswitch
compiz (core) - Info: Unloading plugin: vpswitch
compiz (core) - Info: Stopping plugin: session
compiz (core) - Info: Unloading plugin: session
compiz (core) - Info: Stopping plugin: imgpng
compiz (core) - Info: Unloading plugin: imgpng
compiz (core) - Info: Stopping plugin: mousepoll
compiz (core) - Info: Unloading plugin: mousepoll
compiz (core) - Info: Stopping plugin: snap
compiz (core) - Info: Unloading plugin: snap
compiz (core) - Info: Stopping plugin: resize
compiz (core) - Info: Unloading plugin: resize
compiz (core) - Info: Stopping plugin: compiztoolbox
compiz (core) - Info: Unloading plugin: compiztoolbox
compiz (core) - Info: Stopping plugin: place
compiz (core) - Info: Unloading plugin: place
compiz (core) - Info: Stopping plugin: move
compiz (core) - Info: Unloading plugin: move
compiz (core) - Info: Stopping plugin: composite
compiz (core) - Info: Unloading plugin: composite
compiz (core) - Info: Stopping plugin: ccp
compiz (core) - Info: Unloading plugin: ccp
compiz (core) - Info: Stopping plugin: core
compiz (core) - Info: Unloading plugin: core

The only known nouveau package (since I know this can cause conflicts) is:

aaron@naegleria:~$ dpkg -l | grep nouveau
ii libdrm-nouveau2:amd64 2.4.56-1 amd64 Userspace interface to nouveau-specific kernel DRM services -- runtime

And for NVidia packages:

aaron@naegleria:~$ dpkg -l | grep nvidia
ii nvidia-346 346.35-0ubuntu1~xedgers14.10.1 amd64 NVIDIA binary driver - version 346.35
ii nvidia-346-uvm 346.35-0ubuntu1~xedgers14.10.1 amd64 NVIDIA Unified Memory kernel module
ii nvidia-opencl-icd-346 346.35-0ubuntu1~xedgers14.10.1 amd64 NVIDIA OpenCL ICD
ii nvidia-prime 0.6.7 amd64 Tools to enable NVIDIA's Prime
ii nvidia-settings 346.35-0ubuntu1~xedgers14.10.1 amd64 Tool for configuring the NVIDIA graphics driver
aaron@naegleria:~$

lspci doesn't correctly identify the card, as it has in the past, though:

aaron@naegleria:~$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1401 (rev a1)
aaron@naegleria:~$

Attempted Fixes:
Per searches on Stack Overflow and elsewhere, I have tried:

  • Install CCSM, enable "unity" (and its dependencies) (Possibly
    relevant: "Unredirect Driver Blacklist" has: (nouveau|Intel).*Mesa
    8.0

  • Adding nouveau to a blacklist file (this is not presently enabled)

  • The dconf reset / setsid hack (see above)

  • Purging all nvidia-* drivers prior to installing any new ones.

  • Installing drivers directly from NVidia (the ".run" file for drivers nvidia-346). I have done this by booting, switching to terminal, shutting down lightdm service, then running the NVidia driver. It installs correctly (though it does complain about the pre-install script not working; the rest of the process works). I am able to load NVidia-Settings and see graphics-card-related details.

  • Reinstalling lightdm, unity, ubuntu-desktop

  • [Present attempt] Installing the Xorg-edgers drivers for NVidia-346. This also loads the relevant Xorg packages, nvidia-settings, etc. NVidia-settings loads the drivers as it did with NVidia-binaries, above. Details below.

  • Reinstalling ubuntu 14.10 from USB stick (leaving /home/ intact)

I am current with all system updates.

Here is NVidia-Settings dump:

Operating System: Linux-x86_64
NVidia Driver Versoin: 346.35

X Server Information:

Display Name: naegleria:0 
Server Version Number: 11.0 Server 
Vendor String: The X.Org Foundation Server 
Vendor Version: 1.16.0 (11600000)
NV-CONTROL Version: 1.29 
Screens: 1 [NOTE: I have two displays, but they are both functional and spanned correctly]

OpenGL Settings :

[X] Sync to VBlank 
[X] Allow Flipping Quality [roughly 1/3 in]
Miscellaneaous: 
[X] Use Conformant Texture Clamping

And then my nvidia-Settings.rc file:

#
# /home/aaron/.nvidia-settings-rc
#
# Configuration file for nvidia-settings - the NVIDIA X Server Settings utility
# Generated on Thu Feb 5 20:12:08 2015
#

# ConfigProperties:

RcFileLocale = C
ToolTips = Yes
DisplayStatusBar = Yes
SliderTextEntries = Yes
IncludeDisplayNameInConfigFile = No
ShowQuitDialog = Yes
UpdateRulesOnProfileNameChange = Yes
Timer = Memory_Used_(GPU_0),Yes,3000
Timer = PowerMizer_Monitor_(GPU_0),Yes,1000
Timer = Thermal_Monitor_(GPU_0),Yes,1000
Timer = Graphics_Card_(GPU_0),Yes,1000

# Attributes:

0/SyncToVBlank=1
0/LogAniso=0
0/FSAA=0
0/TextureSharpen=0
0/TextureClamping=1
0/FXAA=0
0/AllowFlipping=1
0/FSAAAppControlled=1
0/LogAnisoAppControlled=1
0/OpenGLImageSettings=1
0/FSAAAppEnhanced=0
0/XVideoSyncToDisplayID=DVI-I-0
[DPY:DVI-I-0]/Dithering=0
[DPY:DVI-I-0]/DitheringMode=0
[DPY:DVI-I-0]/DitheringDepth=0
[DPY:DVI-I-0]/SynchronousPaletteUpdates=0
[DPY:DVI-I-1]/RedBrightness=0.000000
[DPY:DVI-I-1]/GreenBrightness=0.000000
[DPY:DVI-I-1]/BlueBrightness=0.000000
[DPY:DVI-I-1]/RedContrast=0.000000
[DPY:DVI-I-1]/GreenContrast=0.000000
[DPY:DVI-I-1]/BlueContrast=0.000000
[DPY:DVI-I-1]/RedGamma=1.000000
[DPY:DVI-I-1]/GreenGamma=1.000000
[DPY:DVI-I-1]/BlueGamma=1.000000
[DPY:DVI-I-1]/Dithering=0
[DPY:DVI-I-1]/DitheringMode=0
[DPY:DVI-I-1]/DitheringDepth=0
[DPY:DVI-I-1]/DigitalVibrance=0
[DPY:DVI-I-1]/ColorSpace=0
[DPY:DVI-I-1]/ColorRange=0
[DPY:DVI-I-1]/SynchronousPaletteUpdates=0
[DPY:DP-0]/Dithering=0
[DPY:DP-0]/DitheringMode=0
[DPY:DP-0]/DitheringDepth=0
[DPY:DP-0]/SynchronousPaletteUpdates=0
[DPY:DP-1]/Dithering=0
[DPY:DP-1]/DitheringMode=0
[DPY:DP-1]/DitheringDepth=0
[DPY:DP-1]/SynchronousPaletteUpdates=0
[DPY:DP-2]/Dithering=0
[DPY:DP-2]/DitheringMode=0
[DPY:DP-2]/DitheringDepth=0
[DPY:DP-2]/SynchronousPaletteUpdates=0
[DPY:DP-3]/Dithering=0
[DPY:DP-3]/DitheringMode=0
[DPY:DP-3]/DitheringDepth=0
[DPY:DP-3]/SynchronousPaletteUpdates=0
[DPY:HDMI-0]/Dithering=0
[DPY:HDMI-0]/DitheringMode=0
[DPY:HDMI-0]/DitheringDepth=0
[DPY:HDMI-0]/SynchronousPaletteUpdates=0
[DPY:DP-4]/Dithering=0
[DPY:DP-4]/DitheringMode=0
[DPY:DP-4]/DitheringDepth=0
[DPY:DP-4]/SynchronousPaletteUpdates=0
[DPY:DP-5]/RedBrightness=0.000000
[DPY:DP-5]/GreenBrightness=0.000000
[DPY:DP-5]/BlueBrightness=0.000000
[DPY:DP-5]/RedContrast=0.000000
[DPY:DP-5]/GreenContrast=0.000000
[DPY:DP-5]/BlueContrast=0.000000
[DPY:DP-5]/RedGamma=1.000000
[DPY:DP-5]/GreenGamma=1.000000
[DPY:DP-5]/BlueGamma=1.000000
[DPY:DP-5]/Dithering=0
[DPY:DP-5]/DitheringMode=0
[DPY:DP-5]/DitheringDepth=0
[DPY:DP-5]/DigitalVibrance=0
[DPY:DP-5]/ColorSpace=0
[DPY:DP-5]/ColorRange=0
[DPY:DP-5]/SynchronousPaletteUpdates=0
[DPY:Unknown-0]/Dithering=0
[DPY:Unknown-0]/DitheringMode=0
[DPY:Unknown-0]/DitheringDepth=0
[DPY:Unknown-0]/SynchronousPaletteUpdates=0

Best Answer

Don't worry about the lspci part. It's just because your /usr/share/misc/pci.ids* files are not up to date. Just run "update-pciids" as root.

Before running update-pciids:

$ lspci | grep GeForce
$

Running update-pciids:

$ sudo update-pciids
Downloaded daily snapshot dated 2015-04-14 03:15:01
$ sudo lspci | grep GeForce
01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)

I'm using NVIDIA's original 346.59 drivers (last stable as of today) without problems in 14.04.

Related Question