• Skip to site navigation
  • Skip to content
  • Skip to sidebar
  • Skip to footer
  • Go to archive page
Shadowmaster’s Lair
  • Home
  • Projects
  • Articles
  • About
  • Contact
  • Blog
‹ Previous | Blog index | Next ›

ATI mayhem, Part IX

Monday, March 8, 2010

The last post (minus the hard disk driver crash during preparation for S3 issue) turns out to be a rather embarrassing case of not doing the research, so I deserve a punch from a drm/radeon dev for that. ;)

What I should've done if I were connected to the Internet at the time I decided to start to experiment with KMS again, is reading the instructions from the X.org wiki for properly setting up the drivers with KMS support. It wasn't as trivial as I had expected because of the missing firmware blobs I mentioned the last time.

The problem with firmware

The required firmware blob, R600_rlc.bin, is not completely freely redistributable (more specifically, not modifiable), and isn't included in the vanilla kernel from kernel.org; instead, it must be acquired from the firmware repository.

git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git

Again, this X.org wiki page does a better job of explaining the rest than I could ever hope to.

After sorting out this issue with help from the guys at #radeon, freenode, I produced yet another kernel from my recipe (2.6.33-bluecore251-kms-4), recompiled the radeon DDX with KMS support again and rebooted to the new kernel.

Performance on a RS780

I've read varying results from people trying KMS with ATI R6xx/R7xx chipsets; some achieve just as good performance with KMS compared to UMS and some get slower rendering (maybe they also missed the firmware bit? ;)). In my case, I could notice a mix of both.

EXA and Xv acceleration work about as good as with UMS, bar some border cases such as Firefox 3.5's rendering and scrolling of this very page. Mesa is a different case, and seems to greatly depend on the clients. For example, kwin compositing in OpenGL mode is significantly slower than with UMS. While a build of eduke32 I have can achieve around 100 FPS with high-res textures and models enabled under UMS, it can barely manage around 40 FPS with KMS and OpenGL compositing from kwin, but it gets somewhat better (around 60 FPS) after disabling compositing.

Frogatto manages the maximum of 50 FPS with compositing enabled most of the time, but it occasionally drops performance for less than a second without the FPS counter changing — but as with eduke32, it feels mostly smooth again after disabling compositing.

XRender compositing with kwin isn't exactly better with KMS, and feels substantially slower than OpenGL compositing, just like with UMS. Still, compositing in general seems not to be good for this configuration with KMS.

Despite the slowdown, another consequence of using KMS here appears to be reduced CPU usage from the X server when its clients are relatively idle — CPU usage keeps between 1 and 5% with or without compositing when using KMS, whereas with UMS that can greatly vary between 2% and 30%.

S3 issues?

Apparently, the delay after resuming the laptop from suspend-to-RAM mentioned in the former post was only originated by the driver's requests for missing firmware whenever it needs to reinitialize itself. There's no such delay after installing and linking those blobs and S3 works just fine.

Overlapping windows and OpenGL

One of the things fixed by KMS this time is the impossibility to overlap or minimize Mesa clients without getting an annoying “ghost” flickering on the screen where the window was supposed to be, when kwin composition is enabled in XRender or OpenGL mode.

Production?

While KMS for R6xx/R7xx appears to be very stable at the moment, its performance doesn't seem to be on par with UMS in some configurations yet, although for all I know the bottleneck could be in libdrm or mesa, the DDX, or even kwin, rather than the kernel driver. This was a very nice experiment, and I could be using this driver for production right now if it wasn't for the missing Tux-on-Ice patch and the small degradation of DRI performance. But I think it's really nice to see where this is going (minus the firmware issues though!).

So, back to UMS and my 2.6.32.9-bluecore244-suspend2 kernel for now!

Posted in Hardware, Software at 23:15 UTC | No comments
Trackbacks
Trackback URI
No trackbacks
Comments
Linear | Threaded
No comments
Add Comment
All fields are optional. Your email address won't be publicly displayed.
Standard emoticons like :-) and ;-) are converted to images.
 
 
 
‹ February ’12  
Mo Tu We Th Fr Sa Su
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        
  • Recent posts
  • Archives
  • RSS/XML RSS 1.0
  • RSS/XML RSS 2.0
  • Atom/XML Atom 1.0
  • RSS/XML Comments
Twitter: @shikadilord
  • Okay, that failed spectacularly. Go back to your regular schedule, #Wesnoth forum users.4 days ago
  • Not to alarm you, #Wesnoth people, but I'm going to break your forums for a few seconds!4 days ago
  • Who cares about #Wesnoth 1.10. I'm a developer, I use trunk! http://t.co/upxww27M6 days ago
  • Goodbye, #Wesnoth 1.8!6 days ago
  • I knew I missed something during #Wesnoth 1.9.x. http://t.co/s33x5BUr1 week ago
  • Shadowmaster’s Blog: Wesnoth add-on tests and sanity checking http://t.co/CbUGlI711 week ago
Categories
  • XML Frogatto
  • XML Hardware
  • XML IRC
  • XML freenode
  • XML Miscellaneous
  • XML Personal
  • XML Projects
  • XML Rei 2 IRC Bot
  • XML Wesnoth-TC
  • XML Site updates
  • XML Software
  • XML Web browsers
  • XML Web design
  • XML phpBB
  • XML Wesnoth
  • XML Wesnoth Evolution
  • XML Wesnoth-UMC-Dev
Projects
  • Wesnoth Add-ons
  • Wesnoth-TC/RCX
  • Frogatto levels
  • Rei 2 IRC Bot
  • Wesnoth-UMC-Dev Registry
  • Shikadibot 0314
  • phpBB 3.0 Mods/Hacks
Articles
  • Wesnoth Evolution
Links
  • Battle for Wesnoth
  • Wesnoth-UMC-Dev
  • Frogatto & Friends
Contact • Site Information & Disclaimer

Copyright © 2006-2012 by Ignacio R. Morelle. All rights reserved.
Powered by Poison Ivy/Dorset6 D9 and Serendipity.
Hosting provided by rewound.net and NearlyFreeSpeech.NET.

Serendipity PHP Weblog Valid XHTML 1.0 Transitional