Ok.  Investigating the unity-greeter code, I've found two problems:

1) The X connection marked as RetainPermanent for the background pixmap
is closed almost immediately.  This would not ordinarily be a problem,
but the GTK connection is marked as DestroyAll (the default) and is the
only X client connected.  When the greeter quits, it closes the final X
connection, and this triggers a different behaviour in the server - all
resources, even those from RetainPermanent clients, are destroyed.

This turns out not to be the actual problem, because
2) The greeter only sets the backing pixmap of the root window once, on 
creation, and before it's actually been drawn to.  This invokes undefined 
behaviour - the X server makes no guarantees that drawing to the pixmap will be 
reflected in the backing pixmap.  This would seem to be why on !intel you get 
random VRAM contents during login - the pixmap used as the backing store is 
uninitialised.  It only accidentally works on intel.

Now, my attempts at fixing 2) so far don't seem to work - for some
reason I get a black transition rather than a seamless background
transition on all (except maybe the first?) login?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/931967

Title:
  Corrupted graphics after the login  until the unity launcher appears

To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/931967/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to