So, as the title says, if I connect an external monitor to my laptop it doesn't work if I am on Wayland. On Xorg this doesn't happen, as it connects with no problem whatsoever. I am currently using Nvidia proprietary drivers, and I know that sometimes they can work badly with wayland, but other than the issue with the monitor I think they are working fine.
I'd like to stick with wayland because of its gestures and the possibility of using kinetic scrolling with firefox, since they are really useful on a laptop.
Anyway, this is the output of glxinfo | grep "OpenGL renderer": OpenGL renderer string: Mesa DRI Intel(R) UHD Graphics 630 (CFL GT2), so that means that wayland is using the onboard intel graphics and not the nvidia one.
This is the partial output of inxi --full --verbosity=7 --filter --no-host regarding the graphics:
But what bothers me the most is the output of xrandr:
Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767
XWAYLAND0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 340mm x 190mm
1920x1080 120.01*+
1440x1080 120.03
1400x1050 120.01
1280x1024 119.96
1280x960 119.89
1152x864 119.94
1024x768 120.02
800x600 119.85
640x480 119.52
320x240 119.73
1680x1050 119.99
1440x900 120.07
1280x800 120.01
720x480 119.65
640x400 119.64
320x200 117.55
1600x900 120.07
1368x768 119.99
1280x720 119.86
1024x576 119.85
864x486 119.69
720x400 119.54
640x350 120.03
since the HDMI port is not even listed. On Xorg even with the external display disconnected the port is there.
Sorry if this is a stupid question, I have seen similar issues but they were either unsolved or what I tried didn't work, so any idea would be greatly appreciated.
Thanks in advance.
Sorry if I removed this post from the solution, but I tried some other things and I am more confused than ever.
Apparently the problem itself isn't the fact that nvidia-prime doesn't support wayland, but for some reason the problem is gdm.
I tried launching a wayland session from lightdm, and from there there is no problem whatsoever. So I'm trying to understand why the same thing from two different login managers gets two different results. I don't know if gdm fails to launch or start the gpu, but if I run nvidia-smi I get:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 465.31 Driver Version: 465.31 CUDA Version: 11.3 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 Off | N/A |
| N/A 40C P0 13W / N/A | 1MiB / 5934MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
so the card is on and on persistence mode, but for some reason prime-run and the external display are not working, while on lightdm they do.
If I try to launch prime-run glxgears -info this is what I get
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 150 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 26
Current serial number in output stream: 27
Since your issue is solved, I suggest you report and contribute upstream (whichever package developer) to improve their compatibility.
There is a misunderstanding about Wayland.
Because some distros, or Gnome introduces Wayland as default, people think it’s ready for production.
Totally wrong. They are just experimenting/testing, because they… can.
The majority of experienced Linux users know Xorg very well.
Only a few heroes know about Wayland troubleshooting.
I’m not one of them.
If you find anyone, please, ask him to help in here from time to time.
Thanks, unfortunately for what I've seen Wayland is still not very compatible with Nvidia except in some specific cases. Unfortunately I've not found a way to make it work in Gnome from GDM. I guess that for gaming / using an external HDMI I'll stick to Xorg for the time being. Anyway, thanks for the input!
What I mean to say is that prime-run works on xorg from both gdm and lightdm. It barely works on wayland if I launch a session from lightdm, but not from gdm
Internal panel running on the iGPU works fine when forcing Wayland with an amdgpu+nvidia laptop. Adding an external display (USB-C -> DisplayPort) causes GDM to crash a few times then restart in Xorg mode, and then the external display works perfectly using the dGPU.
Note, I do not use any management software with GNOME as it picks up the GPUs and routes things correctly.
I suspect this is something that will improve with Wayland/Nvidia, but for now Xorg is the way forwards (and it will be one reason why Xorg is preferred by /usr/lib/udev/rules.d/61-gdm.rules).