I just upgraded from 18.04.5 to 20.04.3. Using nVidia 470.57.02 The system can no longer use my primary GPU. It defaults to the "crappy" secondary GPU. If I enable my screens - add another XScreen for the screens on the main GPU xfwm (and most things) crash and glitch out.
(xfwm4:3126): Gdk-ERROR **: 22:09:25.726: The program
This probably reflects a bug in the program.
The error was
(Details: serial 0 error_code 161 request_code 150 (GLX) minor_code 16)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Trace/breakpoint trap (core dumped)
In dmesg
I get
[ 714.705496] xfce4-session[4220]: segfault at 0 ip 00007fe6373d5b7e sp 00007ffd4ef0d048 error 4 in libc-2.31.so[7fe637274000+178000]
[ 714.705510] Code: 0f 84 fd fe ff ff e9 01 80 f3 ff 90 f3 0f 1e fa 89 f8 31 d2 c5 c5 ef ff 09 f0 25 ff 0f 00 00 3d 80 0f 00 00 0f 8f 52 03 00 00 <c5> fe 6f 0f c5 f5 74 06 c5 fd da c1 c5 fd 74 c7 c5 fd d7 c8 85 c9
I had this all working fine on 18.04. If I enable Xinerama I can use both GPU and all screens but it causes tons of other problems.
During the install I noticed the Nouveau drivers saw both GPU's and all screens (it never had previously) but if I enabled the primary GPU the system got incredibly slow like it was using some crappy software frame buffer.
I'd also like to know why 20.04 enumerates the PCIe slots backwards...bottom up if you will.
Checked out a live session on 21.04 as well. Problem persists. It enables the PCIe1 GPU and if I enable anything on the primary GPU the system goes kerput.
I've been doing some distro hopping to trying to flush this out...is it xorg, is it something in the kernel? I've noticed other distros (also non-debian) are also enumerating the GPU's backwards. Perhaps just running the last found rather than choosing high to low. However Pop_OS (7) kinda runs things but in a strange way. It sees the primary GPU screens as "PRIME" screens. GPU Driver has been the same across all tests (470) so kernel/xorg is really my guess atm.
***As an update this really seems like all the major DE's (Gnome/Unity,KDE,XFCE,Mate,Cinnomon/etc) have stopped enumerating XScreens in what seems to be a pre-Wayland code restructuring. This breaks the ability to separately denote GPU's (that I know of).
I've asked a separate question about how you are supposed to denote "XScreens" with Xrandr as that seems to be the way to do things now but the docs are vague. Xrandr denotes GPU's as a "provider" but the syntax on how to denote things eludes me.
Xrandr XScreens on Multi GPU