You are not logged in.
I recently did a full system update and now my window manager behavior has changed. As the subject says, I run Xfce (now v4.14) with a pair of GT 620's each driving a pair of monitors (four total, in a linear 1x4 grid). Before, I could maximize a window and it would maximize to a single physical monitor. Now, when I maximize a window, it spans all four monitors. Dialog boxes are centering across the divider between screens 2 and 3, and my Xfce panels that formerly were confined to a single monitor now span across all four.
Action Taken:
pacman -Syu
Hardware:
$ lspci | grep NVIDIA | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 620] (rev a1)
02:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 620] (rev a1)
Software:
$ pacman -Qe | grep nvidia
nvidia-390xx-dkms 390.116-47
nvidia-390xx-settings 390.116-1
opencl-nvidia-390xx 390.116-1
X Config (Unchanged):
$ cat /etc/X11/xorg.conf.d/xorg.conf
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1"
Screen 3 "Screen3" RightOf "Screen2"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
Section "Files"
ModulePath "/usr/lib/nvidia/xorg"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Dell"
ModelName "Dell 1908FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Dell"
ModelName "Dell 1907FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Dell"
ModelName "Dell 1908FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor3"
VendorName "Dell"
ModelName "Dell 1908FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 620"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 620"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Device"
Identifier "Device2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 620"
BusID "PCI:2:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device3"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 620"
BusID "PCI:2:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "DVI-I-0: 1280x1024_60 +0+0 {AllowGSYNC=Off}"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "Off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "DVI-I-1: 1280x1024_60 +0+0 {AllowGSYNC=Off}"
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 "Stereo" "0"
Option "metamodes" "DVI-I-0: 1280x1024_60 +0+0 {AllowGSYNC=Off}"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "Off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen3"
Device "Device3"
Monitor "Monitor3"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "DVI-I-1: 1280x1024_60 +0+0 {AllowGSYNC=Off}"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "Off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "Disable"
EndSection
I've always used Xinerama since xrandr never seemed to play nice with multiple displays spread across multiple GPUs. Any thoughts on why my window manager behavior may have changed? It's really annoying to not be able to maximize windows and have to hunt for dialog boxes ...
Last edited by IronManRust (2019-09-02 22:50:05)
Offline
Probably a bug or feature (xinerama) drop in xfwm4 - I'd tell you to use basemosaic instead of xinerama, but if the outputs are still limited to "3" that's oc. not an option either…
https://wiki.archlinux.org/index.php/NVIDIA#Base_Mosaic
Offline
Thanks for the suggestion to play with Base Mosaic, I'd heard of it before but it totally slipped my mind when this problem came up. Unfortunately, near as I can tell my motherboard and GPU combination doesn't want to play nice.
Configuration:
$ neofetch
-` shawn@Andromeda
.o+` ---------------
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: EP45-UD3P
`+oooooo: Kernel: 5.2.11-arch1-1-ARCH
-+oooooo+: Uptime: 37 mins
`/:-:++oooo+: Packages: 1061 (pacman)
`/++++/+++++++: Shell: bash 5.0.9
`/++++++++++++++: DE: Xfce
`/+++ooooooooooooo/` Theme: Adwaita [GTK2/3]
./ooosssso++osssssso+` Icons: gnome [GTK2], Adwaita [GTK3]
.oossssso-````/ossssss+` Terminal: xfce4-terminal
-osssssso. :ssssssso. Terminal Font: Monospace 8
:osssssss/ osssso+++. CPU: Intel Core 2 Duo E8500 (2) @ 2.834GHz
/ossssssss/ +ssssooo/- GPU: NVIDIA GeForce GT 620
`/ossssso+/:- -:/+osssso+- Memory: 1507MiB / 7974MiB
`+sso+:-` `.-/+oso:
`++:. `-/+/
.` `/
Log:
(EE) NVIDIA(GPU-0): Failed to find a valid Base Mosaic configuration.
(EE) NVIDIA(GPU-0): Invalid Base Mosaic configuration 1 of 1:
(EE) NVIDIA(GPU-0): GPUs:
(EE) NVIDIA(GPU-0): 1) NVIDIA GPU at PCI:1:0:0
(EE) NVIDIA(GPU-0): 2) NVIDIA GPU at PCI:2:0:0
(EE) NVIDIA(GPU-0): Errors:
(EE) NVIDIA(GPU-0): - The video link was not detected
(EE) NVIDIA(GPU-0): - Unsupported GPU
(EE) NVIDIA(GPU-0): - Chipset not approved for SLI
Mind you, I am not trying to use SLI, had that option disabled in my xorg.conf file, and even if I wanted to my 620's don't have the SLI bridge connector in the first place.
The best I was able to do was get two monitors on the first GPU to work, which I consider table stakes. Either that, or run a pair of xservers, one per GPU, but the inability to drag windows across them is a deal breaker.
Offline
You've two identical and sufficiently new GPUs, BaseMosaic should work but as the wiki suggests is probably artificially limited to 3 outputs :-(
What command produced those errors?
Offline
xorg.conf
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
ModulePath "/usr/lib/nvidia/xorg"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Dell"
ModelName "Dell 1908FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Dell"
ModelName "Dell 1907FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Dell"
ModelName "Dell 1908FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor3"
VendorName "Dell"
ModelName "Dell 1908FP"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 620"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 620"
BusID "PCI:2:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Device "Device1"
Monitor "Monitor0"
Monitor "Monitor1"
Monitor "Monitor2"
Monitor "Monitor3"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "Device0.DVI-I-0: 1280x1024_60 +0+0, Device0.DVI-I-1: 1280x1024_60 +1280+0, Device1.DVI-I-0: 1280x1024_60 +2560+0, Device1.DVI-I-1: 1280x1024_60 +3840+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "On"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "Disable"
EndSection
Log:
$ cat /var/log/Xorg.0.log | grep EE
[ 11.555] Current Operating System: Linux Andromeda 5.2.11-arch1-1-ARCH #1 SMP PREEMPT Thu Aug 29 08:09:36 UTC 2019 x86_64
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 12.862] (EE) NVIDIA(GPU-0): Failed to find a valid Base Mosaic configuration.
[ 12.862] (EE) NVIDIA(GPU-0): Invalid Base Mosaic configuration 1 of 1:
[ 12.862] (EE) NVIDIA(GPU-0): GPUs:
[ 12.862] (EE) NVIDIA(GPU-0): 1) NVIDIA GPU at PCI:1:0:0
[ 12.862] (EE) NVIDIA(GPU-0): 2) NVIDIA GPU at PCI:2:0:0
[ 12.862] (EE) NVIDIA(GPU-0): Errors:
[ 12.862] (EE) NVIDIA(GPU-0): - The video link was not detected
[ 12.862] (EE) NVIDIA(GPU-0): - Unsupported GPU
[ 12.862] (EE) NVIDIA(GPU-0): - Chipset not approved for SLI
[ 12.871] (EE) NVIDIA(GPU-0): Only one GPU will be used for this X screen.
Offline
NVIDIA X Server Settings:
https://imgur.com/XlMETm5.png
Under GPU 0, it lists "Screen 0" as the "X Screens" value.
Under GPU 1, it lists "None" as the "X Screens" value.
moderator edit -- replaced oversized image with link.
Pasting pictures and code
Last edited by 2ManyDogs (2019-09-07 13:10:30)
Offline
I think I've hit an issue with the update also. After a recent update I had only one screen showing - I can actually run nvidia-settings after every boot to get the other screen on but can't persist the changes. If I modify the settings to use Xinerama then the best I can do is the "one big screen" across multiple displays as you have... I was unsure if that was actually in-spec for Xinerama.
After correcting via nvidia-settings if I try and persist xorg.conf it will preview as:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 435.21
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 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 "BenQ GL2450"
HorizSync 30.0 - 83.0
VertRefresh 50.0 - 76.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 1070 Ti"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "DVI-D-0: nvidia-auto-select +0+0, HDMI-0: nvidia-auto-select +1920+0; DVI-D-0: 1680x1050 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 1600x900 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 1280x1024 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 1280x1024_60 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 1280x800 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 1280x720 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 1024x768 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 1024x768_60 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 800x600 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 800x600_60 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 640x480 +0+0, HDMI-0: nvidia-auto-select +0+0; DVI-D-0: 640x480_60 +0+0, HDMI-0: nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
This is missing any mention of the other monitor for some reason:
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Unknown"
ModelName "BenQ GW2765"
HorizSync 30.0 - 89.0
VertRefresh 50.0 - 76.0
Option "DPMS"
EndSection
Either way, it doesn't persist the actual configuration and on next boot I have to open nvidia-settings and change the resolution of GW2765 from "Off" to "Auto" to get the second screen on.
Offline
Got a dump out of nvidia-settings but I don't think it's related.
Sep 14 10:49:13 archie systemd-coredump[5368]: Process 5311 (nvidia-settings) of user 0 dumped core.
Stack trace of thread 5311:
#0 0x00007f4f0c1c8085 gdk_rectangle_union (libgdk-3.so.0)
#1 0x00007f4f0c974760 n/a (libnvidia-gtk3.so.435.21)
#2 0x00007f4f0c9783c0 n/a (libnvidia-gtk3.so.435.21)
#3 0x00007f4f0c60b4ec n/a (libgtk-3.so.0)
#4 0x00007f4f0c3741e0 n/a (libgtk-3.so.0)
#5 0x00007f4f0ba68b4a g_signal_emit_valist (libgobject-2.0.so.0)
#6 0x00007f4f0ba697f0 g_signal_emit (libgobject-2.0.so.0)
#7 0x00007f4f0c3784a3 n/a (libgtk-3.so.0)
#8 0x00007f4f0c58eb4f gtk_container_propagate_draw (libgtk-3.so.0)
#9 0x00007f4f0c58ff1e n/a (libgtk-3.so.0)
#10 0x00007f4f0c53f24d n/a (libgtk-3.so.0)
#11 0x00007f4f0c37833a n/a (libgtk-3.so.0)
#12 0x00007f4f0c58eb4f gtk_container_propagate_draw (libgtk-3.so.0)
#13 0x00007f4f0c58ff1e n/a (libgtk-3.so.0)
#14 0x00007f4f0c5d199d n/a (libgtk-3.so.0)
...
Stack trace of thread 5312:
#0 0x00007f4f0cbad667 __poll (libc.so.6)
#1 0x00007f4f0b98c130 n/a (libglib-2.0.so.0)
#2 0x00007f4f0b98c201 g_main_context_iteration (libglib-2.0.so.0)
#3 0x00007f4f0b98c252 n/a (libglib-2.0.so.0)
#4 0x00007f4f0b968bc1 n/a (libglib-2.0.so.0)
#5 0x00007f4f0b23f57f start_thread (libpthread.so.0)
#6 0x00007f4f0cbb80e3 __clone (libc.so.6)
Last edited by Stiege (2019-09-14 09:56:32)
Offline
Well, a little confused.. found
[stiege@archie ~]$ cat .config/autostart/lxrandr-autostart.desktop
[Desktop Entry]
Type=Application
Name=LXRandR autostart
Comment=Start xrandr with settings done in LXRandR
Exec=sh -c 'xrandr --output HDMI-0 --mode 2560x1440 --rate 59.95 --output DVI-D-0 --mode 1920x1080 --rate 60.00 --left-of HDMI-0'
But it was originally wrong - was trying to set HDMI-1 and DVI-D-1 which didn't exist, as well as having a OnlyShowIn section that was not for my chosen desktop.
All fixed now for my issue.
Offline
After playing around with this off and on for the last couple weeks, I've given up and switched over to Nouveau, at least for now.
/etc/X11/xorg.conf.d/20-nouveau.conf
Section "Device"
Identifier "NVIDIA Card"
Driver "nouveau"
EndSection
That got me my four monitors back with the ability to drag windows across them and have sane maximization behavior. However, with the compositor enabled in XFCE's "Window Manager Tweaks" dialog the performance was quite poor. I don't really care about all the fancy UI candy the compositor provides, so I disabled it, which made the UI much more snappy. However, I then noticed that some UI widgets (most notably the Whisker menu) developed a thick black border.
Poking around, I found a couple forum posts suggesting that using Compton for compositor duties might be a better idea, since it's supposedly much lighter resource-wise. Why not?
~/.config/compton/compton.conf
backend = "xrender";
fading = false;
shadow = false;
xrender-sync-fence = true;
That seemed to fix the Whisker menu issue, and was more responsive in general, though it's still not as great as the official NVIDIA driver I started with. For reference, glxgears only manages ~25 fps.
I'm going to leave this thread marked as unresolved as I don't consider my work-around a proper solution, but at least I can live with it. Perhaps at some point I'll break down and pick up a used Quadro on eBay that supports four monitors on its own, but I just hate throwing money and hardware at a problem ...
Offline
After using the above setup for a day, I decided the lag and sluggishness of the Nouveau/Compton combination was still too annoying. I disabled Compton (leaving Nouveau as the display driver) and the responsiveness came back, but the weird UI glitches on the Whisker menu returned.
I can't remember where I read it, but I came across a forum post saying that if you force an Xfce panel restart it can resolve UI glitches, and lo, it did! As such, I added an entry to the "Session and Startup" > "Application Auto-start" dialog to run "xfce4-panel -r" on login and, other than a flash when the panels restart, everything seems happier again. Also, glxgears averages in the low 50's now, which isn't as good as the (capped) 60fps it did with the old NVIDIA driver, but it's close enough.
Offline
As a follow-up to this, I recently broke down and picked up a used Quadro NVS 510 to replace the pair of GeForce GT 620's I'd been running. And just like that, I now have four monitors working while running the official NVIDIA binary blob driver. As I said above, I hate throwing hardware at a problem caused by an artificial software limitation, but being forced to run Nouveau eventually wore me down ...
Offline