Score:1

Upgrade to 20.04 can't use GPU!

us flag

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 'xfwm4' received an X Window System error.
This probably reflects a bug in the program.
The error was 'GLXBadPixmap'.
  (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

guiverc avatar
cn flag
You weren't specific as to what hardware stack you were using in 18.04; but if you were using the HWE stack on 18.04, why not use the GA stack on 20.04 - ie. use the same stack you were using before? (18.04.5 with HWE uses the GA stack from 20.04)
nPHYN1T3 avatar
us flag
Not sure why you think this is hardware stack. Discussing things on the XFCE forums actually turned up a code change around the same time things broke where (at least in XFCE) they stopped enumerating XScreens. I got XFCE working (ish) on 21.04 but due to the fact everyone seems to have phased out anything XScreen related every DE I've tested on any distro is completely broken for Multi GPU. I've asked another question where in what is the correct way to "define" XScreens with Xrandr.
guiverc avatar
cn flag
Sorry I meant software stack - ie. 18.04 with HWE uses the identical stack to 20.04 using GA. Big changes occurred in Xfce for sure; the backend of 18.04 was mostly GTK2, by 19.10 it was really all GTK3 so Xfce had massive changes behind the UI; but my intention in first comment was asking about the Ubuntu stack underneath Xfce (as hardware is most impacted by kernel modules (ie. *drivers*) and 18.04 can use the identical stack to 20.04, or a very different stack - but you didn't provide any specifics).
nPHYN1T3 avatar
us flag
This stuff seems like about GTK2/3 or HWE (I could be wrong) and more about things in the entire Linux universe moving away from Xorg. XFCE doesn't enumerate more than one XScreen now which breaks multi GPU because you are forced to use Xinerama or lose the GPU. I've found all DE have done similar. I suspect this is a Pre-Wayland code restructuring. I've asked another question about how do you define "XScreens" with xrandr then so I could run more than one DE or Xorg session per GPU and see if that works.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.