Horrible Xrender performance in Xorg 1.6.2

Michael macallan at netbsd.org
Wed Jul 1 11:53:04 PDT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

On Jul 1, 2009, at 2:25 PM, Alex Deucher wrote:

> On Wed, Jul 1, 2009 at 2:11 PM, Michael<macallan at netbsd.org> wrote:
>>
>> we ( that's NetBSD ) are in the process of updating our in-tree
>> Xserver from Xorg 1.4.2 to 1.6.* - I noticed some problems when
>> porting my driver for the SGI O2's rendering engine:
>> - - anti-aliased font rendering performance went down the drain. In
>> 1.4.2 I got >160000 characters per second in x11perf -aa10text, now
>> it's down to a mere 8000, just about what I'd expect with pure
>> software rendering. It still goes through the hardware-accelerated
>> composite functions though. What changed here? Also, drawing non- 
>> anti-
>> aliased text is not affected, it's still going at about 400000/s.
>> - - horizontal and vertical lines all of sudden fall back to software
>> instead of using the hardware-accelerated functions. I have no idea
>> why, other lines and other rectangle fills work just as before.
>>
>> The driver uses XAA and we don't have a linear framebuffer which is
>> why falling back to software rendering isn't only slow, it gives
>> completely wrong results. The driver uses its own Composite() handler
>> instead of XAA's in order to catch all whatever-to-vram composite
>> operations - CRIME can accelerate them all and fallback to software
>> has to be prevented. Going through the changes in XAA didn't yield
>> anything that looks related.
>>
>> Any ideas? Somehow I don't think any of this has much to do with the
>> driver or the underlying hardware.
>>
>
> XAA offscreen pixmaps stopped working at some point and as such they
> were disabled.

That shouldn't have any effect on cpu-to-screen composite operations.

>  Not sure if that was pre or post 1.4.x however.

Pixmap cache and offscreen pixmaps work just fine in 1.4.2. I had to  
fix image writes in XAA though - they only used the hardware when you  
provided an upload port, it fell back to software with scanline-based  
uploads.

>  XAA is getting pretty bit-rotten at this point I guess.  All recent  
> accel work as gone into EXA.

... which I can't use without major hassle - this rendering engine  
allows only coordinate-based access, no byte offsets and no variable  
stride.

have fun
Michael

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iQEVAwUBSkuwkMpnzkX8Yg2nAQI2jQgAnaA/23vKSmB0v3GP5zL9uRzoNW/K0jgQ
lXy+oxy2a0hjUg37zHxp9sB+0aLf8OFRZNrySulDJm45eDgpJPDv+KSB0Fudx1Ms
S5pLsaAEUCH517bC1qN/Ix7jd0iPpgiwj9wHVbzjbf3m6DjLUwtHlNKoe90qT0Tb
ih5kJEquwcrNLvitJiwmAd7goQkj7tmOMhMfrhZ+NP8JArJYQFONXmGRUTkXps1O
qtq2R9pJfxqa7aPE7W1DRe4D1TMPx4WGU4YdUCVpg/QhCI65pFyMQurb7F7aDOzt
4iKokO7QObcXHCyEt9hJA5mscuF0iCrK1A2NqkSaZBf8fK3xWN0ppQ==
=n+8A
-----END PGP SIGNATURE-----


More information about the xorg-devel mailing list