External display support stopped working on notebook with dual graphics

Hello,

I have a dual graphics notebook (Razer Blade 2019) to which I connected an external monitor via HDMI. The HDMI port is directly connected to the RTX 2080 graphics card. A while back I installed Manjaro and both monitors were working fine out of the box with the (default) video-hybrid-intel-nvidia-prime driver. Now at some point in the past few weeks (likely due to an update) the external display must have stopped working. Since I didn’t have the external display connected for at least 3 weeks or so, I can’t tell exactly when it happened. Also, to my knowIedge, I didn’t change anything graphics related since then and the display works as soon as I restart and boot into Windows… so the monitor/cable isn’t broken.

inxi -Gazy:

Graphics:
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: Razer USA 
  driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:3e9b class-ID: 0300 
  Device-2: NVIDIA TU104M [GeForce RTX 2080 Mobile] vendor: Razer USA 
  driver: nvidia v: 470.63.01 alternate: nouveau,nvidia_drm bus-ID: 01:00.0 
  chip-ID: 10de:1e90 class-ID: 0300 
  Device-3: IMC Networks Integrated Camera type: USB driver: uvcvideo 
  bus-ID: 1-7:3 chip-ID: 13d3:56d5 class-ID: 0e02 serial: <filter> 
  Display: wayland server: X.org 1.20.13 compositor: gnome-shell v: 40.3 
  driver: loaded: modesetting,nvidia alternate: fbdev,intel,nouveau,nv,vesa 
  display-ID: 0 resolution: <missing: xdpyinfo> 
  OpenGL: renderer: Mesa Intel UHD Graphics 630 (CFL GT2) v: 4.6 Mesa 21.1.6 
  direct render: Yes

nvidia-smi:

Wed Aug 18 18:37:43 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01    Driver Version: 470.63.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| 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 ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   46C    P8     5W /  N/A |      0MiB /  7982MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

xrandr --listproviders:

Providers: number : 0

I’m assuming, the problem has to do with no provider being listed and the graphics card being listed as turned off?

I’d be glad if someone could help. I’d just like things to work again since everything was working fine before.

Did you use wayland also before?

To be honest, I don’t know as I have been mainly using my work PC since I installed Manjaro on my personal one.

However, a simple startx from tty3 fixed the problem. So yeah, most likely I haven’t been using Wayland before and somehow it got changed.

I then checked my run/gdm/custom.conf. However, it says:

WaylandEnable=false

Wayland shouldn’t even be used then, right? How do I turn it off then?

Yes and this file:

/usr/lib/udev/rules.d/61-gdm.rules

But you use the Intel gpu as main, so this rule is for nvidia gpu as main.

When logging in, there on the bottom right a switch between wayland and xorg. Just choose the second on. It should be xorg then.

Somehow you changed modes from hybrid to integrated,HDMI port only works with hybrid or nvidia mode,the most easy solution is to install optimus-manager and change from integrated to hybrid or nvidia

pamac build optimus-manager

When you install it,make sure to follow the GNOME instrucctions

  • The default gdm package from the Archlinux and Manjaro repositories is not compatible with optimus-manager, so you must replace it with this patched version : gdm-prime (also replaces libgdm). The patch was written by Canonical for Ubuntu and simply adds two script entry points specifically for Prime switching. The package is otherwise identical to the official one.
  • Gnome launches Wayland sessions by default, which are incompatible with optimus-manager. To force Xorg sessions, You need to edit the file /etc/gdm/custom.conf and remove the # before the line #WaylandEnable=false.

After that,reboot then switch to nvidia mode for example.

optimus-manager --switch nvidia

Logout and login again and the external display should work again.

Thanks for these answers.

This actually worked. I don’t know why it suddenly defaulted to Wayland then.

I’m somewhat confused now.

According to this post, the following command will tell me my active GPU:

glxinfo|egrep "OpenGL vendor|OpenGL renderer"

Now, for me it says:

OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 630 (CFL GT2)

But if only the onboard graphics is active, how does my second monitor now work at all, since the HDMI port is directly connected to the Nvidia card?

Also, what benefit would I get from using optimus-manager over my current situation, now that things are working again after switching to Xorg in GDM?

I think wayland by default deactivate the HDMI port for some reason then,if you type

nvidia-smi

and there is a Xorg process,then yeah the HDMI port will work,that would explain it,I don’t use wayland so I don’t know how it works with optimus laptops.

Without optimus manager you will have a running Xorg process there always consuming energy,although I think with turing nvidia cards have a mechanism to have to power off even when a process is there doing nothing,I don’t know how that works though.

With optimus manager you can switch to integrated and remove the Xorg process there and invoke the nvidia card when you need it,but the HDMI wouldn’t work (at least yet until NVIDIA fix this).

Also there is a bug where if you only use the external display only and the laptop display is powered off,the external display will be lagging alot,for that solution is to switch to nvidia mode in optimus manager,maybe that is something you can consider.

But other than that,no other benefit.

Thanks for explaining. Okay, since currently I’m using my notebook mostly plugged in, I think, as long as these bugs/issues persist, I will keep it that way.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.