Re: [gtk-vnc-devel] PATCH: Yet more endianness fixes
- From: Anthony Liguori <anthony codemonkey ws>
- To: "Daniel P. Berrange" <berrange redhat com>
- Cc: gtk-vnc-devel <gtk-vnc-devel lists sourceforge net>, Peter Rosin <peda lysator liu se>
- Subject: Re: [gtk-vnc-devel] PATCH: Yet more endianness fixes
- Date: Tue, 01 Apr 2008 13:45:25 -0500
Daniel P. Berrange wrote:
On Fri, Mar 28, 2008 at 08:50:36AM -0500, Anthony Liguori wrote:
Daniel P. Berrange wrote:
The problem I hit is that I ran a server with:
"vncserver -depth 32 -geometry 1024x1024"
And the pixel format sent by the server is:
Pixel format BPP: 32, Depth: 32, Byte order: 4321, True color: 1
Mask red: 255, green: 255, blue: 255
Shift red: 24, green: 16, blue: 8
So, note that 'depth is 32' here, even though the shifts/masks clearly
fit in 3 pixels. And empirically the server sends me ZRLE updates with
a CPIXEL size of 3, not 4.
So when the spec says
"depth is 24 or less"
This is clearly not corresponding to the 'depth' value sent in the pixel
format. So basically we need to ignore explicitly declared pixel format
depth completely and just look at the pixel masks/shifts to calculate
the true depth, and thus whether CPIXEL is 3 or 4 bytes.
Have you informed the realvnc folks of this? Either the spec or realvnc
should be fixed. I don't like the idea of violating the spec to fix a
bug with one server since we're then breaking another server that isn't
violating the spec.
I've looked at 3 different VNC server impls which support ZRLE now and
they all work in the way I described / implemented, so I'm inclined to
commit this
Okay, go ahead. Can you send a note to Tristan Richardson and see about
getting the RFB spec updated to reflect this?
Regards,
Anthony Liguori
Dan.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]