Mixed Brand Dual GPU xorg.conf

I’ve got a box with an nVidia and Radeon GPU (integrated) and I’ve been trying to get them both up with no luck.

To head off the “don’t use xorg” xrandr/wayland defeat the purpose and because -nVidia requires X anyhow.

My current incarnation of a config works if I say change the screens to the nVidia outputs and driver, but when I change the screens over to the AMD outputs and driver I get ye olde (EE) Screen 0 deleted because of no matching config section.

If anyone has a suggestion that might quash this issue or spots an error by all means chime in please.

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 1920 0
    Screen      2  "Screen2" 3840 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer G246HYL"
    HorizSync       31.0 - 75.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Acer SA270"
    HorizSync       31.0 - 84.0
    VertRefresh     48.0 - 76.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "Acer G247HYL"
    HorizSync       31.0 - 75.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "amdgpu"
    VendorName     "Advanced Micro Devices"
    BoardName      "Cezanne"
    BusID          "PCI:30:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1060 6GB"
    BusID          "PCI:16:0:0"
    Screen          1
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "amdgpu"
    VendorName     "Advanced Micro Devices"
    BoardName      "Cezanne"
    BusID          "PCI:30:0:0"
    Screen          2
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "metamodes" "DisplayPort-1-0: 1920x1080_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "HDMI-0: 1920x1080_75 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "metamodes" "HDMI-A-1-0: 1920x1080_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Are you running X and not Wayland? If you are running Wayland, then yeah, nVidia support is still pretty much alpha until their open source stuff gets accepted into the kernel and plumbed for gbm.

Otherwise, I think you issue is that you need something to do the handoff or management of the different devices. Look at PRIME. Other than that, you are trying to get something to work that has never worked well due to different levels of support in the kernel and userspace. Unless doing hardware passthrough, it is always recommended to use cards from the same vendor, preferably on the same kernel driver.
https://wiki.archlinux.org/title/PRIME

Well if I was running Wayland I wouldn’t be writing an xorg.conf ;p As the bit you quoted says, Wayland and xrandr setups are 100% No-Go for multi-GPU. They drag your performance into the dumpster and render high end GPU’s worthless.

xrandr does basically what Wayland does. They dump all the work on the primary GPU and slave everything else as outputs/framebuffers with way more overhead than any sane person would want.

PRIME isn’t useful as it’s based on switching. Again the point is both GPU all the time with split workloads so running screens 0 and 2 do not weigh on screen 1 run by the main GPU.

I’ve got a few other AMD GPU’s kicking around and was tempted to toss on in as I have the free PCIe slots to see if this is a problem with the AMDGPU driver or how the mother board ouputs. This reminds me of setting up X11 in VirtualBox. Your xorg.conf can be 100% correct but the way the driver works it will never create more than one XScreen.

This has actually worked fine in the past. Over the last 4ish years as Wayland ramps up and providers was added to xrandr there are small changes that just break things bit by bit for X11 as every assumes it’s use case is dead and Wayland is magically perfect and everyone will move to it. I’ve been running Dual and Triple GPU for years but it’s become a nightmare now of vague issues with no meaningful errors or output to work with.

Yeah. I didn’t know how strong your GNU/Linux-fu was so I was pointing that out. After all, you could have been dealing with XWayland application issues.

Oh the horror. Please don’t remind me. lol

I hear the complaints. I adopted Wayland early because I have a pretty vanilla, on label setup. For the most part, no one wants to maintain the mess that is X at this point and due to not everything supporting Wayland (yes that is the majority of the issue), things in X have to get partially updated or tweaked for XWayland to work. I hate to say it, but this was were Canonical’s mir could have shone, but since they were pushing it so hard as a replacement for X and saw Wayland as their competition (until the near end when they marketed this exact idea), mir got no real market share out side of Ubuntu and its child derivatives.

Canonical has kinda gone off the rails in the last 10 years. I know that sounds like a long time for something that normally means quick but they have almost been like Google. Here is an idea! Nope scratch that, here is ANOTHER idea!..nope scratch that. Mir, Unity, ditching lib32, Ubuntu is a mess these days.

Unless GPU’s start supporting some decent outputs (RTX 3090 is still got the same pixel limit as a freaking GTX 1050!?) I’ll never leave X11. I was excited for Wayland until I spoke with some of the devs about how it works for multi GPU. That’s when I learned yeah it will work as far as outputting over all GPU, but it will make all GPU other than the primary worthless slaves that do no work, use all the power and crap all the heat into your box for no reason. This would be fine if you had say a high end GPU for a primary then some low rent IGP level cards slapped in all the other slots but my rig are all cards close to each other so one GPU can say render blender, security cams, the other can be playing a game while watching videos, yada yada. Now if Wayland adds a mode to split GPU like X does where each is it’s own dedicated unit with separated screens then I’ll switch.

My *nix-fu is old and moldy. However for as much as I know there is more I’ve forgot thanks to various conveniences implemented over time. Comically I remember a time when I was fed up with hand writing every GD config so I moved from BSD to Linux because Linux had more of the fancy “it just works” stuff.

Now to kinda bring this full circle in the other post I mentioned about details getting long in the tooth and people glazing over. I kinda wish this could be deleted/closed because it’s kinda pointless as to where the new post takes over in a more meaningful way since I got past this issue.

1 Like

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.