Announcement

Collapse
No announcement yet.

Problems with ATI open-source & multiple monitors

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

  • Problems with ATI open-source & multiple monitors

    Greeting folks,

    In light of the unfortunate decision made by AMD/ATI to cease development of the proprietary driver for <= r500 cards I am forced to look at the open source alternatives given that the fglrx never really worked properly for me and now I cannot count on seeing it updated to fix the problems I am seeing. I also can't remain with the old binary blob as I need (and want) my system to be up-to-date. Might as well get it over and do the migration to the open-source drivers ones now.

    In terms of my setup, I need it to be configured as:

    Code:
    20" in portrait   30" in landscape   20" in portrait
    1600x1200         2560x1600          1600x1200
    Currently, the main monitor and one of the side monitors is hooked up to a R580 Radeon X1950 XTX video card and the remaining side monitor is hooked up to a RV610 Radeon HD 2400 XT video card.

    I had no problems getting it setup under winblows - was a piece of cake and worked well. Unfortunately this is not the case under Linux which is a big disappointment as that is where I spend most of my time.

    Unfortunately, I have many problems other problems with the Opensource drivers. Seems that "half" of the features don't work in the radeon driver and other in the radeonhd with even a partial multimonitor setup

    In general, the problems I encountered not counting getting all three monitors to work the way I want:
    • Corrupt mouse cursor - flickering garbled cursor, sometimes turns to a vertical hatched line.
    • Occasional crashes in 3D apps (yeah, I know - very board)
    • Poor video playback performance - stuttering, occasionally freezing or crashing X. Higher-res vids are unwatchable.
    • Switching between X & VT sometimes (but not always) results in a hang - need to reboot (REISUB).
    • Wine is dead (is this AIGLX related?) - worked on fglrx


    Currently, I'm running on gentoo ~amd64, kernel 2.6.28-gentoo-r3 and have Xorg v1.5.3, RadeonHD v1.2.4 and Radeon v6.12 installed as well as the drm.ko & radeon.ko from git taken on Mar 14, 09.

    I'll accept having two separate X sessions running for now but even getting well behaving dual-monitor on the X1950XTX card will be a good start.

    Setting up radeonhd for the two monitors on single card results in random horizontal (well visually vertical after rotation) lines flashing on the side monitor with the display turning black every few seconds. If I place set the side monitor to the right of the main monitor (i.e. swap video cables and change xorg.conf accordingly), I can't even set the center monitor to the correct resolution - it gets capped at 1920x1200. Another problem is that I get a narrow rectangle of garbage on the bottom third of the center monitor from the right edge. Haven't done much testing beyond that - hard to do anything useful with all that flickering or bad font sizes.

    Here is my radeonhd xorg.conf file:
    Code:
    Section "ServerLayout"
    	Identifier	"MyLayout"
    	Screen		"CenterScreen" 0 0
    #	Screen		"RightScreen" RightOf "CenterScreen"
    EndSection
    
    Section "Files"
    	ModulePath	"/usr/lib64/xorg/modules"
    	FontPath	"/usr/share/fonts/100dpi/"
    	FontPath	"/usr/share/fonts/misc/"
    EndSection
    
    Section "Module"
    EndSection
    
    Section "Monitor"
    	Identifier	"center_monitor"
    	Option		"DPMS" "on"
    	Option		"Preferred" "2560x1600_59.90"
    EndSection
    
    Section "Monitor"
    	Identifier	"left_monitor"
    	Option		"LeftOf" "center_monitor"
    	Option		"rotate" "left"
    	Option		"DPMS" "on"
    	Option		"Preferred" "1600x1200_60.00"
    EndSection
    
    Section "Monitor"
    	Identifier	"right_monitor"
    	Option		"rotate" "left"
    	Option		"DPMS" "on"
    EndSection
    
    Section "DRI"
    	Mode	0666
    EndSection
    
    #Section "ServerFlags"
    #	Option		"Xinerama" "off"
    #	Option		"Clone" "off"
    #EndSection
    
    Section "Device"
    	Identifier	"Card0"
    	Driver		"radeonhd"
    	VendorName	"ATI Technologies Inc"
    	BoardName	"Radeon X1950 XTX"
    	BusID		"PCI:129:00:0"
    
    	Option		"AccelMethod" "EXA"
    	Option		"DRI" "on"
    
    	Option		"monitor-DVI-I_2/digital" "center_monitor"
    	Option		"monitor-DVI-I_1/digital" "left_monitor"
    
    	Option		"RROutputOrder" "center_monitor"
    EndSection
    
    #Section "Device"
    #	Identifier	"Card1"
    #	Driver		"radeon"
    #	VendorName	"ATI Technologies Inc"
    #	BoardName	"Radeon HD 2400 XT"
    #	BusID		"PCI:1:0:0"
    
    #	Option		"AccelMethod" "EXA"
    #	Option		"DRI" "on"
    
    #	Option		"monitor-DVI-0" "right_monitor"
    #EndSection	
    
    Section "Screen"
    	Identifier "CenterScreen"
    	Device     "Card0"
    	Monitor    "center_monitor"
    	DefaultDepth	24
    
    	SubSection "Display"
    		Viewport	0 0
    		Depth		24
    		Virtual		3760 1600
    	EndSubSection
    EndSection
    
    #Section "Screen"
    #	Identifier "RightScreen"
    #	Device     "Card1"
    #	Monitor    "right_monitor"
    #	DefaultDepth	24
    
    #	SubSection "Display"
    #		Viewport	0 0
    #		Modes		"1600x1200"
    #		Depth		24
    #	EndSubSection
    #EndSection
    
    #Section "Extensions"
    #	Option "Composite" "on"
    #EndSection
    
    #Section "ServerFlags"
    #	Option "AIGLX" "on"
    #EndSection
    From the Xorg.0.log possibly some relevant error & warning entries:
    Code:
    (WW) RADEONHD(0): rhdAtomAllocateFbScratch: FW FB scratch area not located at the end of VRAM. Scratch End: 0x8000000 VRAM End: 0x10000000
    (II) RADEONHD(0): Cannot get VRAM scratch space. Allocating in main memory instead
    ...
    (EE) RADEONHD(0): Cannot position output DVI-I_1/digital relative to output center_monitor without modes
    ...
    (EE) RADEONHD(0): rhdVGASaveFB: VGA FB Offset (0x00000000) is out of range of the Cards Internal FB Address (0xE0000000)
    ...
    (EE) RADEONHD(0): TMDSBVoltageControl: unhandled chipset: 0x7240.
    ...
    (EE) RADEONHD(0): TMDSAVoltageControl: unhandled chipset: 0x7240.
    ...
    (WW) RADEONHD(0): Option "Preferred" is not used
    Can anyone help me out to fix as many of the problems as possible? TIA
    Last edited by pawstar; 16 March 2009, 07:23 PM.

  • #2
    OK, first comment is that fglrx never supported the configuration you want either (mixing 5xx and 6xx+ GPUs in a multi-adapter system). Windows has all the capabilities you want built in; Linux and X do not. Everyone wants RAndR but today it does not support multiple GPUs (that was the "GPU Objects" extension that didn't make it into RandR 1.3). If you want true multi-adapter support then you really should be looking at two 6xx or higher cards and fglrx.

    OK, now that's out of the way

    Realistically, if you want to use your 5xx card under Linux then you need to be thinking about a two-screen system for now, not three-screen. Can we get that working first ?

    What happens when you have just the X1950 in the system (put the 610 in an anti-stat bag on your desk ) with two screens attached ? You can ignore the AtomBIOS message; that's just informational.

    Is radeonhd from git or is it the actual 1.2.4 release (which came out a few months ago) ? If it's the actual 1.2.4 release, could you either pick up the latest from git or try the radeon driver instead ?

    In some cases screen corruption with radeonhd goes away when you force the use of AtomBIOS calls. Since you already have radeon on the system it's probably easier just to try radeon.

    Either way, let's get two good screens working (which we do support with your configuration) then move on from there.
    Test signature

    Comment


    • #3
      Originally posted by bridgman View Post
      OK, first comment is that fglrx never supported the configuration you want either (mixing 5xx and 6xx+ GPUs in a multi-adapter system).
      ... and that would be part of the reason for the disappointment in that its pretty much guaranteed now never to be made working in fglrx.

      What happens when you have just the X1950 in the system (put the 610 in an anti-stat bag on your desk ) with two screens attached ? You can ignore the AtomBIOS message; that's just informational.
      A bit better - the screen blanking disappeared and thats about it, the other problems remained: both screen have random flashing lines every few seconds. Dragging windows around occasionally causes large areas of the screen go corrupt, flicker and then redraw (happens rather fast but annoying). Still also have that narrow band of at the bottom of the screen - dragging a window over it will erase it for a while but it comes back. Also, I cannot put the smaller monitor to the RIGHT of the larger monitor - it insists on overlapping (cloning) ~ 1/5 of the screen - wont listen to the --pos argument. From past experimentation I know that if I set the virtual width to 4160 it will position it correctly (eventhough it should work for a width of only 3760 and does when the smaller monitor is to the left of the big monitor) but then everything becomes awfully slow.

      Still have:
      (EE) RADEONHD(0): TMDSAVoltageControl: unhandled chipset: 0x7240.
      (EE) RADEONHD(0): TMDSBVoltageControl: unhandled chipset: 0x7240.
      and the other warnings.

      Is radeonhd from git or is it the actual 1.2.4 release (which came out a few months ago) ? If it's the actual 1.2.4 release, could you either pick up the latest from git or try the radeon driver instead ?
      Was 1.2.4 release until I tried the latest from GIT today after reading your message, no difference.

      In some cases screen corruption with radeonhd goes away when you force the use of AtomBIOS calls. Since you already have radeon on the system it's probably easier just to try radeon.
      Yeah, I already had some success with the radeon drivers but came against a wall with some problems see below (besides I would preferred to use the radeonhd given its background & origins /sigh).

      Either way, let's get two good screens working (which we do support with your configuration) then move on from there.
      Some problems with the Radeon v6.12 with randr dual monitor setup:
      - most aggravating so far: every once in a while I get a random line streaking across the screen. If I have a window with lots of activity e.g. a terminal with scrolling text, this becomes more frequent - nothing in the logs to address this - definitely not as bad as with RadeonHD but still there.
      - same positioning problem as with RadeonHD
      - slow resize performance (differs with different applications)
      - occasional areas of the screen do not get redrawn. I get some garbage - need to shake a window to get it to redraw (can occur after minimizing or switching between desktops) - random and rather rare in occurrence.
      - poor video playback; I did find some peculiar errors in the log after playing a video but not sure if its related:
      Code:
      (EE) RADEON(0): BEGIN_RING without end at radeon_accel.c:859
      (EE) RADEON(0): ADVANCE_RING without begin at radeon_accel.c:882
      (EE) RADEON(0): BEGIN_RING without end at radeon_accel.c:859
      (EE) RADEON(0): ADVANCE_RING without begin at radeon_accel.c:882
      ... over and over again

      My radeon xorg.conf:
      Code:
      Section "ServerLayout"
      	Identifier	"MyLayout"
      	Screen		"CenterScreen" 0 0
      #	Screen		"RightScreen" RightOf "CenterScreen"
      
      #	Option		"AllowEmptyInput" "false"
      #	InputDevice	"natural_keyboard" "CoreKeyboard"
      EndSection
      
      Section "Files"
      	ModulePath	"/usr/lib64/xorg/modules"
      	FontPath	"/usr/share/fonts/100dpi/"
      	FontPath	"/usr/share/fonts/misc/"
      EndSection
      
      Section "Module"
      EndSection
      
      #Section "InputDevice"
      #	Identifier	"natural_keyboard"
      #	Driver		"kbd"
      #	Option		"CoreKeyboard"
      #	Option		"XkbRules" "xorg"
      #	Option		"XkbModel" "microsoftnek4k"
      #	Option		"AutoRepeat" "250 50"
      #	Option		"XkbLayout" "en_US,pl"
      #	Option		"XkbOptions" "caps:internal_nocancel+lv3(switch)+compose(me nu)"
      #EndSection
      
      Section "Monitor"
      	Identifier	"center_monitor"
      	Option		"DPMS" "on"
      EndSection
      
      Section "Monitor"
      	Identifier	"left_monitor"
      	Option		"LeftOf" "center_monitor"
      	Option		"rotate" "left"
      	Option		"DPMS" "on"
      EndSection
      
      #Section "Monitor"
      #	Identifier	"right_monitor"
      #	Option		"rotate" "left"
      #	Option		"DPMS" "on"
      #EndSection
      
      Section "DRI"
      	Mode	0666
      EndSection
      
      Section "ServerFlags"
      	Option		"Xinerama" "off"
      	Option		"Clone" "off"
      EndSection
      
      Section "Device"
      	Identifier	"Card0"
      	Driver		"radeon"
      	VendorName	"ATI Technologies Inc"
      	BoardName	"Radeon X1950 XTX"
      	BusID		"PCI:129:00:0"
      
      	Option		"AccelMethod" "EXA"
      	Option		"DRI" "on"
      
      	Option		"monitor-DVI-1" "center_monitor"
      	Option		"monitor-DVI-0" "left_monitor"
      EndSection
      
      #Section "Device"
      #	Identifier	"Card1"
      #	Driver		"radeon"
      #	VendorName	"ATI Technologies Inc"
      #	BoardName	"Radeon HD 2400 XT"
      #	BusID		"PCI:1:0:0"
      
      #	Option		"AccelMethod" "EXA"
      #	Option		"DRI" "on"
      
      #	Option		"monitor-DVI-0" "right_monitor"
      #EndSection	
      
      Section "Screen"
      	Identifier "CenterScreen"
      	Device     "Card0"
      	Monitor    "center_monitor"
      	DefaultDepth	24
      
      	SubSection "Display"
      		Viewport	0 0
      		Depth		24
      		Virtual		3760 1600
      	EndSubSection
      EndSection
      
      #Section "Screen"
      #	Identifier "RightScreen"
      #	Device     "Card1"
      #	Monitor    "right_monitor"
      #	DefaultDepth	24
      
      #	SubSection "Display"
      #		Viewport	0 0
      #		Depth		24
      #	EndSubSection
      #EndSection
      
      #Section "Extensions"
      #	Option "Composite" "off"
      #EndSection
      
      #Section "ServerFlags"
      #	Option "AIGLX" "off"
      #EndSection
      Any ideas for improvement?

      Comment


      • #4
        Originally posted by pawstar View Post
        - poor video playback; I did find some peculiar errors in the log after playing a video but not sure if its related:
        Code:
        (EE) RADEON(0): BEGIN_RING without end at radeon_accel.c:859
        (EE) RADEON(0): ADVANCE_RING without begin at radeon_accel.c:882
        (EE) RADEON(0): BEGIN_RING without end at radeon_accel.c:859
        (EE) RADEON(0): ADVANCE_RING without begin at radeon_accel.c:882
        ... over and over again
        This is fixed in xf86-video-ati (radeon) git:

        Comment


        • #5
          Hmm, cool - good to know. Any ideas on the horizontal lines & corrupt mouse cursor?

          Comment


          • #6
            I believe the threshold for Virtual while keeping acceleration is 4096; anything under that should be OK.

            What are your screen resolutions ?

            With radeonhd you might want to try Option "UseAtomBIOS" "true"

            Separately, try Option "Coherent" "true" with radeonhd. I'm not sure what the default for radeon is these days.
            Test signature

            Comment


            • #7
              Originally posted by bridgman View Post
              I believe the threshold for Virtual while keeping acceleration is 4096; anything under that should be OK.
              Yeah, I understand - but I need to set it 4160 to get the monitor positioned correctly for some reason even though I only need a width of 3760 after rotation.

              Main monitor - 2560x1600
              Side monitor - 1600x1200 (but its rotated ccw by 90 deg)

              Comment


              • #8
                radeon defaults to on, but you can force it off with xrandr:
                xrandr --output DVI-0 --set coherent_mode 0
                or
                xrandr --output DVI-1 --set coherent_mode 0

                coherent mode can also be adjusted on radeonhd via xrandr, but I don't recall the property name off hand.

                Comment


                • #9
                  Originally posted by bridgman View Post
                  With radeonhd you might want to try Option "UseAtomBIOS" "true"
                  Code:
                  (II) Setting vga for screen 0.
                  (**) RADEONHD(0): Depth 24, (--) framebuffer bpp 32
                  (**) RADEONHD(0): Option "AccelMethod" "EXA"
                  (**) RADEONHD(0): Option "RROutputOrder" "center_monitor"
                  (**) RADEONHD(0): Option "DRI" "on"
                  (**) RADEONHD(0): Option "UseAtomBIOS" "true"
                  (**) RADEONHD(0): Option "COHERENT" "true"
                  (**) RADEONHD(0): Selected EXA 2D acceleration.
                  (II) RADEONHD(0): Unknown card detected: 0x7240:0x1002:0x0B12.
                          If - and only if - your card does not work or does not work optimally
                          please contact [email protected] to help rectify this.
                          Use the subject: 0x7240:0x1002:0x0B12: <name of board>
                          and *please* describe the problems you are seeing
                          in your message.
                  (--) RADEONHD(0): Detected an R580 on an unidentified card
                  (II) RADEONHD(0): Mapped IO @ 0x9fff0000 to 0x7f910bc68000 (size 0x00010000)
                  (II) RADEONHD(0): PCIE Card Detected
                  (II) RADEONHD(0): Getting BIOS copy from PCI ROM
                  (EE) RADEONHD(0): Cannot read BIOS image
                  (II) RADEONHD(0): Query for AtomBIOS Init: failed
                  (**) RADEONHD(0): Using AtomBIOS for All
                  (EE) RADEONHD(0): No AtomBIOS image found but required for AtomBIOS based mode setting
                  (II) RADEONHD(0): Query for AtomBIOS Teardown: failed
                  (II) UnloadModule: "radeonhd"
                  (EE) Screen(s) found, but none have a usable configuration.
                  
                  Fatal server error:
                  no screens found

                  Comment


                  • #10
                    Hmmm. Any chance you still have two cards in the system ?
                    Test signature

                    Comment

                    Working...
                    X