Merge lp:~vanvugt/ubuntu/quantal/nux/fix-1039155 into lp:ubuntu/quantal/nux

Proposed by Daniel van Vugt
Status: Rejected
Rejected by: Martin Pitt
Proposed branch: lp:~vanvugt/ubuntu/quantal/nux/fix-1039155
Merge into: lp:ubuntu/quantal/nux
Diff against target: 49 lines (+9/-14)
5 files modified
debian/50_check_unity_support (+8/-0)
debian/nux-tools.install (+1/-0)
debian/nux-tools.maintscript (+0/-1)
debian/patches/01_blacklist_llvmpipe.patch (+0/-12)
debian/patches/series (+0/-1)
To merge this branch: bzr merge lp:~vanvugt/ubuntu/quantal/nux/fix-1039155
Reviewer Review Type Date Requested Status
Didier Roche-Tolomelli Disapprove
Unity Team Pending
Ubuntu branches Pending
Review via email: mp+128422@code.launchpad.net

Commit message

Actually check the result of unity_support_test. And if it fails then fall
back to LLVMpipe, instead of leaving the user with no shell at all.
(LP: #1039155)

Description of the change

Test case:
  1. Simulate a machine that fails unity_support_test by replacing /usr/lib/nux/unity_support_test with a symlink to /bin/false.
  2. Log out and in again.
  3. Verify you are now using LLVMpipe:
     (a) Rendering is slower; and
     (b) glxinfo | grep OpenGL shows llvmpipe

Note: 3(b) is likely to change in future as programs spawned after Unity starts should not have LLVMpipe mode forced upon them. But that's an exercise for later.

To post a comment you must log in.
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

8:50:34 didrocks | the checker tool isn't used anymore
8:50:44 didrocks | so the branch will do nothing and it's too late to add it
8:50:56 didrocks | last time we discussed, this checks needs to be in compiz itself
8:51:00 Mirv | aha...
8:51:21 didrocks | (so exactly the same check minus the llvmpipe one) in the opengl plugin
8:51:22 Mirv | duflu yesterday changed the bug to indicate that the problem would not be in compiz
8:51:49 didrocks | well, ok, compiz may support opengl < 1.4 and no vertex shaders
8:52:09 didrocks | but in ubuntu, we mainly use it for ubuntu and the fallback to llvmpipe need to be done before the opengl plugin
                 | load
8:52:38 didrocks | as we don't use any external tool, it would make sense to distro-patch compiz for it

review: Disapprove
Revision history for this message
Sebastien Bacher (seb128) wrote :

(Setting "Work In Progress" so it gets out of the sponsoring queue, it should maybe be rejected by somebody who has access to the status, doesn't seem to be my case there)

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Needs review again.

I know this was rejected but now it appears to be the only proper fix for bug 1066764.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

I don't understand, we already merged a fix from you as a distro patch, where instead of using a session-wide testing, compiz is running the unity_support_test directly. We both tested that it fallbacked and force the llvmpipe code. What does this merge proposal do in addition?

review: Needs Information
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Yes, but the fix we landed for bug 1039155 appears to cause bug 1066764. And Colin's comments seem to suggest this will solve bug 1066764.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thought I'm happy to sit on this for a while and see if bug 1066764 actually affects more than one person in 12.10. If not then we may not need it.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Can you explain it a little bit more? TBH, it's really late to land as an SRU a system-wide script launched at every login without understanding why exactly it would fix this issue.
You just run it a little bit later in the process, but compiz is doing the same with the distro-patch, isn't it? it's running on its core the unity_support_test tool and getting the result. If it's =1, LIBGL_ALWAYS_SOFTWARE=1 is exported. What is different, how would some people won't be fallbacked with the current patch and will be there?

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

It appears the problem:
  https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/1066764/comments/1
is to do with running unity_support_test from _within_ compiz. Colin Law's machine has problems with that.

However Colin also points out in bug 1066764 and bug 1039155 that setting the variable before compiz starts (same as this fix) works for him.

Don't shoot the messenger. It's not my bug and I'm happy to ignore it if no one else is affected. I can't reproduce it either.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

That's really weird that the message is appearing *after* the other plugins are loaded as the system() call is synced, and so blocking…

Let's see if other issues happen as well, I would like that we understand clearly what's happening rather than jumping on the big hammer solution.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Not Work In Progress. That would imply I'm working on it when I'm not.

If this proposal is unacceptable, please reject instead.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

@Daniel: we already used your fix in compiz itself which does something similar, right? Please, do not change that back to "Needs review".

There is a persmission issue in launchpad where reviewers for ubuntu branches can't reject the branch, only the release team can. So please, reject the branch yourself, because the branch is *again* on the sponsoring list where it shouldn't.

review: Disapprove
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I don't have permission to reject it either.

Unmerged revisions

369. By Daniel van Vugt

Actually check the result of unity_support_test. And if it fails then fall
back to LLVMpipe, instead of leaving the user with no shell at all.
(LP: #1039155)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'debian/50_check_unity_support'
2--- debian/50_check_unity_support 1970-01-01 00:00:00 +0000
3+++ debian/50_check_unity_support 2012-10-08 06:11:21 +0000
4@@ -0,0 +1,8 @@
5+# This file is sourced by Xsession(5), not executed.
6+# If the hardware does not pass unity_support_test, fall back to LLVMpipe
7+# which does.
8+
9+if [ "x$DESKTOP_SESSION" = "xubuntu" ]; then
10+ /usr/lib/nux/unity_support_test || export LIBGL_ALWAYS_SOFTWARE=1
11+fi
12+
13
14=== modified file 'debian/nux-tools.install'
15--- debian/nux-tools.install 2012-08-15 06:31:46 +0000
16+++ debian/nux-tools.install 2012-10-08 06:11:21 +0000
17@@ -1,2 +1,3 @@
18 debian/tmp/usr/lib/nux/unity_support_test
19+debian/50_check_unity_support /etc/X11/Xsession.d
20 debian/source_nux.py usr/share/apport/package-hooks
21
22=== removed file 'debian/nux-tools.maintscript'
23--- debian/nux-tools.maintscript 2012-08-15 12:42:57 +0000
24+++ debian/nux-tools.maintscript 1970-01-01 00:00:00 +0000
25@@ -1,1 +0,0 @@
26-rm_conffile /etc/X11/Xsession.d/50_check_unity_support 3.2.0-0ubuntu3~
27
28=== removed file 'debian/patches/01_blacklist_llvmpipe.patch'
29--- debian/patches/01_blacklist_llvmpipe.patch 2012-02-27 10:23:10 +0000
30+++ debian/patches/01_blacklist_llvmpipe.patch 1970-01-01 00:00:00 +0000
31@@ -1,12 +0,0 @@
32-Index: ubuntu/tools/unity_support_test.c
33-===================================================================
34---- ubuntu.orig/tools/unity_support_test.c 2012-01-13 09:01:58.714180000 +0100
35-+++ ubuntu/tools/unity_support_test.c 2012-02-27 11:16:53.435617058 +0100
36-@@ -587,6 +587,7 @@
37- if (results->renderer != NULL &&
38- (strncmp (results->renderer, "Software Rasterizer", 19) == 0 ||
39- strncmp (results->renderer, "Mesa X11", 8) == 0 ||
40-+ strstr (results->renderer, "llvmpipe") != NULL ||
41- strstr (results->renderer, "on softpipe") != NULL)) {
42- results->flags |= FLAG_SOFTWARE_RENDERING;
43- }
44
45=== modified file 'debian/patches/series'
46--- debian/patches/series 2012-08-01 16:09:01 +0000
47+++ debian/patches/series 2012-10-08 06:11:21 +0000
48@@ -1,1 +0,0 @@
49-01_blacklist_llvmpipe.patch

Subscribers

People subscribed via source and target branches