tech-x11 archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
DirectColor colourmaps don't work?
I'm seeing something on 5.2 that looks like DirectColor colourmaps
simply not working - but on only some framebuffers. I'm wondering if
anyone still sees it with more recent servers, and/or recalls any fixes
for such a thing. I do have reason to think at least one acquaintance
of mine sees the same misbehaviour on a Linux machine, leading me to
suspect it may be relatively widespread and quite possibly still
extant.
On my problematic test machine, xdpyinfo reports a whole bunch of
DirectColor visuals which all look like
visual:
visual id: 0xda
class: DirectColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff0000, 0xff00, 0xff
significant bits in color specification: 8 bits
except the visual IDs run from 0xda through 0xf9 (I don't know whether
those specific numbers have any significance). Installing a colourmap
belonging to one of these visuals appears to do nothing, despite the
presence of a window using that visual and that colourmap visible on
the display.
On my other test machine, with a bit-identical server (built from
identical source trees) and different hardware (DirectColor visual IDs
running from 0xfe through 0x11c), it works as I would expect.
I'm not sure what information would be most useful to report. The
Xorg.0.log files from the two servers, and my test program, are on
ftp.rodents-montreal.org, in /mouse/misc/DirectColor-bug/, under the
names Xorg.0.log.broken, Xorg.0.log.works, and test.c. The program
puts up a window 300x100+100+100; on a correctly working server, the
left third is red, the middle third green, and the right third blue;
depending on the server and settings, other windows, if any, may or may
not go technicolour. On a broken server, in my experience, whatever
colourmap was previously installed gets used instead, which in my tests
makes the window entirely greyscale (probably because it's a TrueColor
colourmap and my pixel values have all three subfields equal). test.c
must be compiled with VISUAL_ID defined to the visual ID you want to
test (as in -DVISUAL_ID=0xda for the above-quoted visual), and it
blindly assumes your visual's red, green, and blue masks are ff0000,
00ff00, and 0000ff (I think it doesn't care what order they're in; both
my test servers report the values in the 0xda example above). It must
be run against a server without a window manager running, or with the
window manager told to let clients do colourmap installation - the test
program does its own colourmap installation.
I can of course provide more details if anyone can tell me what
information would be useful.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse%rodents-montreal.org@localhost
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index