[PATCH] Ensure blitter quiescience before reading pixels from the framebuffer
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
More information about the xorg