Dual head issues, non-xinerama setup possible?

Hey everyone, I'm having issues getting my dual head radeon card to work properly. Normally, I'm able to start X and run

% xrandr --output VGA-0 --mode 1680x1050 --primary --right-of DVI-0

At first, it gave me an error regarding virtual screen size, so I modified my xorg.conf to include "Virtual 3120 1050":

Code:
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
        Load  "dbe"
        Load  "dri"
        Load  "dri2"
        Load  "extmod"
        Load  "glx"
        Load  "record"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        #DisplaySize      430   270     # mm
        Identifier   "Monitor0"
        VendorName   "BNQ"
        ModelName    "BenQ G2000W"
        HorizSync    31.0 - 83.0
        VertRefresh  55.0 - 76.0
        Option      "DPMS"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"                   # [<bool>]
        #Option     "SWcursor"                  # [<bool>]
        #Option     "Dac6Bit"                   # [<bool>]
        #Option     "Dac8Bit"                   # [<bool>]
        #Option     "BusType"                   # [<str>]
        #Option     "CPPIOMode"                 # [<bool>]
        #Option     "CPusecTimeout"             # <i>
        #Option     "AGPMode"                   # <i>
        #Option     "AGPFastWrite"              # [<bool>]
        #Option     "AGPSize"                   # <i>
        #Option     "GARTSize"                  # <i>
        #Option     "RingSize"                  # <i>
        #Option     "BufferSize"                # <i>
        #Option     "EnableDepthMoves"          # [<bool>]
        #Option     "EnablePageFlip"            # [<bool>]
        #Option     "NoBackBuffer"              # [<bool>]
        #Option     "DMAForXv"                  # [<bool>]
        #Option     "FBTexPercent"              # <i>
        #Option     "DepthBits"                 # <i>
        #Option     "PCIAPERSize"               # <i>
        #Option     "AccelDFS"                  # [<bool>]
        #Option     "IgnoreEDID"                # [<bool>]
        #Option     "DisplayPriority"           # [<str>]
        #Option     "PanelSize"                 # [<str>]
        #Option     "ForceMinDotClock"          # <freq>
        #Option     "ColorTiling"               # [<bool>]
        #Option     "VideoKey"                  # <i>
        #Option     "RageTheatreCrystal"        # <i>
        #Option     "RageTheatreTunerPort"      # <i>
        #Option     "RageTheatreCompositePort"  # <i>
        #Option     "RageTheatreSVideoPort"     # <i>
        #Option     "TunerType"                 # <i>
        #Option     "RageTheatreMicrocPath"     # <str>
        #Option     "RageTheatreMicrocType"     # <str>
        #Option     "ScalerWidth"               # <i>
        #Option     "RenderAccel"               # [<bool>]
        #Option     "SubPixelOrder"             # [<str>]
        #Option     "ShowCache"                 # [<bool>]
        #Option     "DynamicClocks"             # [<bool>]
        #Option     "VGAAccess"                 # [<bool>]
        #Option     "ReverseDDC"                # [<bool>]
        #Option     "LVDSProbePLL"              # [<bool>]
        #Option     "AccelMethod"               # <str>
        #Option     "DRI"                       # [<bool>]
        #Option     "ConnectorTable"            # <str>
        #Option     "DefaultConnectorTable"     # [<bool>]
        #Option     "DefaultTMDSPLL"            # [<bool>]
        #Option     "TVDACLoadDetect"           # [<bool>]
        #Option     "ForceTVOut"                # [<bool>]
        #Option     "TVStandard"                # <str>
        #Option     "IgnoreLidStatus"           # [<bool>]
        #Option     "DefaultTVDACAdj"           # [<bool>]
        #Option     "Int10"                     # [<bool>]
        #Option     "EXAVSync"                  # [<bool>]
        #Option     "ATOMTVOut"                 # [<bool>]
        #Option     "R4xxATOM"                  # [<bool>]
        Identifier  "Card0"
        Driver      "radeon"
        VendorName  "ATI Technologies Inc"
        BoardName   "RV710 [Radeon HD 4350]"
        BusID       "PCI:2:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Virtual 3120 1050
        EndSubSection
EndSection

Now, both monitors work however they're being seen as 1 large virtual desktop, is it possible to force independent displays?

Thanks!

Ben
 
It is possible to use separate screens, but you will need to setup separate monitor, screen and device sections in the xorg.conf file. And, obviously you can't use xrandr.

Another side effect, though, is that direct rendering will be disabled, leaving you without any 2D or 3D acceleration.

Adam
 
Thanks Adam!

Here's my updated xorg.conf, although I must be missing something as my screens are mirrored, any thoughts?

Code:
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        Screen      1  "Screen1" Leftof "Screen0"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
        Load  "dbe"
        Load  "dri"
        Load  "dri2"
        Load  "extmod"
        Load  "glx"
        Load  "record"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        #DisplaySize      430   270     # mm
        Identifier   "Monitor0"
        VendorName   "BNQ"
        ModelName    "BenQ G2000W"
        Option      "DPMS"
EndSection

Section "Monitor"
        #DisplaySize      430   270     # mm
        Identifier   "Monitor1"
        VendorName   "BNQ"
        ModelName    "BenQ G2000W"
        Option      "DPMS"
EndSection

Section "Device"
        Option     "NoAccel"                    # [<bool>]
        Identifier  "Card0"
        Driver      "radeon"
        VendorName  "ATI Technologies Inc"
        BoardName   "RV710 [Radeon HD 4350]"
        BusID       "PCI:2:0:0"
EndSection

Section "Device"
        Option     "NoAccel"                    # [<bool>]
        Identifier  "Card1"
        Driver      "radeon"
        VendorName  "ATI Technologies Inc"
        BoardName   "RV710 [Radeon HD 4350]"
        BusID       "PCI:2:0:1"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen1"
        Device     "Card1"
        Monitor    "Monitor1"
        DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
 
Yeah, I just tried with your xorg.conf file on an HD4350 here. It's not even trying to load a separate instance of the radeon driver for the other screen, and I'm not sure why. It certainly previously worked for me with an older ATI card (minus direct rendering, as I noted), but I'm not sure if this not working is due to a change in the X server, driver, or hardware itself. I'm trying to find out on #radeon now on freenode, but haven't gotten a response back.

Adam
 
Alright, I'm hearing on #radeon that it only works for certain versions of the driver and X server, but can't get any more details than that. I'm guessing that it's broken in X server 1.6.*.

Adam
 
No problem. I have to say that without any 2D acceleration, you'd probably find the performance quite miserable, anyway :)

Adam
 
Back
Top