Log in

29 April 2007 @ 12:29 pm
New Dumping Tool HOWTO  
Jerome Glisse (glisse) has been hacking lately on his radeondump tool. It can be used to easily dump indexed registers[1] of a Radeon card. He developed it on a Mac G5 and wanted to see how it works for other users. Yesterday he asked Oliver McFadden (z3ro) on IRC if he could create dumps from fglrx and r300. Currently running it isn't easy for an "end user" but if you want to, do the following:

  • Get libpciaccess and do the normal ./configure && make && make install with it. Depending on you distribution (i.e. gentoo) you might want to run make install --prefix=/usr to install it.

  • Get radeondump and compile it using cmake . and after that finished run make.

That will give you 2 tools:

  1. radeondump: The tool to dump registers

  2. dcomp: The tool to compare dumps

Now you are ready to go. To get reproducible and sane results, you need to run the tool multiple times. In software testing it's a good habit to remember the test procedure. Since that tool needs many different dumps (at least 5) to eliminate useless registers, a recommend procedure would look like:

  • cold boot your system

  • load fglrx

  • dump registers using: radeondump -d fglrx (Note: Your screen might flicker and the system might hang. Be careful!)

  • start X

  • dump registers

  • switch to terminal by pressing ALT CTRL F1

  • dump registers

  • switch back to X by pressing ALT CTRL F7

  • dump

  • start glxgears and stop it

  • dump

  • run tuxracer, play a few seconds, quit

  • dump

  • run quake 3 demo, play a few seconds, quit

  • dump

  • run browser, quit

  • dump

  • run java application, quit

  • dump

Wider variety of applications might improve the dumps. Now you should repeat that test in the same order for R300 from mesa git. The only difference should be that you load radeon instead of fglrx and that you use radeondump -d r300.

Once you are done with that, you got several fglrx-id-number and r300-id-number files. In the same directory run dcomp r300 fglrx (the order of arguments is important). Now you got a file names fglrx_r300.diff. This file might look like complete none-sense to you, but for others it holds valuable information. Jerome Glisse (glisse) might be interested in that file or if the tool failed for you. Please ask on IRC if someone wants to take a look at that file. Oliver McFadden (z3ro) uploaded an example file.

[1]: Jerome Glisse (glisse) explained that index registers cannot be accessed directly. You got to write the address of the register to a special register. The hardware than enables access to that register and you can read it. This must be done for reading and writing these registers.
(Anonymous) on April 29th, 2007 08:19 pm (UTC)
R580 support
Is there any use trying this with an X1950 pro card? (obviously without the diff as r300 will not run...)

there is no mesa support for these cards, so would this be useful to you?
tirdctirdc on April 30th, 2007 09:13 am (UTC)
Re: R580 support
Sadly there is no R5xx support yet (but work is going on in this area). The tool radeondump currently has the focus on R3xx and R4xx chips and their differences between fglrx and r300.
The person who wrote this tool is currently working on R500 support, so I guess he already used it on that chip. Feel free to ask on IRC if anyone would need such a dump.