I have made some investigations, and I have almost found the bug.

* The X server has chosen a format with 24 bit depth and 24 bits_per_pixel, 
which seems
pretty unusual.

(source is qt/src/gui/image/qnativeimage.cpp)
* QNativeImage::format() returns either 16 or 32 bits, but never 24!
  -> This is the cause of the garbage in the display.

* QNativeImage::QNativeImage is called with the 32bit format, and allocates a 
Ximage (using XShmCreateImage) of the default (-> 24). 
* Result : QImage thinks we've 4 bytes per pixel, XImage 3 bytes per pixel and 
this is the source of the segfault.

I have tried hacking QNativeImage::format() to return
QImage::Format_RGB888, there is no more segfault, but the red and blue
channels are inverted.

Hope this helps.

-- 
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xserver-xorg-video-cirrus in Ubuntu.
https://bugs.launchpad.net/bugs/759803

Title:
  Unity-2d not working on KVM with xen and cirrus video devices

To manage notifications about this bug go to:
https://bugs.launchpad.net/unity-2d/+bug/759803/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~ubuntu-x-swat
Post to     : ubuntu-x-swat@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ubuntu-x-swat
More help   : https://help.launchpad.net/ListHelp

Reply via email to