Hidden ATI Feature For Textured XRendering
Phoronix: Hidden ATI Feature For Textured XRendering
Earlier this week we published benchmarks of the XRender extension using NVIDIA's latest beta Linux driver, which had a substantial performance boost thanks to Render improvements with this latest driver. One of the questions that have since come up is how ATI/AMD's binary Linux driver compares when using this X extension. Well, right now, it lags behind NVIDIA, but a Phoronix Forums member has discovered a hidden ATI Linux option that should yield XRender performance gains.
how does the hidden XRender extension affect every-day usability and performance? I plan on turning it on when i get home, but I'm not sure what to look for in terms of benefit.
I get big slowdown in gtkperf benchmark with this option on Mobility Radeon X1700. From 10s to 18s.
Wow - you're right - gtkperf benchmark is much worse with the Textured options on.
fglrx with Textured2D TexturedXrender TexturedVideo on: 151 seconds
fglrx with only XAANoOffscreenPixmaps on: 25 seconds
open source radeon with XAA: 28 seconds
open source radeon with EXA: 65 seconds
The vast bulk of the difference in fglrx tests was the circles test: 123 seconds with Textured options on, 1 second without. Other times were only very slightly slower.
I ran gtkperf with that setting set to true/false/default and it shows no performance difference on my system.
after some more testing i found out a boost i did not see originally and that was the cpu usage in flash actually went down heavily.
Last edited by Dandel; 12-07-2007 at 11:46 AM.
Fglrx CPU usage
I am currently running the 8.42.3 release of the ATI fglrx driver and I am experiencing quite a 2D slowdown. If I remember correctly, it has to do with enabling the compositing extension when not using AIGLX.
Regardless, I wonder if enabling this option will help 2D performance?
I have enabled this option, and it has improved performance tremendously for me. I was previously using the radeon driver, because fglrx didn't give acceptable 2d performance. With this option enabled, most of the issues are gone.
I've noticed gtkperf isn't really a very good indicator of performance, probably because it hammers away at a single operation at a time, rather than the mixed operations common in a normal environment.
It's not nvidia, but it's better than anything for my x1600 I've seen yet.
I'm on a X1300 mobility (Thinkpad T60, Core duo 1.8GhZ), and Textured2D seems to make a huge difference with 7.11. As long as I have benn using 8.41+ , I've experianced noticably degraded 2D performance, especially with everything mozilla. I didn't run any benchmark, but redrawing on desktop switching, drawing of popups etc. is much faster and smoother after activating Textured2D. TexturedXRender degrades the visual quality though (visible e.g. with KDE desktop icons), so I deactivated it again. Still, with Textured2D, my desktop is faster than ever before, and I didn't observe any instabilites so far
It would be interesting to know which hardware people with different results have, I would expect the performance and stability of this option to be very dependend on the GPU type (which most likely also is the reason while it is still undocumented).
I'm on a Radeon 9800 pro with the 7.11 fglrx driver, and enabling the Textured options, slows down everything. Moving windows on my xfce4 desktop (Xubuntu 7.10) for example, is an affront to my eyes. I used 'x11perf -move' to check and got
280000 reps @ 0.0205 msec ( 48700.0/sec): Move window (4 kids)
280000 reps @ 0.0205 msec ( 48800.0/sec): Move window (4 kids)
12000 reps @ 0.4763 msec ( 2100.0/sec): Move window (4 kids)
12000 reps @ 0.4854 msec ( 2060.0/sec): Move window (4 kids)
with Textured options on.
Any other x11perf test approved this mayor slowdown.
I also noticed wrong colors while using midnight commander in a terminal (got yellow and red, instead of blue and white) with Textured options on.
Hoping for a fix in the next release now
Last edited by Marox; 12-12-2007 at 10:25 AM.
The "x11perf -move" test gives interesting results: although the numbers are much lower with textured options on, they don't decrease as significantly as the number of "kids" increases:
without textured options:
1800000 trep @ 0.0148 msec ( 67700.0/sec): Move window (4 kids)
1600000 trep @ 0.0182 msec ( 55000.0/sec): Move window (16 kids)
2500000 trep @ 0.0196 msec ( 51100.0/sec): Move window (25 kids)
1250000 trep @ 0.0241 msec ( 41500.0/sec): Move window (50 kids)
1125000 trep @ 0.0285 msec ( 35100.0/sec): Move window (75 kids)
1000000 trep @ 0.0327 msec ( 30600.0/sec): Move window (100 kids)
600000 trep @ 0.0485 msec ( 20600.0/sec): Move window (200 kids)
with textured options:
60000 trep @ 0.5964 msec ( 1680.0/sec): Move window (4 kids)
48000 trep @ 0.5999 msec ( 1670.0/sec): Move window (16 kids)
50000 trep @ 0.5988 msec ( 1670.0/sec): Move window (25 kids)
50000 trep @ 0.6144 msec ( 1630.0/sec): Move window (50 kids)
75000 trep @ 0.6250 msec ( 1600.0/sec): Move window (75 kids)
40000 trep @ 0.6373 msec ( 1570.0/sec): Move window (100 kids)
40000 trep @ 0.6934 msec ( 1440.0/sec): Move window (200 kids)
(on a radeon 9550SE)
I expect TexturedXrender is only being designed for the newer R500 and R600 cards, where TexturedVideo is already used.
And it's always possible, that for a simple task, getting the CPU to tell the GPU to do it and then wait for the GPU to finish, will take longer than the CPU just doing the task itself.