Pixel loss using certain X servers

Some X servers of the XFree3.1.x family have a problem when using XCopyPlane() calls in conjunction with clipmasks. The symptoms are that random pixels are lost at the right edges of individual bricks, like shown in the picture below.

pixel loss example The brick in the left half of the picture shows the correct image, while the right brick has several places with missing pixels (marked with black arrows). If you're using an 8-bit display for your Web browser, dithering will probably mask off the pixel loss effects here. Try loading the picture into a separate .gif viewer in that case.

If your server has this problem, your mileage may vary in respect to the badness of the problem. E.g., on my Cirrus 5424 graphics card, which was used to produce the example from the picture above, the problem is hardly noticeable at all. On the other hand, I've seen a Mach64 card drop almost 1/4 of the 4x2 brick, which was very annoying :-(

BriCad probes the X server at startup to find out if your X server has this problem, and will print a warning like this to the text console:

********************************************************
* Yikes! Broken X server...                            *
* Your X server  has a broken  XCopyPlane() function ! *
* This  problem  is  known  for  some  servers  of the *
* XFree(tm)  3.1.x  series.  You  can  continue  using *
* BriCad with this server, but graphics dropouts, e.g. *
* missing  pixels  at  the  right  edges of individual *
* bricks, are likely to appear.                        *
* Please do _not_ send bug reports about such graphics *
* problems  to  the  BriCad  author, since he can't do *
* anything about this.                                 *
* Newer  betas  of XFree(tm) appear to be more stable, *
* e.g.  release  3.1.2E  seems  to  be okay for Mach64 *
* cards, but is still lacking in the SVGA version.     *
* You  might want to check out the XFree86 Homepage at *
* http://www.XFree86.org/ for a more recent server.    *
********************************************************

Unfortunately, BriCad can't do anything against this problem, since working around it would degrade performance by at last an order of magnitude.
The only viable solution at the moment is using an older XFree2.1 server or a commercial server (make sure that it does not have the same problem before buying it). You might also visit the XFree86 projects homepage to see if there is a newer XFree version for your graphics card without the pixel loss problem.

If you're interested in investigating the X server problem by yourself, here's the C source for a small program demonstrating the Xlib calls in question.

Go back to the system requirements section of the user's manual.


This site is not sponsored, authorized or endorsed by the LEGO group of companies.
Copyright 1996 Carsten Gnörlich. Last change: 08.07.96