I wanted to document how I finally managed to get the control over my 6950 that I've been missing ever since upgrading from a 4890.
I used to be able to use RivaTuner with 4890 config file to downclock and undervolt the 4890 so that it ran quietly and cool when I didn't need it, but then switched up to it's default speeds when I was playing a game, etc. Until now I hadn't been able to do similar for the 6950, whether using Sapphire's TriXX or MSI Afterburner. With AB I could overclock but not underclock, with TriXX I could underclock the core but not the memory. I couldn't undervolt on either. I confirmed that neither was working by using GPU-Z, which showed that even though the values for the clocks changed on the "Graphics Card" tab, on the "Sensors" tab the values didn't. To make matters worse, one of the fans on the card will sometimes run at a different (much higher) speed than the other, despite the fact that they share a single fan header... very frustrating!
After giving up on the whole idea mid last year, I just recently came across the following method of underclocking and undervolting my Sapphire 6950 2GB [Dirt 3 version, if that matters - it's a non reference design]. I followed the method described by SickClown42012 over on the [H]ardforums:
You can change the memory speed without flashing the BIOS. Use CCC to create a profile that'll allow you to edit the idle, middle, and high clockspeeds. You can run the memory as low as 600Mhz without issue.
Open up CCC and make sure it's in the "Standard View" and enable Overdrive. Then go to "Presets" and add one. After that, go to C\Users\*yourusername*\AppData\Local\ATI\ACE\Profiles". There should be a file with the name of the preset you just created. Open it with notepad. Scroll down to a line that reads "<Feature name="MemoryClockTarget_0">" and change the values to something of your liking. Save and exit. Now right click on the CCC icon in your taskbar and invoke the preset.
You'll have to manually invoke it after every reboot and driver installation.
I'll expand on that method:
Firstly, I've got CCC 12.8 set to 'Advanced' mode, so 'Presets' is the second button on the left when I open it up; I clicked it and added 2 presets, calling one 'GPU High' and the other 'GPU Low'. I added a tooltip for each, but it only shows up in the CCC window and not under the taskbar icon. I added a hotkey combo for each, by selecting the 'Alt+Ctrl' combo from the drop down box and entering '0' in the box below for the low speed preset and '1' for the high.
I found the presets in the same location mentioned and opened the low speed one in Notepad. The parts I wanted to change were under "<Group name="Overdrive5">", almost at the top of the file. Under '<Feature name="CoreClockTarget_ ..." ', I noticed that there were 3 preset levels for core clock; I made all of the '<Property name="Want_x" ' values equal to the lowest one, which in my case was 25000. This corresponds to a core clock of 250MHz.
Similarly for '<Feature name="MemoryClockTarget_..." ', I changed all 3 of the values to 15000, which corresponds to a memory clock of 150MHz
Finally for '<Feature name="CoreVoltageTarget_ ..." ', I changed all 3 of the values to 800, which should correspond to a core voltage (VDDC) of 0.8V. This bit only partially works; VDDC changed down to 0.98V and mostly stays there, switching up to 1.1V (stock VDDC) for short periods every now and then.
I left all the other sections as they were. I have TriXX handling a custom fan profile, which works well.
So now, when I want to play a game I hit Alt+Ctrl+1 and go back to the card's stock behaviour - no changes. When I don't need the card, eg when I'm reading forums, I hit Alt+Ctrl+0 to stick the card in a low power mode. Temps stay low, fans stay slow and I stay calm
I hope this can be of use to someone else as well.