Sunday, 18 November 2007

For fglrx using people having idle overheating problems and eco friendly people...

While reading radeonhd dev mailing list I stumbled upon a link to a modified version of radeontool that enables setting power saving registers on new radeon adapters. I've tested it with my Radeon 1950Pro, and sure enough, the card is much cooler when idle (about the same as in Windows).

This version changes a couple of settings in the CLKIND power saving registers of which I believe that the "Auto disable unused pipes' clk" (DYN_SCLK_PWMEN_PIPE in ATI documentation) bit is the most important . When running "./radeontool power low" my glx performance falls from about 12000 FPS to 7000FPS. I've changed the modified radeontool to only enable the 'Auto disable unused pipes clk" power saving bit, and the performance of glxgears came back to 12k FPS level, while retaining a cool device.

So I've put the radeontool binary in my /usr/local/sbin, did a chown root:root radeontool, and chmod +s radeontool, and made gnome to issue "radeontool power low" command when starting up to workaround the bug in the current fglrx driver.

Radeon tool commands:
radeontool power status - show the current status of the power saving registers
radeontool power low - enable power saving


I still don't know how to read the temperature sensor data from the card and if anybody knows the relevant registers or other way to access this info, please tell. I used Windows freshly booted after linux and my own fingers to see the temperature differences.

Temperature without using radeontool: 50 C
Temperature after using radeontool: 40-41 C

Link to the radeon hd mailing list:
http://lists.opensuse.org/radeonhd

Link to the discussion:
http://lists.opensuse.org/radeonhd/2.../msg00069.html

Direct link to the original modified radeon tool:
http://www.g2inf.one.pl/~anszom/MBP-ATI/

My modified version that only turns on disabling of the unused pipes is here EDIT updated version:
http://bljak.org/~vedran/radeontool-1.5-qq-vr3.tar.gz


Old version:
http://nskunca.pbf.hr/~vedran/ati/radontool.tar.gz

Relevant documentation from ATI:
http://www.x.org/docs/AMD/RRG-216M56-03oOEM.pdf

18 comments:

  1. it doesn't seem to work with my HD2600XT. after i make power low and then power status it says that lower power mode is off.

    ReplyDelete
  2. It certainly doesn't work on an X1300 PRO, since running "radeontool power low" immediately freezes the whole system (video turns off, kernel unresposive and not syncing disks, etc.).

    ReplyDelete
  3. I'm really not sure about models other than the one I have. I would appreciate any patches or feedback on other models. Please do try to post the temperature on linux vs temperature under windows.

    ReplyDelete
  4. Fglrx is more than 8 degrees C hotter than ATI's Windows driver.

    ReplyDelete
  5. my question might look a little stupid, but how can i measure the gpu temperature on linux?

    ReplyDelete
  6. Thanks a lot for this, prevented me from going back to windows...

    ReplyDelete
  7. Where can I find your modified version?
    Because http://nskunca.pbf.hr/~vedran/ati/radeontool-1.5-qq-vr2.tar.gz seems to be down.

    ReplyDelete
  8. http://bljak.org/~vedran/radeontool-1.5-qq-vr3.tar.gz is the new location.
    page updated, thanks for reminding me

    ReplyDelete
  9. uhm... power low doesn't work.

    sudo radeontool power low

    ... prints usage.

    ReplyDelete
  10. maybe you're hitting the distro version

    try sudo ./radeontool power low when you're in the directory of my archive

    ReplyDelete
  11. hi vedran, i downloaded your file and extracted it to Desktop
    then i went there with terminal and typed sudo ./radeontool power low

    it worked but next time when i restard my computer and check it then it already back like this
    sudo ./radeontool power status
    Dynamic clock mode: single block
    Static screen enable: OFF
    Client power enable: OFF
    Lower power mode: OFF
    Static screen mode: OFF
    Disable unused clk: OFF

    so everytime i restart my computer i will have to type that code again. is there a way to make power low default ?

    ReplyDelete
  12. hi, you can put the command /locationofthebinary/radeontool power low in /etc/rc.local to start it up every time on boot. replace locationofthebinary with the location of the radeontool binary file

    ReplyDelete
  13. which binary do you mean ?
    yours or the one (radeontool) in /usr/sbin ?

    if yours then how can i compile it ?
    i tried .configure make makeinstall but it didnt work

    ReplyDelete
  14. archive already contains a binary, just use cp to copy it where you want it to be installed

    ReplyDelete
  15. thank you very much ^^
    you are my savior, now i can stay and rest in the heaven (linux) and dont have to go back to hell (XP/Vista)

    hurraa ^^
    thank you^^

    ReplyDelete
  16. is there still work going on? What about newer chips, like the RS780? I heard powersaving get's harder with that...

    ReplyDelete
  17. I think that the opensource driver still doesn't do powersaving on 7xx, but when I use fglrx on rv670 (I think that it has the same power saving architecture as the 7xx), it uses power saving.

    ReplyDelete
  18. Hi! Are you still working on this? I have a suggestion for one step further: hack the bios so that the default powerstate is the lowest powerstate. Then the computer wouldn't get hot even during installation/live distribution use phases. I have tried to look for a bios editor that would work with my X1600 mobility, but with no luck so now I try to hunt projects and knowledgeable people that are close to my goals.

    ReplyDelete