Results 1 to 9 of 9

Thread: HD5850 video tearing, almost fixed

  1. #1
    Join Date
    Jun 2010
    Posts
    61

    Default 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. #2
    Join Date
    Feb 2010
    Posts
    519

    Default

    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?

  3. #3
    Join Date
    Feb 2010
    Posts
    519

    Default

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

  4. #4
    Join Date
    Jun 2010
    Posts
    61

    Default

    Quote 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.

  5. #5
    Join Date
    Jun 2010
    Posts
    61

    Default

    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

  6. #6
    Join Date
    Jan 2009
    Location
    Vienna, Austria; Germany; hello world :)
    Posts
    620

    Default

    an interesting thread on tweaking clocks, etc via aticonfig:

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

  7. #7
    Join Date
    Jun 2010
    Posts
    61

    Default

    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%

  8. #8
    Join Date
    Jun 2010
    Posts
    61

    Default

    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.

  9. #9
    Join Date
    Jun 2010
    Posts
    61

    Default

    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •