External monitor undetected by Xorg, blank screen

Using Manjaro kernel tool (manjaro-settings-manager → Kernel) and/or mhwd-kernel, I upgraded to Linux 6.1.23-1. After this, and perhaps some other package updates/installed including virt-manager, all devices connected to my AMD GPU started showing a blank screen. TTYs worked, but in the GUI/Xorg just a frozen screen, usually just a blank screen with an frozen/unchanging cursor.

My system has NVIDIA TU116 [GeForce GTX 1650 SUPER] and AMD Cezanne [Radeon Vega Series / Radeon Mobile Series]. Via the mhwd / manjaro-settings-manager → Hardware Configuration, I had always had selected video-hybrid-amd-nvidia-prime, proprietary drivers.

After much searching, turned out the problem was that the file at /etc/X11/xorg.conf.d/90-mhwd.conf had no configuration lines in it and placing the following after the comments solved the issue:

Section “Device”
Identifier “AMD”
Driver “amdgpu”
Option “PrimaryGPU” “true”
Option “OutputClass” “amdgpu-pro”
EndSection

I’m not sure if it’s a bug in the new packages, or some quirky circumstance that occurred in my system, but in case others encounter this as a common bug, I post this here for reference.

Perhaps similar to some other posts: Grey screen then blank when trying to use display port and hdmi port on GPU, External monitor won't work, Laptop monitor detected but not working. External monitor detected and working,

That is intentional. Normally you should have a config here: /usr/share/X11/xorg.conf.d/

I wonder if the options work here. Normally, you put Option “PrimaryGPU” “true” into the OutputClass section and not in the Device section.

But thats not what you (should) have installed … :thinking:
(mhwd should give you amdgpu … amdgpu-pro is mostly unecessary and in the AUR)

Maybe to clear up that … check

pacman -Qs amdgpu

That is intentional. Normally you should have a config here: /usr/share/X11/xorg.conf.d/

I didn’t know about that. I got the solution from an AI, after searching in several forums. I don’t why, but it worked. A file there has the following:

Section "ServerLayout"
    Identifier "layout"
    Option "AllowNVIDIAGPUScreens"
EndSection

Section "OutputClass"
    Identifier "AMDgpu"
    MatchDriver "amdgpu"
    Driver "amdgpu"
EndSection

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    ModulePath "/usr/lib/nvidia/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection