From: Roland S. <rsc...@hi...> - 2005-02-11 14:48:03
|
Roland Scheidegger wrote: > Alex Deucher wrote: > >>> And now the really interesting thing: >>> The results marked with 1) are obtained BEFORE running fglrx, the result >>> marked with 2) AFTER running fglrx, i.e. when I did not reboot between >>> running the fglrx driver and the radeon driver (which in the past lead >>> to lockups, but driver switching now seems to work fine, in both >>> directions). This was a completely repeatable effect, I even figured out >>> that starting the X server with fglrx is not enough, but a simple >>> glxinfo when it's running triggers it. >>> Any ideas what's causing this? Maybe fglrx reconfigures the card's >>> caches or something like that? It would be nice if we could get that >>> additional 10-15% performance, especially if it is as simple as writing >>> a single register... >> >> >> >> compare a reg dump (script from Hui): >> http://www.botchco.com/alex/radeon/mergedfb/cvs/DRI/hy0/radeon_dump.tgz > > > Sounds like a good idea. There are quite some differences, though I > couldn't see any obvious reason (e.g. just checking out some registers). > If someone wants to take a look I've uploaded the dumps here: > http://homepage.hispeed.ch/rscheidegger/dri_experimental/r200_dumps.tar.gz > > dump 1 is taken within radeon driver, after running glxgears. > dump 2 is taken within fglrx driver, after startup > dump 3 is taken within fglrx driver, after glxinfo > dump 4 is taken within radeon driver, after startup > dump 5 is taken within radeon driver, after glxgears > > All of course in chronological order... Ok, some manual multi-diff compare and some minimal testing (thankfully radeon_dump can easily be used to write registers too for increased fun!) the guilty turned up pretty quickly. The boost_performance register is 0x2cf8, this turns out to be 0 for the open-source driver (it never writes to it as far as I can tell), but fglrx writes 0x17 to it. Writing 0x17 to that increases performance to the exact same level as does starting fglrx before the open source driver. Of course this register is nowhere to be documented in the various radeon_reg.h files. It may cause other things than just boost performance... And I have no idea if this is specific to rv250, the r200 chip family or even other radeons. Roland |