No announcement yet.

ATI Radeon HD6970 (Cayman) power saving doesn't work with open source radeon driver

  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by bug77 View Post
    I don't think this is an open-source or even an AMD specific problem. As far as I know, all drivers run the cards at full power when several monitors are attached.
    The idle states are different, for barts at least. On my card, engine clocks for single head is 100Mhz, dual head 300Mhz, and eyefinity 600Mhz. The mid and high states are always the same though, at 775Mhz and 900Mhz.
    This is because power state changes are synced to v-blank, so when there are several monitors installed, there is no single v-blank you can use for reference.
    It is varied under Windows, and I don't notice a flicker on the secondary when it changes. Pretty sure I read elsewhere that ATI have a more direct way to manage the power states though. Regardless, the linux driver doesn't seem able to do it within v-blank anyway.


    • #17
      Originally posted by 89c51 View Post

      Loongson = Underpowered chip for which you still need a GPU. (ATI nVidia)

      ARM = Underpowered chip for which you still need a GPU. (bonus closed drivers for every GPU related to ARM)

      Intel = Buggy firmware mobos for which they don't give a fuck about linux. They don't support it. (+ GPUS not on par with AMD nVidia)

      Hi you know what? The thread was death for days until I posted the "lolwut?" stuff.
      Then the thread awake and moves forward...

      Sometimes some tropics need a kick-starter.


      • #18
        The thread has constantly seen several productive posts per day despite your childish attempts to derail it.
        Last edited by chithanh; 10-01-2012, 10:29 PM.


        • #19
          [    0.790577] [drm] Internal thermal controller with fan control
          [    0.790678] [drm:radeon_pm_print_states], 4 Power State(s)
          [    0.790679] [drm:radeon_pm_print_states], State 0: Default
          [    0.790680] [drm:radeon_pm_print_states],    Default
          [    0.790681] [drm:radeon_pm_print_states], 
          [    0.790682]  16 PCIE Lanes
          [    0.790767] [drm:radeon_pm_print_states],    3 Clock Mode(s)
          [    0.790767] [drm:radeon_pm_print_states],            0 e: 800000     m: 1250000      v: 1175 No display only
          [    0.790769] [drm:radeon_pm_print_states],            1 e: 800000     m: 1250000      v: 1175
          [    0.790770] [drm:radeon_pm_print_states],            2 e: 800000     m: 1250000      v: 1175
          [    0.790771] [drm:radeon_pm_print_states], State 1: Performance
          [    0.790772] [drm:radeon_pm_print_states],    16 PCIE Lanes
          [    0.790773] [drm:radeon_pm_print_states],    3 Clock Mode(s)
          [    0.790774] [drm:radeon_pm_print_states],            0 e: 250000     m: 150000       v: 900  No display only
          [    0.790775] [drm:radeon_pm_print_states],            1 e: 500000     m: 1250000      v: 1000
          [    0.790776] [drm:radeon_pm_print_states],            2 e: 870000     m: 1250000      v: 1175
          [    0.790777] [drm:radeon_pm_print_states], State 2: Default
          [    0.790778] [drm:radeon_pm_print_states],    16 PCIE Lanes
          [    0.790779] [drm:radeon_pm_print_states],    3 Clock Mode(s)
          [    0.790780] [drm:radeon_pm_print_states],            0 e: 500000     m: 1250000      v: 1000 No display only
          [    0.790781] [drm:radeon_pm_print_states],            1 e: 500000     m: 1250000      v: 1000
          [    0.790782] [drm:radeon_pm_print_states],            2 e: 870000     m: 1250000      v: 1175
          [    0.790783] [drm:radeon_pm_print_states], State 3: Default
          [    0.790784] [drm:radeon_pm_print_states],    16 PCIE Lanes
          [    0.790785] [drm:radeon_pm_print_states],    3 Clock Mode(s)
          [    0.790786] [drm:radeon_pm_print_states],            0 e: 500000     m: 1250000      v: 1000 No display only
          [    0.790787] [drm:radeon_pm_print_states],            1 e: 500000     m: 1250000      v: 1000
          [    0.790788] [drm:radeon_pm_print_states],            2 e: 870000     m: 1250000      v: 1175
          [    0.791822] [drm] radeon: power management initialized
          My kernel is custom modified to always force single monitor power mode so the GPU sits at 250000 / 150000 (State 1: Performance, 0 Clock Mode) all day long with no issues with dual displays. The windows driver isn't much better, by default it is always at 870000/1250000 and occasionally it will drop down to 450000 / 1250000 which doesn't even exist in the power play tables.


          • #20
            The Cayman is weird. I don't think the 3rd and 4th power states are for dual head idle like they are on the Barts, because that would mean it would idle higher than a less powerful card. I suspect it doesn't need to change away from the performance mode at all for multiple screens, and maybe the other modes are idle and mid during gaming.

            It'd be useful to see what it does in windows in dual head mode. Something like amd overdrive will show it mode switching if you move some windows around.
            Last edited by c0ld; 10-02-2012, 05:16 AM.


            • #21
              The Cayman cards use PowerTune (rather than PowerPlay) like the HD7000 series cards. I suppose the power tables are there for backwards compatibility.


              • #22
                Originally posted by Agent20 View Post
                The Cayman cards use PowerTune (rather than PowerPlay) like the HD7000 series cards. I suppose the power tables are there for backwards compatibility.
                I guess that explains it.

                Mr Duecher has now gone off on a bit of a tangent with this bug, throwing out the safe profiles and messing about with the clocks and voltages independently. Not really interested in trashing my card, so I'm off to catalyst again. Good luck all.


                • #23
                  Having done some more reading on PowerTune it seems it is not as different to PowerPlay as I first thought.

                  Basically it uses the same power tables as before, it is just that when in the highest power state the card hardware can automatically start to lower the engine clock when reaching the thermal limit, rather than jumping all the way back down to the next lowest power state from the table. This keeps performance higher and also allows the highest power state to have a higher engine clock value.

                  Newer HD7000 cards have introduced a boost feature, this is a new power state (with higher engine clock and voltage) that can be used temporarily.


                  • #24
                    You won't get anything as sophisticated as that, not as long as AMD have guys controlling the open source driver. The code is horrible, and based on what I've seen, that's intentional. The alternative is sheer incompetence.


                    • #25
                      In case you missed it, it's open source. Where can we clone your improved fork from? You know, the one not controlled by AMD?