Dual GPU Dual X failing

I think this is a typical issue but I haven’t found yet a solution reading the various threads:

  • I have an internal GPU (Quadro P2000) and an external GPU (Quadro RTX 6000)
  • I am using UBUNTU 18.04 LTS
  • I want to run two separate X screens, one per each GPU
  • I have modified the xorg.conf file with the two screens but I am getting only 1 screen working, the other just shows an X cursor moving on a black or purple background
  • if I try to enable Xinerama, then I get two screens with the cursor moving but no contents

What am I doing wrong ? Thanks

If you configure for separate screens, the second wil initially just show a simple X cursor because most WMs just start on the first screen. Run something on it, e.g.
DISPLAY=:0.1 openbox

Yes if you do not use Xinerama the second screen will be cut off until you open something on it. Without Xinerama you have to launch programs explicitly on the GPU / XScreen that you want them on. As generix has shown DISPLAY=:0.0 for the GPU on PCIe1 (typically) XScreen 0 then DISPLAY=:0.1 for GPU PCIe2 XScreen 2.

So for example in a term you’d run
DISPLAY=:0.1 gedit ; DISPLAY=:0.0 firefox &

This would open gedit on your second screen and firefox on the first…providing you have gedit and firefox installed of course.

If you want to drag and place windows freely, have all your toolbar things like clipboard managers and fancy weather tools etc work on any screen you MUST run with Xinerama. Other wise if you for example use a clip board manager it will only be available on the XScreen you launched your toolbar with the applet on. This also goes for your “purple” screen being purple i.e. you can’t change the background or set a wallpaper until you launch your wallpaper manager on the XScreen/GPU of the one you want to set.

Unless you have very specific rendering needs just enable Xinerama and call it a day. If you do need to keep the GPU separate so the better one can run unhindered by having to “sink” to the lower ones standards then you will end up having to write start up scripts to define what launches where to keep the GPU’s apart. I know I run a 1060 with a 1660 and running together when they have to hand off draw operations the more powerful GPU is more or less bottle necked at the weaker GPU’s top end so they can hand off to each other and the 1060 won’t chit the bed and die is the 1660 hands it more than it can handle…weee.

First of all - thanks to both for the quick reply.

I tried, gedit opens in the other screen… but if I move the gedit window, it doesn’t refresh and so I get the screen full of gedit stuck windows…

…and why I don’t have any Xorg.1.log file in var/log ?

…and if I activate Xinerama, both screens are with a cursor and no toolbar etc

Well activating xinerama still requires you to set up the screen placements in the driver panel, make sure they are not overlapping or something stupid. Set them up, save the xconf, logout/back in so the x server is restarted with the new settings. I know when I set up my “simple” 3 screen set up I normally have to logout/backin at least 3 times. One to set up, save…but you can’t place things correctly until it’s been restarted because it locks some aspects. So logout, back in, reopen the driver panel, NOW I can move things…set it, resave, logout, back in, open the driver AGAIN…reposition again, apply…ug.

For my 6 screen set up…ug ug…You never did say how many screens per GPU, just that you had 2 XScreens (but not how many monitors per XScreen) so like I said, ensure everything is set up/placed, apply, save to the xorg.conf, restart x server, check the driver panel again to ensure it’s all correct.

As for the log, no clue, check /var/tmp/log or /tmp/log.

Thanks … I will try again with Xinerama, but I thought I did it right, I will try again right now.

But what about the issue with the gedit window not repainting if displayed in Screen 0:1 ?

Well the “Windows 95 smearing” I suspect is because you had screens overlapping causing some feedback or something. Again you never said how many screens per GPU/XScreen. If you had 4 screens across 2 XScreens overlapping I can only image what whacky crap might happen. I know when I set up it will default to overlapping a few screens which gives me a strange mirroring. However I’m not overly familiar with the Ubuntu Window Manager as I haven’t run a “normal” Ubuntu install in nearly 20 years. Not since Gnome 2 was the default DE.

Repainting issues depend on the WM running on the screen, try
DISPLAY=:0.1 mutter &

thanks ! this worked. Still I am not able to open terminal on that screen, any hints ?

About Xinerama, trying multiple options but the best I can get is two screens, with mouse running on it, but with nothing else - so I need to reboot and retry … any hint ?

BTW, thanks for all the support.

Instead of mutter, you can also try to run a complete gnome-shell on it.
Running a standard gnome desktop on a xinerama setup is a lost cause, gnome-flashback might work or you’ll have to switch to something else.

nPHYN1T3 ran into the new user first-day post limit
https://forums.developer.nvidia.com/t/multi-gpu-xy-offsets/123666/15?u=generix

… I did DISPLAY=:0.1 gnome-shell --replace …

what I get is in fact a gnome-shell but with two issues:

a= if I open a terminal, it opens in DISPLAY 0.0

b= I start getting thousand of errors like

(gnome-shell:3216): Gdk-CRITICAL **: 14:58:16.456: gdk_device_get_state: assertion ‘GDK_IS_WINDOW (window)’ failed

Start by letting me know how many screens per GPU (saw on my post you said one screen per). If you enabled Xinerama you don’t need to launch things by defining the DISPLAY variable. Are you running with or without xine?

Sorry I went dark. I tried to reply last night only to be told I had hit my maximum allowed posts.

Wee it’s letting me post again…why are you running your shell on there it should be auto started and only the applications you want on each screen should be launched. I’m starting to think you are missing a huge chunk of info about what you’re doing. Are you setting up from an Ubuntu minimal iso or something? If you did a normal Desktop Ubuntu install the DE should be auto started meaning you do not have to hand launch the shell on the specific GPU, just the applications you want on the screen IF you are running non-Xinerama.

As a side note why one screen per GPU, don’t those models have two outs?

Still not sure why generix is so anti xine. You will find for normal desktop use many tools become broken. For me my clip board manager for example only works on the screen the panel is on if I run things GPU locked aka no-xinerama. The panel has to be duplicated on every GPU because it can only access/list the things locked to the GPU it’s on…it’s a real mess. Again Xinerama is the only way to have a natural desktop on multi GPU unless the GPU’s are set up as CrossFire/SLI which also kinda negates all this talk since then you are only using one for an out and the other is just a slave for processing.

I think gnome-shell won’t work on both screens since it only allows one login per user and it sees both screens as separate logins. So you’ll have to use a different WM on the second screen, maybe try openbox.

Eon’s late but the issue is GTK broke support for enumerating XScreens so any DE that uses GTK is broken by design.