[PATCH] Ensure blitter quiescience before reading pixels from the framebuffer

Bernardo Innocenti bernie at codewiz.org
Wed Jul 18 03:01:39 PDT 2007

Daniel Stone wrote:

> You might start by mentioning which driver you're using?

I use r200, in 16bpp.  But, as you can see from the patch, it's
not really driver dependent.

The problem was that we were reading a pixel from a pixmap
without first waiting for the blitter to quiesce.

I've found the very same problem in xf86-video-amd a few days
ago.  Unfortunately, adding locking stalls the pipeline, so it
has a big performance hit.

To avoid this, Ajax came up with an EXA patch to migrate the pixmap
back to system memory when we try to read the top-left pixel.
This is somewhat better, but still wasteful.

Perhaps we should design a way to prevent uploasing 1x1 pixmaps
to the framebuffer altogether.  And we should probably make it
driver dependent, because some drivers, notably r200, really uses
the 1x1 pixmap as a little texture for solid fills.  I'm surprised
r200 doesn't provide a faster way to specify a solid source color.

   // Bernardo Innocenti
 \X/  http://www.codewiz.org/

More information about the xorg mailing list