Please stop perpetuating bad advices and stop writing static server layouts into your xorg.conf.
This will only come back to bite you.
I have recently experienced a very similar issue, which is temporarily resolved using the suggestions in this thread (as quoted below) and I have filed a bug report:
https://bugs.archlinux.org/task/70287
Not sure if it is indeed a bug, but hopefully this helps whoever gets here by the direction of Google.
-----------------------
cupid_stunt wrote:Found a solution that works.
Make the xorg.conf contain something like this:
Section "Files" ModulePath "/usr/lib/nvidia/xorg" ModulePath "/usr/lib/xorg/modules" EndSection
In my case that is the path needed for the missing "glxserver_nvidia" ( pointed out in the Xorg log at this line: NVIDIA: Failed to load module "glxserver_nvidia" (module does not exist, 0) )
Those paths can be found in :
$ cat /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf Section "OutputClass" Identifier "nvidia" MatchDriver "nvidia-drm" Driver "nvidia" Option "AllowEmptyInitialConfiguration" ModulePath "/usr/lib/nvidia/xorg" ModulePath "/usr/lib/xorg/modules" EndSection
I have absolutely no clue why the config from /usr/share is ignored. Long live X11, NVIDIA, linux, linux distros and the convoluted mess web of config files ....
I also had the same issue and this fixed it,. Seems like more than a coincidence especially considering the timeframe between us having the same issue.
]]>https://bugs.archlinux.org/task/70287
Not sure if it is indeed a bug, but hopefully this helps whoever gets here by the direction of Google.
-----------------------
Found a solution that works.
Make the xorg.conf contain something like this:
Section "Files" ModulePath "/usr/lib/nvidia/xorg" ModulePath "/usr/lib/xorg/modules" EndSection
In my case that is the path needed for the missing "glxserver_nvidia" ( pointed out in the Xorg log at this line: NVIDIA: Failed to load module "glxserver_nvidia" (module does not exist, 0) )
Those paths can be found in :
$ cat /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf Section "OutputClass" Identifier "nvidia" MatchDriver "nvidia-drm" Driver "nvidia" Option "AllowEmptyInitialConfiguration" ModulePath "/usr/lib/nvidia/xorg" ModulePath "/usr/lib/xorg/modules" EndSection
I have absolutely no clue why the config from /usr/share is ignored. Long live X11, NVIDIA, linux, linux distros and the convoluted mess web of config files ....
DO NOT forget the pacman hook.
I have encountered the same problem as the OP and solved it by adding the nvidia modules to initramfs.
However, I have question: is the pacman hook really needed?
Every time I upgrade with "pacman -Syu" the files "/boot/initramfs-linux.img" and "/boot/initramfs-linux-fallback.img" are regenerated. These same files are recreated also when using "mkinitcpio -P" from the above mentioned pacman hook. Am I missing something?
]]>Thanks for pushing me into putting the nvidia modules into the initramfs. Now everything works properly. No more Files section in xorg.conf. Also, the kernel argument is not needed in my case (modesetting = 1).
So for everyone that will hit a snag like this one, put your nvidia modules into the initramfs, like it said here .
DO NOT forget the pacman hook.
Thank you to everyone that gave up part of their time in order to help others.
Virtual beers on me!
a) because in doubt your xorg.conf overrides the outputclass match
b) because your early KMS efforts went wong: "lsinitcpio /boot/initramfs-linux.img | grep nvidia"?
a) even without the xorg.conf file, I still have software accel. I just have an incorrect resolution.
b)
$ lsinitcpio /boot/initramfs-linux.img | grep nvidia
etc/modprobe.d/nvidia-installer-disable-nouveau.conf
usr/lib/modprobe.d/nvidia.conf
usr/lib/modprobe.d/nvidia-dkms.conf
usr/lib/modprobe.d/nvidia-installer-disable-nouveau.conf
Make the xorg.conf contain something like this:
Section "Files"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
In my case that is the path needed for the missing "glxserver_nvidia" ( pointed out in the Xorg log at this line: NVIDIA: Failed to load module "glxserver_nvidia" (module does not exist, 0) )
Those paths can be found in :
$ cat /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
I have absolutely no clue why the config from /usr/share is ignored. Long live X11, NVIDIA, linux, linux distros and the convoluted mess web of config files ....
]]>I still have the issue. Still stuck to software rendering.
It's just the "fix" I previously found that became not reproducible.
Where else could I look and trace/investigate this ?
I should probably re-state that removing the /usr/lib32 path from the ls.so.conf.d/* files fixes the software rendering (llvmppe) issue, while creating others (the only one I saw before reverting was the text in the steam login was garbled and no input was possible in the fields of that window. Probably other applications were impacted too, but didn't get a chance to notice them.
This does NOT happen anymore.
I removed some lib32 GL-related packages (and what depended on them) since then
sudo pacman -Rs lib32-mesa lib32-libglvnd lib32-glu lib32-nvidia-cg-toolkit lib32-nvidia-utils lib32-sdl2 steam lib32-faudio lib32-glew pcsx2 wine winetricks
sudo pacman -Rs lib32-llvm-libs lib32-mesa-vdpau
and I cannot reproduce it anymore.
]]>Should that not suffice you might need to enable early KMS to ensure that the display is ready before xorg loads: https://wiki.archlinux.org/index.php/NV…de_setting
Tried that. No dice.
I should probably re-state that removing the /usr/lib32 path from the ls.so.conf.d/* files fixes the software rendering (llvmppe) issue, while creating others (the only one I saw before reverting was the text in the steam login was garbled and no input was possible in the fields of that window. Probably other applications were impacted too, but didn't get a chance to notice them.
]]>Remove the /etc/X11/xorg.conf and retry. Nothing of use happens there, and there's some potential loading conflict with what it should load from the drm-outputclass conf.
I already tried that. I stated in the initial post that the only thing changing is the resolution (to something like 800x600). glxinfo still shows llvmpipe as being used.
Should that not suffice you might need to enable early KMS to ensure that the display is ready before xorg loads: https://wiki.archlinux.org/index.php/NV … de_setting
Will look into this and come back with an update.
FWIW you have confirmed in dmesg/update logs that the kernel module for nvidia loads properly?
$ lsmod | grep nvidia
nvidia_drm 57344 1
nvidia_modeset 1187840 2 nvidia_drm
nvidia 19726336 76 nvidia_modeset
drm_kms_helper 262144 1 nvidia_drm
drm 585728 4 drm_kms_helper,nvidia_drm
$ dmesg | grep vidia
[ 21.055380] nvidia: loading out-of-tree module taints kernel.
[ 21.055388] nvidia: module license 'NVIDIA' taints kernel.
[ 21.059901] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 21.075428] nvidia-nvlink: Nvlink Core is being initialized, major device number 236
[ 21.078011] nvidia 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[ 21.153018] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 450.57 Sun Jul 5 14:52:29 UTC 2020
[ 21.156804] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[ 21.156806] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 0
[ 22.273891] nvidia-modeset: WARNING: GPU:0: BOE Technology Group Co., Ltd (DP-4): G-SYNC Compatible: EDID min refresh rate invalid, disabling G-SYNC Compatible.
[ 22.871037] nvidia-modeset: WARNING: GPU:0: BOE Technology Group Co., Ltd (DP-4): G-SYNC Compatible: EDID min refresh rate invalid, disabling G-SYNC Compatible.
[ 23.732420] nvidia-modeset: WARNING: GPU:0: BOE Technology Group Co., Ltd (DP-4): G-SYNC Compatible: EDID min refresh rate invalid, disabling G-SYNC Compatible.
[ 24.665174] nvidia-modeset: WARNING: GPU:0: BOE Technology Group Co., Ltd (DP-4): G-SYNC Compatible: EDID min refresh rate invalid, disabling G-SYNC Compatible.
[ 48.122775] nvidia-modeset: WARNING: GPU:0: BOE Technology Group Co., Ltd (DP-4): G-SYNC Compatible: EDID min refresh rate invalid, disabling G-SYNC Compatible.
Should that not suffice you might need to enable early KMS to ensure that the display is ready before xorg loads: https://wiki.archlinux.org/index.php/NV … de_setting
FWIW you have confirmed in dmesg/update logs that the kernel module for nvidia loads properly?
]]>