You are not logged in.

#1 2016-10-24 19:14:52

archalex6
Member
From: Bangkok, Thailand
Registered: 2016-09-13
Posts: 18

Using XRandR to operate 6 monitors seamlessly

Now that I've managed to start X server in my other thread, I've been looking for a way to use Gnome with 6 monitors while being able to drag windows between displays - sort of like the default Windows behavior.

- I'm using the latest kernels / X
- I'm using the proprietary NVIDIA drivers
- There's no hardware issue, it has been throughly tested
- I'm using 3 GPUs, all identical (GTX 1080) with 6 DisplayPort monitors (2 per card)

I am faced with two options: Try using Xinerama, or using XRandR. Below is my Xinerama config, and with this exact config, I was able to run "startx" command, and drag my windows around the whole thing seamlessly, which is a perfect behavior, but "systemctl start gdm" will give a black screen. The screens are still on, but nothing is showing, and I can still SSH into the machine.

Section "ServerLayout"
        Identifier                      "Layout0"
        Screen                  0       "Screen0" 0 0
        Screen                  1       "Screen1" 0 1200
        Screen                  2       "Screen2" 1920 0
        Screen                  3       "Screen3" 1920 1200
        Screen                  4       "Screen4" 3840 0
        Screen                  5       "Screen5" 3840 1200
        InputDevice                     "Keyboard0" "CoreKeyboard"
        InputDevice                     "Mouse0" "CorePointer"
        Option                          "Xinerama" "1"
        Option                          "RandR" "0"
EndSection

Section "Files"
EndSection

Section "Module"
        Load            "glx"
EndSection

Section "Monitor"
        Identifier                      "Monitor0"
        VendorName                      "DELL"
        Modelname                       "U2413"
        Option                          "DPMS" "true"
EndSection
# *** Same than above for Monitor1 to Monitor5 ***
# (truncated for readability)

Section "Device"
        Identifier                      "Device0"
        Driver                          "nvidia"
        VendorName                      "NVIDIA Corporation"
        BoardName                       "GeForce GTX 1080"
        BusID                           "PCI:2:0:0"
        Screen                          0
        Option                          "UseDisplayDevice" "DFP-3"
EndSection
Section "Device"
        Identifier                      "Device1"
        Driver                          "nvidia"
        VendorName                      "NVIDIA Corporation"
        BoardName                       "GeForce GTX 1080"
        BusID                           "PCI:2:0:0"
        Screen                          1
        Option                          "UseDisplayDevice" "DFP-5"
EndSection
Section "Device"
        Identifier                      "Device2"
        Driver                          "nvidia"
        VendorName                      "NVIDIA Corporation"
        BoardName                       "GeForce GTX 1080"
        BusID                           "PCI:4:0:0"
        Screen                          0
        Option                          "UseDisplayDevice" "DFP-3"
EndSection
Section "Device"
        Identifier                      "Device3"
        Driver                          "nvidia"
        VendorName                      "NVIDIA Corporation"
        BoardName                       "GeForce GTX 1080"
        BusID                           "PCI:4:0:0"
        Screen                          1
        Option                          "UseDisplayDevice" "DFP-5"
EndSection
Section "Device"
        Identifier                      "Device4"
        Driver                          "nvidia"
        VendorName                      "NVIDIA Corporation"
        BoardName                       "GeForce GTX 1080"
        BusID                           "PCI:5:0:0"
        Screen                          0
        Option                          "UseDisplayDevice" "DFP-3"
        #Option                          "Monitor-DP-0" "Monitor4"
EndSection
Section "Device"
        Identifier                      "Device5"
        Driver                          "nvidia"
        VendorName                      "NVIDIA Corporation"
        BoardName                       "GeForce GTX 1080"
        BusID                           "PCI:5:0:0"
        Screen                          1
        Option                          "UseDisplayDevice" "DFP-5"
        #Option                          "Monitor-DP-2" "Monitor5"
EndSection

Section "Screen"
        Identifier                      "Screen0"
        Device                          "Device0"
        Monitor                         "Monitor0"
        DefaultDepth            24
        Option                          "Stereo" "0"
        Option                          "metaModes" "nvidia-auto-select +0+0"
        Option                          "SLI" "Off"
        Option                          "MultiGPU" "Off
        Option                          "BaseMosaic" "Off"
        SubSection "Display"
                Depth                   24
        EndSubSection
EndSection
# *** Same than above for Screen1/Device1/Monitor1 to Screen5/Device5/Monitor5 ***
# (truncated for readability)

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

# *** Input section truncated, not useful here ***

When I run gnome, the screen is just blank but stays on. If I leave it long enough like that, the screens power off but I can bring them back on (still black) with a mouse movement (mouse still won't show). Which makes me think, is there a Gnome configuration file somewhere that can solve that problem?

Now, for the second part: If I use RandR instead of Xinerama with the above config (just set Xinerama to 0), startx turns on all 6 screens, but I can't drag windows between the screens, however I can move the mouse around. If I try running gnome like that, I will also get a blank screen, but it stays on. Regular cursor on the first screen, and X cursor in the 5 other screens.

In both scenarios, no amount of keyboard / mouse jiggling will make anything change. The only option is pressing the reset button.

Other fact: I can get 3 screens to run seamlessly with BaseMosaic option, but nothing more than that, as it seems to be a driver limitation. I also tried disabling wayland, to no avail. I also found a ~/.config/monitors.xml file, which seems to be ignored, as editing it didn't fix the issue. In all cases, I couldn't find any clue in Xorg.0.log and dmesg.

This therefore raises 3 questions that I'd like to clarify:
1) Is Xinerama still a viable option despite the wiki claiming it as outdated?
2) Is there a way to run Gnome on Xinerama, perhaps by exiting any config file?
3) Is there ANY way to run 6 monitors seamlessly using only RandR?

Thanks in advance for your assistance.

Last edited by archalex6 (2016-10-24 19:20:01)

Offline

#2 2016-10-24 22:35:31

seth
Member
Registered: 2012-09-03
Posts: 49,966

Re: Using XRandR to operate 6 monitors seamlessly

Setting "Xinerama 0" will *not* get you a randr setup, but 6 independent screens ("zaphod" setup, yes, it's called so ;-)
Your problem is not randr, but to use 6 outputs on 3 GPUs which will require SLI in order to operate on one screen (prerequirement for randr control)

Your gnome problem is that you disabled compositing which is mandatory for gnome (thus likely the black screen)
Also be aware that gdm and gnome by default use wayland (but I don't know whether that holds for the nvidia blob as well)

Online

#3 2016-10-25 05:13:13

archalex6
Member
From: Bangkok, Thailand
Registered: 2016-09-13
Posts: 18

Re: Using XRandR to operate 6 monitors seamlessly

Thanks for the tip; I tried re-enabling compositing. Startx works flawless with Xinerama but the logs show a weird message:

[   124.734] (WW) NVIDIA: The Composite and Xinerama extensions are both enabled, which
[   124.734] (WW) NVIDIA:     is an unsupported configuration.  The driver will continue
[   124.734] (WW) NVIDIA:     to load, but may behave strangely.

And when I start GDM, the dmesg outputs the following:

[  130.168406] gnome-shell[1292]: segfault at 14 ip 00007fcaf6a46747 sp 00007fff9a778410 error 4 in libmutter.so.0.0.0[7fcaf69f6000+12b000]
[  130.366919] INFO: NMI handler (perf_event_nmi_handler) took too long to run: 1.241 msecs
[  130.366926] perf: interrupt took too long (9842 > 2500), lowering kernel.perf_event_max_sample_rate to 20100
[  131.068503] gnome-shell[1358]: segfault at 14 ip 00007f0875369747 sp 00007ffcc053a400 error 4 in libmutter.so.0.0.0[7f0875319000+12b000]
[  131.418102] gnome-session-f[1379]: segfault at 0 ip 00007f93281fb599 sp 00007ffce1d3c6a0 error 4 in libgtk-3.so.0.2200.1[7f9327f19000+6f3000]

Black screen like before, and I can still SSH into the machine. Nothing else in Xorg.0.log.

==========

Now for XrandR, I tried fiddling with SLI, BaseMosaic, and a few other options, and nothing will give me a working 6-screen setup. However, I tried launching X with just basic config and launching nvidia-settings. I was able to visually configure a 3-screen surround setup which works fine, so I saved a copy of the config as a gaming profile. However, when I launch GDM, this setup is completely ignored and stuff appears on random screens, which forces me to relaunch nvidia-config from within gnome and re-create the setup, which then works fine as long as I don't reboot.

I can configure Xinerama from within nvidia-config, but it just segfaults when I launch GDM. I also randomly get "nvidia-modeset: ERROR: GPU:0: SLI lock timeout exceeded (type 1)" messages in the dmesg log, but no conseqence seems to happen.

Is there a particular reason why Gnome ignores some of my Xorg settings, or is there another directory where Gnome reads some X settings? Also, if anyone has a working example of multi-GPU multi-monitor setup that can be run in Gnome, I'm eagerly awaiting it. No amount of Googling gives something working so far, but IMO, this should be a very basic feature.

Last edited by archalex6 (2016-10-25 05:14:39)

Offline

#4 2016-10-25 08:41:04

seth
Member
Registered: 2012-09-03
Posts: 49,966

Re: Using XRandR to operate 6 monitors seamlessly

Gnome and GDM default to wayland now. You'll have to explicitly pick "gnome on xorg".
You (or some gnome startup process) can alter the randr setup at runtime ("xrandr -h").
Only few GPUs do SLI w/o additional HW, the other ones require dedicated bridges to connect the cards. But if you got the three outputs on three different GPUs to work, you're likely half-wise there and only need to enable the second output on every GPU.

Online

#5 2016-10-25 12:34:26

archalex6
Member
From: Bangkok, Thailand
Registered: 2016-09-13
Posts: 18

Re: Using XRandR to operate 6 monitors seamlessly

All right. I don't mind using either, however I couldn't find any good documentation on how to configure my desired setup on Wayland rather than Xorg. BTW, using more than 3 screens isn't supported in Mosaic mode by NVIDIA. If there's a good Wayland tutorial out there, I'd like a link to it.

No config, except Xinerama, would make Xorg show 6 screens, but Xinerama segfaults when I launch gnome.

I installed KDE and used "exec startkde" in my ~/.xinitrc. KDE loads and I can do some work on the desktop, but every window has this ugly turquoise Xorg title instead of the traditional bar that I'm used to see on my single-screen machine on Gnome. Is there a workaround for that?

The "Window Decorations" in KDE won't change anything - all windows still have the ugly greenish title bar from Xorg and everytime I launch an app, the window gets "hooked" to my mouse just like a regular X session. I'm looking to change that.

Last edited by archalex6 (2016-10-25 13:21:12)

Offline

#6 2016-10-25 13:30:26

jsoy9pQbYVNu5nfU
Member
Registered: 2013-04-19
Posts: 108

Re: Using XRandR to operate 6 monitors seamlessly

I recall there fairly recently having been a detailed blog post by a guy who ran a 6-monitor display wall on nvidia. I can't find it right now in my browing history but I'm certain it went through r/linux at some point. IIRC one of the key aspects of the setup was using the mosaic driver feature (which you are disabling explicitly ?). Perhaps you can dig it up somehow.

Offline

#7 2016-10-25 13:37:55

archalex6
Member
From: Bangkok, Thailand
Registered: 2016-09-13
Posts: 18

Re: Using XRandR to operate 6 monitors seamlessly

I believe this guy was using Quadro GPUs which may support it.. if you happen to find the link, please let me know.

As for KDE, I'm still looking for a way to be able to get rid of the Xorg turquoise bar, no dice so far...

Offline

#8 2016-10-25 13:42:30

seth
Member
Registered: 2012-09-03
Posts: 49,966

Re: Using XRandR to operate 6 monitors seamlessly

This sounds as if you're using fvwm as windowmanager instead of kwin??? (There's no "greenish title bar from Xorg", but fvwm looks like that by default)

Online

#9 2016-10-25 13:43:18

archalex6
Member
From: Bangkok, Thailand
Registered: 2016-09-13
Posts: 18

Re: Using XRandR to operate 6 monitors seamlessly

Update: Instead of running "exec startkde" in a Xorg session, I tried launching the SDDM service and selecting "Plasma" as the environment. I'll make some tests and revert back, but so far windows appear correct. Testing now.

Offline

#10 2016-10-25 14:45:20

archalex6
Member
From: Bangkok, Thailand
Registered: 2016-09-13
Posts: 18

Re: Using XRandR to operate 6 monitors seamlessly

Alas, not working for now. With Xinerama enabled, I can use all 6 screens seamlessly in KDE as long as I disable compositing, which isn't good. When I enable compositing, only 1 screen is seen. Gnome still segfaults.

When I disable Xinerama, both environments can load, but only 1 screen is seen.

I think the option would be to find a way to run 6 monitors seamlessly with XRandR and no Xinerama. Any link is welcome. Still at the drawing board now.

Offline

Board footer

Powered by FluxBB