Implementation of PXA270 18BPP mode

Sergey Lapin slapinid at gmail.com
Tue Apr 27 13:37:21 PDT 2010


On Tue, Apr 27, 2010 at 11:54 PM, Adam Jackson <ajax at nwnk.net> wrote:
> On Tue, 2010-04-27 at 23:43 +0400, Sergey Lapin wrote:
>> On Mon, Apr 26, 2010 at 10:25 PM, Adam Jackson <ajax at nwnk.net> wrote:
>> > On Thu, 2010-04-22 at 13:34 +0400, Sergey Lapin wrote:
>> >
>> >> Options I run X server with are /usr/X11R6/bin/X :0 -br -audit 0
>> >> -fbbpp 32 -depth 18 -weight
>> >> 666 -extension RENDER -extension Composite
>> >
>> > Depth 18 at 32 bits per pixel?  Really?
>> Alas, yes. According to 7.4.13.5 of PXA 270 manual,
>> the format is that each pixel occupy 32-bit word in little-endian format,
>> of which bits 0-17 are used for pixel data in RGB666 format. each
>> occupying 6 bits
>> of data.
>
> That's spectacular.  I hope they at least give you six bits of alpha for
> your trouble.
>
No, they don't. Other bits are unused.
Below is xdpyinfo output. How could I use this information?
I'm not quite familiar with the codebase, but I managed to make ubuntu
pixman work
so X server won't dump core with such settings, and display proper
colors until RENDER
is used (for antialiasing). I've tried to patch some settings in, but
it seems not enough,
since colors are still invalid for antialiased bitmaps and fonts.
Images in viewers and gimp
are ok.

ubuntu at ubuntu:~$ DISPLAY=:0 xdpyinfo -ext RENDER
name of display:    :0.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    10600000
X.Org version: 1.6.0
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    8
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 4, bits_per_pixel 8, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 15, bits_per_pixel 16, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
    depth 32, bits_per_pixel 32, scanline_pad 32
    depth 18, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 255
focus:  PointerRoot
number of extensions:    27
    BIG-REQUESTS
    Composite
    DAMAGE
    DOUBLE-BUFFER
    DPMS
    DRI2
    GLX
    Generic Event Extension
    MIT-SCREEN-SAVER
    MIT-SHM
    RANDR
    RECORD
    RENDER
    SECURITY
    SGI-GLX
    SHAPE
    SYNC
    X-Resource
    XC-MISC
    XFIXES
    XFree86-DGA
    XFree86-VidModeExtension
    XINERAMA
    XInputExtension
    XKEYBOARD
    XTEST
    XVideo
default screen number:    0
number of screens:    1

screen #0:
  dimensions:    480x272 pixels (127x72 millimeters)
  resolution:    96x96 dots per inch
  depths (8):    18, 1, 4, 8, 15, 16, 24, 32
  root window id:    0xc2
  depth of root window:    18 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x20
  default number of colormap cells:    64
  preallocated pixels:    black 0, white 262143
  options:    backing-store NO, save-unders NO
  largest cursor:    480x272
  current input event mask:    0x1a0000
    StructureNotifyMask      SubstructureNotifyMask   SubstructureRedirectMask
  number of visuals:    2
  default visual id:  0x21
  visual:
    visual id:    0x21
    class:    TrueColor
    depth:    18 planes
    available colormap entries:    64 per subfield
    red, green, blue masks:    0x3f000, 0xfc0, 0x3f
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x40
    class:    TrueColor
    depth:    32 planes
    available colormap entries:    64 per subfield
    red, green, blue masks:    0x3f000, 0xfc0, 0x3f
    significant bits in color specification:    8 bits

RENDER version 0.10 opcode: 148, base error: 157
  Render formats :
  pict format:
	format id:    0x22
	type:         Direct
	depth:        1
	alpha:         0 mask 0x1
	red:           0 mask 0x0
	green:         0 mask 0x0
	blue:          0 mask 0x0
  pict format:
	format id:    0x23
	type:         Direct
	depth:        8
	alpha:         0 mask 0xff
	red:           0 mask 0x0
	green:         0 mask 0x0
	blue:          0 mask 0x0
  pict format:
	format id:    0x24
	type:         Direct
	depth:        4
	alpha:         0 mask 0xf
	red:           0 mask 0x0
	green:         0 mask 0x0
	blue:          0 mask 0x0
  pict format:
	format id:    0x25
	type:         Direct
	depth:        32
	alpha:        24 mask 0xff
	red:          16 mask 0xff
	green:         8 mask 0xff
	blue:          0 mask 0xff
  pict format:
	format id:    0x26
	type:         Direct
	depth:        32
	alpha:         0 mask 0x0
	red:          16 mask 0xff
	green:         8 mask 0xff
	blue:          0 mask 0xff
  pict format:
	format id:    0x27
	type:         Direct
	depth:        32
	alpha:         0 mask 0x0
	red:          12 mask 0x3f
	green:         6 mask 0x3f
	blue:          0 mask 0x3f
  pict format:
	format id:    0x28
	type:         Direct
	depth:        18
	alpha:         0 mask 0x0
	red:          12 mask 0x3f
	green:         6 mask 0x3f
	blue:          0 mask 0x3f
  pict format:
	format id:    0x29
	type:         Direct
	depth:        18
	alpha:         0 mask 0x0
	red:          16 mask 0xff
	green:         8 mask 0xff
	blue:          0 mask 0xff
  pict format:
	format id:    0x2a
	type:         Direct
	depth:        18
	alpha:         0 mask 0x0
	red:           0 mask 0xff
	green:         8 mask 0xff
	blue:         16 mask 0xff
  pict format:
	format id:    0x2b
	type:         Direct
	depth:        15
	alpha:         0 mask 0x0
	red:           8 mask 0xf
	green:         4 mask 0xf
	blue:          0 mask 0xf
  pict format:
	format id:    0x2c
	type:         Direct
	depth:        15
	alpha:         0 mask 0x0
	red:           0 mask 0xf
	green:         4 mask 0xf
	blue:          8 mask 0xf
  pict format:
	format id:    0x2d
	type:         Direct
	depth:        15
	alpha:         0 mask 0x0
	red:          10 mask 0x1f
	green:         5 mask 0x1f
	blue:          0 mask 0x1f
  pict format:
	format id:    0x2e
	type:         Direct
	depth:        15
	alpha:         0 mask 0x0
	red:           0 mask 0x1f
	green:         5 mask 0x1f
	blue:         10 mask 0x1f
  pict format:
	format id:    0x2f
	type:         Direct
	depth:        16
	alpha:         0 mask 0x0
	red:           8 mask 0xf
	green:         4 mask 0xf
	blue:          0 mask 0xf
  pict format:
	format id:    0x30
	type:         Direct
	depth:        16
	alpha:         0 mask 0x0
	red:           0 mask 0xf
	green:         4 mask 0xf
	blue:          8 mask 0xf
  pict format:
	format id:    0x31
	type:         Direct
	depth:        16
	alpha:         0 mask 0x0
	red:          10 mask 0x1f
	green:         5 mask 0x1f
	blue:          0 mask 0x1f
  pict format:
	format id:    0x32
	type:         Direct
	depth:        16
	alpha:         0 mask 0x0
	red:           0 mask 0x1f
	green:         5 mask 0x1f
	blue:         10 mask 0x1f
  pict format:
	format id:    0x33
	type:         Direct
	depth:        16
	alpha:        15 mask 0x1
	red:          10 mask 0x1f
	green:         5 mask 0x1f
	blue:          0 mask 0x1f
  pict format:
	format id:    0x34
	type:         Direct
	depth:        16
	alpha:        15 mask 0x1
	red:           0 mask 0x1f
	green:         5 mask 0x1f
	blue:         10 mask 0x1f
  pict format:
	format id:    0x35
	type:         Direct
	depth:        16
	alpha:         0 mask 0x0
	red:          11 mask 0x1f
	green:         5 mask 0x3f
	blue:          0 mask 0x1f
  pict format:
	format id:    0x36
	type:         Direct
	depth:        16
	alpha:         0 mask 0x0
	red:           0 mask 0x1f
	green:         5 mask 0x3f
	blue:         11 mask 0x1f
  pict format:
	format id:    0x37
	type:         Direct
	depth:        16
	alpha:        12 mask 0xf
	red:           8 mask 0xf
	green:         4 mask 0xf
	blue:          0 mask 0xf
  pict format:
	format id:    0x38
	type:         Direct
	depth:        16
	alpha:        12 mask 0xf
	red:           0 mask 0xf
	green:         4 mask 0xf
	blue:          8 mask 0xf
  pict format:
	format id:    0x39
	type:         Direct
	depth:        24
	alpha:         0 mask 0x0
	red:          16 mask 0xff
	green:         8 mask 0xff
	blue:          0 mask 0xff
  pict format:
	format id:    0x3a
	type:         Direct
	depth:        24
	alpha:         0 mask 0x0
	red:           0 mask 0xff
	green:         8 mask 0xff
	blue:         16 mask 0xff
  pict format:
	format id:    0x3b
	type:         Direct
	depth:        24
	alpha:         0 mask 0x0
	red:          12 mask 0x3f
	green:         6 mask 0x3f
	blue:          0 mask 0x3f
  pict format:
	format id:    0x3c
	type:         Direct
	depth:        32
	alpha:         0 mask 0x0
	red:           0 mask 0xff
	green:         8 mask 0xff
	blue:         16 mask 0xff
  Screen formats :
    Screen 0 (sub-pixel order Unknown)
      filters: nearest, bilinear, convolution, fast(nearest),
good(bilinear), best(bilinear)
      visual format:
        visual id:      0x21
        pict format id: 0x28
      visual format:
        visual id:      0x40
        pict format id: 0x27
     depth formats:
       depth           18
       pict format id: 0x28
       pict format id: 0x29
       pict format id: 0x2a
     depth formats:
       depth           1
       pict format id: 0x22
     depth formats:
       depth           4
       pict format id: 0x24
     depth formats:
       depth           8
       pict format id: 0x23
     depth formats:
       depth           15
       pict format id: 0x2b
       pict format id: 0x2c
       pict format id: 0x2d
       pict format id: 0x2e
     depth formats:
       depth           16
       pict format id: 0x2f
       pict format id: 0x30
       pict format id: 0x31
       pict format id: 0x32
       pict format id: 0x33
       pict format id: 0x34
       pict format id: 0x35
       pict format id: 0x36
       pict format id: 0x37
       pict format id: 0x38
     depth formats:
       depth           24
       pict format id: 0x39
       pict format id: 0x3a
       pict format id: 0x3b
     depth formats:
       depth           32
       pict format id: 0x25
       pict format id: 0x26
       pict format id: 0x27
       pict format id: 0x3c


S.


More information about the xorg-devel mailing list