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 18.104.22.1682 (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
Created attachment 33279 [details]
Created attachment 33280 [details]
Created attachment 33281 [details] [review]
xorg log 2.6.33-rc6
Created attachment 33282 [details] [review]
xorg log 2.6.33-rc7
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).
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.
Alex, thank you very much for the pointer. I will test that. Does this mean that this firmware is only needed when using KMS ?
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:
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:
The RLC firmware is required for the interrupt controller which is only used by KMS, so it's only required for KMS.