Dual-GPU xinerama broke from Debian 11 -> 12

Hello,

I am running around ten Debian 11 Installations, each using two GPUs for multihead-video-output using xinerama, since that is what worked.

At some point I installed new machines with Debian 12. These worked just the same but soon broke after an Update to 12.1 or 12.2. Since that I never got any of our new machines to work with xinerama.

Getting it to run in the first place took very long and a lot of trial and error. What worked in the end should not do so, but does and is rock-solid. Boots and runs daily for 3-4 years now.

Right now I have around 6 machines that I need to install and would also love to update the older ones as well. I tried and failed for a week now, so hopefully someone here can help me find my mistake.

Working Debian 11 config:

Section “ServerLayout”
Identifier     “Default”
Screen      0  “Screen0” 0 0
InputDevice    “Keyboard0” “CoreKeyboard”
InputDevice    “Mouse0” “CorePointer”
Option         “Xinerama” “1”
EndSection

Section “InputDevice”
Identifier     “Keyboard0”
Driver         “kbd”
EndSection

Section “InputDevice”
Identifier     “Mouse0”
Driver         “mouse”
Option         “Protocol” “auto”
Option         “Device” “/dev/psaux”
Option         “Emulate3Buttons” “no”
Option         “ZAxisMapping” “4 5”
EndSection

Section “Monitor”
Identifier     “Monitor0”
VendorName     “Generic”
ModelName      “LLP Monitor”
HorizSync       30.0 - 135.0
VertRefresh     48.0 - 75.0
Option         “DPMS”
ModeLine “1920x1080_50.00” 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +HSync +VSync
Modeline “1920x1200_50.00” 158.25  1920 2040 2240 2560  1200 1203 1209 1238 -hsync +vsync
Modeline “1400x1050_50.00”  99.88  1400 1480 1624 1848  1050 1051 1054 1081  -HSync +Vsync
EndSection

Section “Device”
Identifier     “Device0”
Driver         “nvidia”
VendorName     “NVIDIA Corporation”
BoardName      “Quadro”
BusID          “PCI:1:0:0”
Option         “UseEDIDFreqs” “false”
Option         “UseEDID” “FALSE”
Option         “NoEdidModes, NoMaxPClkCheck, AllowNonEdidModes”
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "nvidiaXineramaInfo" "FALSE"
    Option         "Stereo" "0"
#    Option         "nvidiaXineramaInfoOrder" "0"
    Option         "ConnectedMonitor" "GPU-1.DP-2 , GPU-1.DP-0 , GPU-1.DP-4 , GPU-0.DP-2 , GPU-0.DP-0 , GPU-0.DP-4 "
    Option         "metamodes" "GPU-1.DP-2: 1400x1050_50 +0+0 , GPU-1.DP-0: 1400x1050_50 +1400+0 , GPU-1.DP-4: 1400x1050_50 +2800+0 , GPU-0.DP-2:>
#    Option         "MultiGPU" "Off"
    Option         "SLI" "Mosaic"
    Option         "BaseMosaic" "on"
    Option         "AllowEmptyInitialConfiguration" "True"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option "Composite" "Disable"
EndSection

This makes a beautiful 21x3m projection using 6 Panasonic-projectors! :)

Now since our Debian 12 problem, I tried:

  • Nvidia-Drivers supplied by Debian
  • Nvidia-Drivers from Nvidia, run.sh-style
  • Nvidia-Drivers from the Dev-Repositories, online and offline
  • Every option in the config file, every combination of options.
  • A Vanilla Kernel
  • Disabling KMS, by blacklist as well as in grub.

What works is a single GPU, 1-4 outputs, the second GPU fails.

I tried so many different combinations that I cannot even post a logfile or something, each scenario gives me different results. What I got to work along the way, is using both GPUs without xinerama. Sadly that doesn’t help. I need the video-player to “see” one large screen.

GPUs: A1000, T1000, RTX5000, Quadro P400/P2000/P2200

So I guess it is time for a full-reset and start from scratch. Hopefully someone here can advise me to a good starting-config.

Thanks in advance!

Further I tried using a minimalistic snippet, as suggested by @generix in this thread: Xorg configuration - two NVidia cards, xinerama breaks hardware acceleration, 390.25 current driver - #19 by sass.joel

That brought up a visible desktop across the two cards, but I could not operate it. I can do one right-click and the menu comes up and whatever I choose, nothing comes up and nothing responds anymore. I can move around the mouse-pointer, though.

I made sure that the BIOS addresses above 4GB.
I tried my vanilla-kernel as well as the Debian ones, again.

Driver-wise the thing seems happy. If I start X without any config file, I get one monitor and can use it normally:

  • mpv plays a video using the nvdec acceleration, so that all looks ok.
  • nvidia-settings sees both cards and one active monitor and one as “disabled”.

I also tried with and without the “options nvidia-drm modeset=0” in modprobe.d and updare-initramfs after, always the same outcome.

Hi @nb19 ,

Thank you for reporting the bug. Can you please capture a NVIDIA bug report in the failed state and attach it to this thread?

Hi nb19,

I think using render offload, could handle your use case, here is a link to the documentation:

https://download.nvidia.com/XFree86/Linux-x86_64/580.105.08/README/primerenderoffload.html

Please let me know how it goes.

regards,

I just noticed that your configuration doesn’t actually need Xinerama, since you’re using a single X screen with Mosaic. Xinerama is for tying together multiple X screens into a single logical one but it does nothing except get in the way in your configuration. Does it work if you remove the

Option         “Xinerama” “1”

line? If not, please attach a bug report log as @abchauhan suggested.