Bug 21611

Summary: radeon driver should fall back to XAA when DRI is non-functional as EXA requires DRI
Product: xorg Reporter: Peter Van Eynde <pvaneynd>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED WONTFIX QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium Keywords: regression
Version: git   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log and benchmark results in different setups with git HEAD (broken) and 6.12.2 (working) none

Description Peter Van Eynde 2009-05-06 23:22:55 UTC
Created attachment 25583 [details]
Xorg.0.log and benchmark results in different setups with git HEAD (broken) and 6.12.2 (working)

Hello,

I noticed a massive performance slow down recently. As an example I went from:

8000 reps @   0.8995 msec (  1110.0/sec): PutImage XY 100x100 square

to

  20 reps @ 257.8685 msec (     3.9/sec): PutImage XY 100x100 square

git bisect isolated this commit, but the story is not /that/ easy.

When running git HEAD with a default config I see in the logs:

(EE) RADEON(0): Static buffer allocation failed.  Disabling DRI.

Then I get slow performance with EXA and UXA acceleration. The situation is normal with XAA acceleration.

Thinking that the problem might be that DRI is failing I fixed my 'Virtual' setting in xorg.conf and now DRI is working  again. However EXA acceleration is still slow. XAA acceleration is still fast.

So the problem is related to the DRI but failing DRI is not the only cause. For some reason past 2c8e130f73c680d4a7381b2ef37982b82c6ee478 EXA and UXA seems always slow, but I need to confirm this again (I did all tests with 1 screen and the working DRI tests with 2 screens attached).

I've attached the outputs for the situation with the broken DRI for git HEAD and for 6.12.2 (working).

If you want I can give you the same results with DRI fixed...

Best regards, Peter
Comment 1 Alex Deucher 2009-05-06 23:43:52 UTC
UXA is an intel only acceleration architecture, it's not applicable to radeon.
Comment 2 Michel Dänzer 2009-05-06 23:47:04 UTC
First of all, there's no such thing as UXA in this driver... I assume when you tried that it just fell back to the default EXA.

I don't think any kind of modern application uses PutImage XY operations, so that benchmark probably isn't representative of your problem. What kind of actual applications / operations are slow? Does using a compositing manager help, even just xcompmgr -a?

Looking at the logs I suspect the main problem is that the EXA offscreen memory area is small. Do you really need such a large max desktop size?

(I also notice that video RAM seems to be reserved for the GART table and textures when the DRI is disabled, even though they aren't needed in that case. We should fix this, but in general performance is expected to be better with DRI enabled)
Comment 3 Peter Van Eynde 2009-05-07 05:30:07 UTC
I am running KDE 4.2.2 and I was noticing very large delays in changing tabs in konsole. Switching from one console to another would take upto 2 seconds. Which was not what I wanted.

The large desktop size was because my (big) external screen can be rotated and I wanted to have a 'Virtual' to accommodate both orientations.

Using KDE in Xrender 'enhanced' mode did not seem to improve the situation, but I have done no timing tests.

I will test if xcompmgr improved the problem. What 'modern' benchmarking tool do you suggest to use?

And I did not complain that the performance is slower without DRI, but that after the commit the performance is _really_ slow.

Comment 4 Michel Dänzer 2009-05-08 03:19:45 UTC
(In reply to comment #3)
> I am running KDE 4.2.2 and I was noticing very large delays in changing tabs in
> konsole. Switching from one console to another would take upto 2 seconds. Which
> was not what I wanted.

FWIW, this may be fixed or at least better with EXA (and with the DRI enabled, so there is RENDER acceleration) from xserver Git, which will become the 1.7 release.

> What 'modern' benchmarking tool do you suggest to use?

Real-world use cases are preferable over artificial benchmarks.

> And I did not complain that the performance is slower without DRI, but that
> after the commit the performance is _really_ slow.

Understood, what I'm saying is that the DRI is required for best performance with EXA. (Maybe we should still default to XAA without DRI)
Comment 5 Peter Van Eynde 2009-05-12 02:43:31 UTC
>Understood, what I'm saying is that the DRI is required for best performance
>with EXA. (Maybe we should still default to XAA without DRI)

Indeed that seems to be the root cause for the behaviour that I've seen.

I've retitled the bug to this effect.

Incidentally, with DRI+EXA KDE is now nice and fast :-)
Comment 6 Michel Dänzer 2009-05-12 07:21:10 UTC
Another possibility might be to enable the CP even when there isn't enough video RAM for direct rendering clients...
Comment 7 martin 2009-05-17 04:27:27 UTC
Phoronix Test Suite is a pretty nice benchmarking tool because it tests with real world apps but still has some nice "testing aspects" compare to just launching the games directly (it runs the tests several times to iron out noise and it also runs the exact same level / player movement every time making the test more repeatable).
Comment 8 Corbin Simpson 2010-03-26 18:45:26 UTC
Closing as WONTFIX; XAA is too far gone these days. If EXA does not work, file a new bug or attach yourself to an existing bug matching your issues.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.