I’ve asked this on the driver forums as well as my DE but over time this seems like an XORG problem so I figured I’d spitball here and see if anyone can point me in the right direction.
So I’ve noticed with 2 GPU’s some applications have a serious XY problem which seems to be due to the xorg.conf layout. So for example…and keep in mind this is just one tested set up but more on this later.
GPU 1 – PCIe 1
GPU 2 – PCIe 2
3 XScreens – 3 physical monitors/screens
XScreen 0 => GPU 1 => physical screen -center-
XScreen 1 => GPU 2 => physical screen -left-
XScreen 2 => GPU 2 => physical screen -right-
With this setup if I click on a web browser to move the window it will jump 1920px right from the cursor. Right clicking for a context dialog will pop up 1920px left of the cursor…but wait this gets better!
*Some windows/applications/dialogs will honor the cursor placement. So while the dialog is on another screen moving the mouse will highlight correctly. Other times you have to move the cursor to the dialog to highlight/choose. In some cases if the dialog has another dialog (tree options) it will pop the new one up yet another 1920px away.
Originally I tried this set up with 2 XScreens but because GPU 1 (center screen) is inbetween the flanking screens the single XScreen had a “gap” which “covered” the center screen. It worked but the mouse cursor and other things would vanish when passing through because the blank gap in the one XScreen covered the other. So I simply made 2 XScreens so one didn’t extend over the other. In both cases I get this XY issue.
Jump back a bit I originally had each GPU running 3 screens. This was just for a while because my new screens had huge physical problems and were returned. While I was running 3 screens per GPU I noticed this but vertically. Clicking some windows would jump them 1080px above/below the cursor. Clicking some buttons would require me to click almost the bottom left pixel of the button only.
Eventually I realized this was in part due to physical placement of things. If I inverted the GPU’s PCIe arrangement things behaved. So in a way the fix is everything has to be in sequence and physically placed in the machine a specific way that still breaks my intended use case which was to have the GPU 1 – PCIe 1 card running the bottom screens and the GPU 2 – PCIe 2 card running the top screens.
In short this seems to be an issue where some window/modal/dialog types query cursor placement and are given the wrong XY. So for example somethings are fine while others seem to be given a “per screen” XY. What I mean by “per screen” is that in one instance a Window will query where to be and be given say 40px by 40px. This would be fine if that was the real XY but if that’s on a single screen but I’m on the 3rd screen the XY should be 3880px by 40px or in the 3×3 screen set up 3880px by 1120px.
So with all this said I’m curious about who/where would be best to report this issue? I searched for xorg specific forums and found nothing online. More so I’m not sure if Wayland will solve this (or when Wayland is even being used anymore).
At present I’ve confirmed this problem on both a stock Ubuntu/Unity 18.04 install and XUbuntu 18.04. I tried testing with a POP_OS + nVidia 20.04 install but it just freaks out as soon as Xinerama is enabled so I can’t get anything functional to test with (seemingly) without doing a full install which I wasn’t prepared to do previously.
As a reference with the 6 screen set up:
GPU 1 – PCIe 1
GPU 2 – PCIe 2
2 XScreens – 3 physical monitors/screens per
(Xinerama disabled on the individual XScreens (to group each screen on the GPU into 1) but enabled for the two XScreens)
XScreen 0 => GPU 1 => physical screens Top -left -center -right
XScreen 1 => GPU 2 => physical screens Bottom -left -center -right