Announcement

Collapse
No announcement yet.

HD5850 video tearing, almost fixed

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HD5850 video tearing, almost fixed

    I have a two screen setup (LCDs, same model) that's using an HD5850 card and was suffering from tearing (middle of screen) when playing a video (gl) on the secondary screen. The refresh rates for both my screens are set to 60hz.

    I was playing around the xorg.conf settings to try to fix my tearing issue. When I set "DPMS" to "false" for all my monitor settings in xorg.conf, tearing moved all the way up (just an inch from the top of the screen). Now DPMS has something to do with power management. This got me thinking, what if power management has something to do with tearing that I'm suffering from. I read in some forum posts that tearing might be caused by the card overclocking or underclocking from the normal core=400mhz and memory=1000mhz.

    Now, the important part, what commands do I use to ensure that my HD5850 card does not overclock or underclock automatically? I want it to always use 400,1000.

    Here's the output of 'aticonfig --odgc':

    Code:
    jim@foo:~$ sudo aticonfig --odgc --adapter=0
    
    Adapter 0 - ATI Radeon HD 5800 Series 
                                Core (MHz)    Memory (MHz)
               Current Clocks :    725           1000
                 Current Peak :    725           1000
      Configurable Peak Range : [550-775]     [1000-1125]
                     GPU load :    26%
    jim@foo:~$ sudo aticonfig --odgc --adapter=1
    
    Default Adapter - ATI Radeon HD 5800 Series 
                                Core (MHz)    Memory (MHz)
               Current Clocks :    725           1000
                 Current Peak :    725           1000
      Configurable Peak Range : [550-775]     [1000-1125]
                     GPU load :    27%
    As you can see from above, the core is currently clocking at 725mhz. I sometimes see the 'Current Clocks' for the core at 400mhz. How can I force it to only use 400mhz?

    I think I'm close to fixing the tearing issue when playing videos...

    Thank you

  • #2
    Correct me if I'm wrong, but isn't it normal behaviour for the last couple of card generations to work at lower clock speeds for 2d stuff and only ramp up in speed for demanding apps?

    Comment


    • #3
      *sigh 1 minute...*
      Anyway, according to the output of "aticonfig"
      Code:
      Set new Clocks for 0   :  aticonfig --adapter=0 --od-setclocks=770,1126

      Comment


      • #4
        Originally posted by PsynoKhi0 View Post
        *sigh 1 minute...*
        Anyway, according to the output of "aticonfig"
        Code:
        Set new Clocks for 0   :  aticonfig --adapter=0 --od-setclocks=770,1126
        Yeah, but I can't set it to 400. You see from my output, the range for OverDrive starts at 550. If I try to set it to 400:
        Code:
        ERROR - Set clocks failed for Adapter 0 - ATI Radeon HD 5800 Series 
                Please check that input values were valid
        If OverDrive is disabled, the current clock starts at 400. If I play a video, it jumps to 725. I believe these jumps are responsible for tearing. I need to have it just remain at 400mhz.

        Comment


        • #5
          Nope, disabling DPMS did not help. Everytime I restart my PC, the 'tearing line' on my secondary screen moves to another position. It's really strange.

          I tried using an HDMI cable on my secondary screen and it resolved it, but the tearing line now moved to the primary screen. I'm not back to using DVI and tearing is still on my secondary screen.

          Has anyone else experienced this? Any tips?

          My new cleaned-up xorg.conf file:
          Code:
          Section "ServerLayout"
          	Identifier     "aticonfig Layout"
          	Screen      0  "aticonfig-Screen[0]-0" 0 0
          EndSection
          
          Section "Files"
          EndSection
          
          Section "Module"
          	Load  "glx"
          EndSection
          
          Section "ServerFlags"
          	Option	    "Xinerama" "off"
          EndSection
          
          Section "Monitor"
          	Identifier   "DFP3"
          	Option	    "VendorName" "ATI Proprietary Driver"
          	Option	    "ModelName" "Generic Autodetecting Monitor"
          	Option	    "DPMS" "false"
          	Option	    "PreferredMode" "1920x1080"
          	#Option	    "TargetRefresh" "60"
          	Option	    "Position" "0 0"
          	Option	    "Rotate" "normal"
          	Option	    "Disable" "false"
          EndSection
          
          Section "Monitor"
          	Identifier   "DFP4"
          	Option	    "VendorName" "ATI Proprietary Driver"
          	Option	    "ModelName" "Generic Autodetecting Monitor"
          	Option	    "DPMS" "false"
          	Option	    "PreferredMode" "1920x1080"
          	#Option	    "TargetRefresh" "60"
          	Option	    "Position" "1920 0"
          	Option	    "Rotate" "normal"
          	Option	    "Disable" "false"
          EndSection
          
          Section "Device"
          	Identifier  "aticonfig-Device[0]-0"
          	Driver      "fglrx"
          	Option	    "Monitor-DFP3" "DFP3"
          	Option	    "Monitor-DFP4" "DFP4"
          	Option	    "XAANoOffscreenPixmaps" "on"
          	Option	    "TexturedVideo" "on"
          	Option	    "VideoOverlay" "off"
          	Option	    "OpenGLOverlay" "off"
          	BusID       "PCI:2:0:0"
          EndSection
          
          Section "Screen"
          	Identifier "aticonfig-Screen[0]-0"
          	Device     "aticonfig-Device[0]-0"
          	Monitor    "DFP3"
          	DefaultDepth     24
          	SubSection "Display"
          		Viewport   0 0
          		Virtual   3840 3840
          		Depth     24
          	EndSubSection
          EndSection
          
          Section "Extensions"
          	Option	    "Composite" "Enable"
          EndSection

          Comment


          • #6
            an interesting thread on tweaking clocks, etc via aticonfig:

            http://forums.amd.com/forum/messagev...hreadid=109000

            Comment


            • #7
              Thanks. I'm already familiar with the commands in that article. The problem seems that I cannot set the 'Current Peak' to 400. The minimum is 550, while the current clock is 400. This does not make any sense... I can't make it use 400 all the time. Because the Current Peak is 725, whenever I play a video, it jumps from 400 to 725.

              Code:
              Adapter 0 - ATI Radeon HD 5800 Series 
                                          Core (MHz)    Memory (MHz)
                         Current Clocks :    400           1000
                           Current Peak :    725           1000
                Configurable Peak Range : [550-775]     [1000-1125]
                               GPU load :    0%

              Comment


              • #8
                Looks like this is known issue for HD58xx, HD59xx cards. I'm going to have to flash the 5850 BIOS to statically set the clock speeds. I really shouldn't be doing this, seems like a driver bug to me that hasn't yet been fixed.

                Comment


                • #9
                  I've tried several number of bioses with different clock speeds. Flashing the card with these bioses did not resolve my issue. The problems I read about dealt with 'flickering' on the secondary screen and not 'tearing'. Seems like something else is causing tearing on my second screen. Will continue to investigate.

                  Comment

                  Working...
                  X