Nvidia Prime graphics: unity8/unity8-dash crashed with SIGSEGV in glGetString()

Bug #1550972 reported by János Milus
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
New
Undecided
Chris Halse Rogers
mir (Ubuntu)
New
Undecided
Unassigned
qtbase-opensource-src (Ubuntu)
Invalid
Undecided
Unassigned
unity8 (Ubuntu)
Invalid
Medium
Unassigned

Bug Description

https://errors.ubuntu.com/problem/b0dbc65a7887deabcd906b0a95bd8d5ace8919df
https://errors.ubuntu.com/problem/f9fe7febed582c1e8f7bf8421f8d73a51de2ab37

Lenovo Y50 notebook with NVidia Prime profile. Login with unity8 shows black screen. Login with ubuntu works fine.

ProblemType: Crash
DistroRelease: Ubuntu 16.04
Package: unity8 8.11+16.04.20160216.1-0ubuntu1
ProcVersionSignature: Ubuntu 4.4.0-8.23-generic 4.4.2
Uname: Linux 4.4.0-8-generic x86_64
NonfreeKernelModules: nvidia_uvm nvidia
ApportVersion: 2.20-0ubuntu3
Architecture: amd64
Date: Sun Feb 28 19:27:08 2016
ExecutablePath: /usr/bin/unity8-dash
InstallationDate: Installed on 2014-10-02 (514 days ago)
InstallationMedia: Ubuntu 14.04.1 LTS "Trusty Tahr" - Release amd64 (20140722.2)
ProcCmdline: unity8-dash --desktop_file_hint=/usr/share/applications/unity8-dash.desktop
ProcEnviron:
 LANGUAGE=hu
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=hu_HU.UTF-8
 SHELL=/bin/bash
Signal: 11
SourcePackage: unity8
StacktraceTop:
 glGetString () from /usr/lib/nvidia-340-updates/libGL.so.1
 QOpenGLContext::makeCurrent(QSurface*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
 ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
 ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
 start_thread (arg=0x7f1e26dc9700) at pthread_create.c:333
Title: unity8-dash crashed with SIGSEGV in glGetString()
UpgradeStatus: Upgraded to xenial on 2016-02-21 (7 days ago)
UserGroups: adm cdrom dip docker lpadmin plugdev sambashare sudo

Revision history for this message
János Milus (jmilus) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 glGetString () from /tmp/apport_sandbox_laPLHZ/usr/lib/nvidia-340-updates/libGL.so.1
 QOpenGLContext::makeCurrent(QSurface*) () from /tmp/apport_sandbox_laPLHZ/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
 QSGRenderThread::run() () from /tmp/apport_sandbox_laPLHZ/usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
 QThreadPrivate::start(void*) () from /tmp/apport_sandbox_laPLHZ/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
 start_thread (arg=0x7f1e26dc9700) at pthread_create.c:333

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in unity8 (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
Revision history for this message
Albert Astals Cid (aacid) wrote : Re: unity8-dash crashed with SIGSEGV in glGetString()

Don't think this is a bug in unity8 itself seems more either Qt, mir or the nvidia drivers.

Changed in unity8 (Ubuntu):
status: New → Incomplete
information type: Private → Public
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Nvidia Prime is a bit deceiving here. Prime typically works by wiring the Intel GPU to the display and just using the Nvidia chip for indirect rendering (if desired).

And that's what's going on here too. Mir does not support the Nvidia driver, but it started successfully because Mir is actually just using the Intel graphics driver:

[2016-02-28 19:27:03.147913] mirplatform: Found graphics driver: mir:mesa-kms (version 0.20.0)
[2016-02-28 19:27:03.147975] mirplatform: Found graphics driver: mir:mesa-x11 (version 0.20.0)
qtmir.mir: MirServer created
[2016-02-28 19:27:03.148721] mirserver: Starting
[2016-02-28 19:27:03.298794] mirserver: Using nested cursor
[2016-02-28 19:27:03.445320] mirserver: Initial display configuration:
[2016-02-28 19:27:03.445621] mirserver: 0.34: eDP 15,3" 340x190mm
[2016-02-28 19:27:03.445633] mirserver: Current mode 3840x2160 47,99Hz
[2016-02-28 19:27:03.445648] mirserver: Preferred mode 3840x2160 47,99Hz
[2016-02-28 19:27:03.445653] mirserver: Logical position +0+0
[2016-02-28 19:27:03.445661] mirserver: 0.31: unused VGA
[2016-02-28 19:27:03.445667] mirserver: 0.42: unused HDMI-A

7f1e67234000-7f1e6780b000 r-xp 00000000 00:15 4064527 /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
7f1e6780b000-7f1e67a0b000 ---p 005d7000 00:15 4064527 /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
7f1e67a0b000-7f1e67a3c000 r--p 005d7000 00:15 4064527 /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
7f1e67a3c000-7f1e67a43000 rw-p 00608000 00:15 4064527 /usr/lib/x86_64-linux-gnu/dri/i965_dri.so

The crash is occurring still, unfortunately because of Nvidia prime. You have Unity8 starting, but trying to use the wrong libGL (the Nvidia one which we don't support). The reason why USC will work here, but Unity8 won't is possibly because USC is native GLESv2, but Unity8/QtMir on desktop uses full GL. So you may not encounter a crash till Unity8 starts.

Still, we have started up OK apparently using Intel graphics. I wonder if we can make Unity8 find the correct libGL...

summary: - unity8-dash crashed with SIGSEGV in glGetString()
+ Nvidia Prime graphics: unity8-dash crashed with SIGSEGV in glGetString()
Changed in mir:
assignee: nobody → Chris Halse Rogers (raof)
Changed in qtbase-opensource-src (Ubuntu):
status: New → Invalid
Changed in unity8 (Ubuntu):
status: Incomplete → Invalid
tags: added: black-screen
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
summary: - Nvidia Prime graphics: unity8-dash crashed with SIGSEGV in glGetString()
+ Nvidia Prime graphics: unity8/unity8-dash crashed with SIGSEGV in
+ glGetString()
description: updated
Revision history for this message
Michał Sawicz (saviq) wrote :

Syncing task from Mir.

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.