[PATCH xserver 3/3] render: Fix default picture format initialization

Adam Jackson ajax at redhat.com
Fri Feb 23 16:15:55 UTC 2018


On Fri, 2018-02-23 at 10:51 +0100, Michel Dänzer wrote:
> On 2018-02-22 10:53 PM, Adam Jackson wrote:
> > "depth" for a picture format is the sum of bits of a/r/g/b, and not x.
> > The default format list was creating an x8r8g8b8 format at depth 32,
> > which is wrong. Likewise, servers supporting depth 30 would get an
> > x8r8g8b8 format at depth 30, which is nonsense.
> 
> Actually, the former isn't wrong, and the latter might not be either, I
> think. These are the constraints:
> 
> * The sizes of a/x+r+g+b must equal bpp
> * The sizes of a+r+g+b must be <= depth (or == ?)

Okay, let's make this concrete. Xvfb at depth 30 gives me these
formats:

  pict format:
        format id:    0x2b
        type:         Direct
        depth:        30
        alpha:         0 mask 0x0
        red:          16 mask 0xff
        green:         8 mask 0xff
        blue:          0 mask 0xff
  pict format:
        format id:    0x2c
        type:         Direct
        depth:        30
        alpha:         0 mask 0x0
        red:           0 mask 0xff
        green:         8 mask 0xff
        blue:         16 mask 0xff

What would this mean? If I point this picture at a depth-30 pixmap, is
the intent really "draw into this as though it was x8r8g8b8"? Is there
a world where that's useful?

All the 16bpp formats say they have "depth 16", regardless of a/x.

- ajax


More information about the xorg-devel mailing list