Comment 21 for bug 269509

Revision history for this message
In , Bryce Harrington (bryce) wrote :

https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/269509

[Problem]
On this hardware, starting a second session and activating compiz leads to a white screen, presumably because the second session is assuming DRI is present when it isn't.

[Discussion]
Ubuntu has a 'Guest session' feature which allows starting a second X session. It is said that DRI is not available for anything but the primary session, which is unfortunate but acceptable. However, when starting the xserver on a second session, it does not seem to be smart enough to realize it should not try using DRI, because it consequently presents a blank white, non-interactive screen.

Expected behavior would be for it to realize DRI is unavailable and load without DRI enabled.

Compiz currently works around this by including a check for 'Software Rasterizer' in its startup script. However, we'd like to not need to work around this issue like that, as it's kind of a hack.

[lspci]
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03)
 Subsystem: Dell Device [1028:0201]

[Original Report]
Compiz recently started by default again, thanks to some fixes in gnome-session. Now the old problem of "second X session just has white screen" is back. Parrotting Michael, this is due to the X server pretending that it has two DRI capable screens, but it is a known problem that there can only be one compiz X.org at a time.

I'll attach glxinfo output from my primary session (with compiz running fine) and the output from the guest session (where I just get a white screen).

> I tried reproducing it on my 965 box but couldn't, would you mind
> listing the exact steps to reproduce it?

for glxinfo:
- boot
- log into GNOME
- glxinfo > glxinfo.primarysession.txt
- start guest session
- glxinfo > /tmp/glxinfo.guest.txt
- switch to primary session with ctrl+alt+f7 (since quitting the guest
  session kills all files of guest)
- copy /tmp/glxinfo.guest.txt to ~
- switch back to guest and close the session

For checking white screen:
 - edit /usr/bin/compiz and disable the abort_* thing in

        # check if we run with software rasterizer and if so, bail out
        if check_software_rasterizer; then
                verbose "Software rasterizer detected, aborting"
                abort_with_fallback_wm
        fi

Then start the guest session.