Bug 26558 - KMS Kills 3D performance with Linux-2.6.33>rc6
Summary: KMS Kills 3D performance with Linux-2.6.33>rc6
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Radeon (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL: http://www.phoronix.com/forums/showth...
Depends on:
Reported: 2010-02-13 11:31 UTC by Leo Milano
Modified: 2010-02-13 14:35 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

dmesg, 2.6.33-rc6 (45.95 KB, text/plain)
2010-02-13 11:32 UTC, Leo Milano
no flags Details
dmesg, 2.6.33-rc7 (48.10 KB, text/plain)
2010-02-13 11:33 UTC, Leo Milano
no flags Details
xorg log 2.6.33-rc6 (68.58 KB, patch)
2010-02-13 11:34 UTC, Leo Milano
no flags Details | Splinter Review
xorg log 2.6.33-rc7 (39.47 KB, patch)
2010-02-13 11:35 UTC, Leo Milano
no flags Details | Splinter Review

Description Leo Milano 2010-02-13 11:31:15 UTC
I am testing the Radeon open source stack with the Kubuntu Lucid (10.04) current packages. Up to 2.6.33rc6, 3D performance has been good (3D games would be playable). Starting with rc7, 3D performance is gone: 3D games get less than a frame per second, even scrolling the mouse pointer is painfully slow. 

It appears that KMS was not working up until rc6, and it started working in rc7. Disabling KMS in rc7 or rc8 solves the performance issue. This could be a kernel regression, or a problem with KMS in my graphics stack. I'll post more detailed info below.


Display Server: X.Org Server (1.7.4 RC 2)
Display Driver: radeon 6.12.99
Kernel: 2.6.33rc7 64bit (from Ubuntu's mainline ppa)


Radeon HD 3450
AMD Phenom X3
Comment 1 Leo Milano 2010-02-13 11:32:42 UTC
Created attachment 33279 [details]
dmesg, 2.6.33-rc6
Comment 2 Leo Milano 2010-02-13 11:33:20 UTC
Created attachment 33280 [details]
dmesg, 2.6.33-rc7
Comment 3 Leo Milano 2010-02-13 11:34:26 UTC
Created attachment 33281 [details] [review]
xorg log 2.6.33-rc6
Comment 4 Leo Milano 2010-02-13 11:35:22 UTC
Created attachment 33282 [details] [review]
xorg log 2.6.33-rc7
Comment 5 Leo Milano 2010-02-13 11:43:04 UTC
Not the following line in the xorg log when I boot with rc6: 
(II) [KMS] drm report modesetting isn't supported.

In contrast, with rc7 I get this:
(II) [KMS] Kernel modesetting enabled.

As indicated in the bug report summary, if I add nomodeset and radeon.modeset=0 as a command line option, 3D performance with rc7 is the same as with rc6 (quite acceptable). 
Comment 6 Alex Deucher 2010-02-13 12:03:46 UTC
Performance is slow because acceleration is disabled.  You need to install the rlc firmware:

[   38.055612] r600_cp: Failed to load firmware "radeon/R600_rlc.bin"
[   38.055661] [drm:r600_startup] *ERROR* Failed to load firmware!

You can get it here:

Put it in /lib/firmware/radeon or where ever your distro stores firmware.
Comment 7 Leo Milano 2010-02-13 12:18:58 UTC
Alex, thank you very much for the pointer. I will test that. Does this mean that this firmware is only needed when using KMS ?
Comment 8 Leo Milano 2010-02-13 13:02:07 UTC
Thank you again, Alex, and sorry for reporting a non-bug.

For the record, and for the benefit of other people: the location for the firmware in Ubuntu is: 


For example:

leo@grisell:/lib/firmware/2.6.33-020633rc8-generic/radeon$ ls
R100_cp.bin  R300_cp.bin  R520_cp.bin  R600_pfp.bin  R700_rlc.bin  RS690_cp.bin  RS780_pfp.bin  RV610_pfp.bin  RV620_pfp.bin  RV630_pfp.bin  RV635_pfp.bin  RV670_pfp.bin  RV710_pfp.bin  RV730_pfp.bin  RV770_pfp.bin
R200_cp.bin  R420_cp.bin  R600_me.bin  R600_rlc.bin  RS600_cp.bin  RS780_me.bin  RV610_me.bin   RV620_me.bin   RV630_me.bin   RV635_me.bin   RV670_me.bin   RV710_me.bin   RV730_me.bin   RV770_me.bin

Note that the Rxxxx_rlc.bin seem to be only required when using KMS, and are not currently provided with the kernel mainline ppa (all the other ones are). Also: performance seems to be better without KMS these days -- I get about 16 fps in WoP without KMS, and 20 with KMS, please see here:

Comment 9 Alex Deucher 2010-02-13 14:35:13 UTC
The RLC firmware is required for the interrupt controller which is only used by KMS, so it's only required for KMS.

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.