Follow up from #1309. When running a 30 bit xdummy virtual display, the colors look correct. But when running against an existing display powered by the nvidia driver... the red and blue channels are inverted. My guess is that dummy needs fixing - no idea how. It would be nice to have another driver to compare.
I have used the following code to dump the XImage data in both cases, and the output is identical... so it doesn't look like a case of our code missing a switch:
--- xpra/x11/bindings/ximage.pyx (revision 16291) +++ xpra/x11/bindings/ximage.pyx (working copy) @@ -311,6 +311,9 @@ else: self.pixel_format = BGRA elif self.depth==30: + #log.warn("30bpp, byte_order=%i, bitmap_bit_order=%i, bits_per_pixel=%s", image.byte_order, image.bitmap_bit_order, image.bits_per_pixel) + #log.warn("pad=%i, unit=%i, format=%i", image.bitmap_pad, image.bitmap_unit, image.format) + #log.warn("masks: red=%#x, green=%#x, blue=%#x", image.red_mask, image.green_mask, image.blue_mask) self.bytesperpixel = 4 if image.byte_order==MSBFirst: self.pixel_format = R210
re-scheduling since #1577 is waiting for an upstream change
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1576