We also patched 470xx and 390xx driver series as needed. We currently matched also the patches provided by AUR: 390xx, 470xx
390xx got its last update by end of 2022, and we managed to keep it alive with kernel patches. If you have a legacy gpu you may consider to use the FOSS nouveau driver or exchange the GPU for a newer hardware.
With the latest patches provided you also need to enable modesetting for 470xx and 370xx drivers. We have enabled that for you by default now.
Not sure if my Problem was with the Kernel 6.12 or the Nvidia 550 Driver, All seemed to work okay until i loaded up steam and tried to play a (Proton) Game, My Performance was all over the place and the Game had Micro Stuttering, 2 Second Freeze’s, before 6.12 the Game (RipOut) run at my monitor V-Sync (100mhz) 100fps with very rare drops to 89fps, and no Micro Stuttering or Freezing.
Went back to Kernel 6.11 and the Game is running normal again.
So i don’t know which to blame, Kernel or Nvidia?
Works, except that upgrading to kernel 6.12 / driver 550.x broke sleep/suspend and hibernation for me, which I was able to fix by patching the hook /usr/lib/systemd/system-sleep/nvidia (which is installed by nvidia-utils).
This is a bit of a longer story, I’ll try my best to keep it short:
Whenever the system goes to sleep/hibernation and wakes up, NVIDIA hooks those events using /usr/lib/systemd/system-sleep/nvidia and directs them to their script /usr/bin/nvidia-sleep.sh.
When entering sleep/hibernation, the script is called with argument suspend. It will then switch to a certain virtual terminal and issue a suspend request to the driver.
When waking up, the script is called with argument resume. It will then issue a resume request to the driver and switch back to the virtual terminal that was active before entering sleep/hibernation (i.e. usually the vt running X11/Wayland).
Now, on my system, I noticed that said script never gets called when entering sleep/hibernation. Services /usr/lib/systemd/system/nvidia-*.service should do that, but they don’t on my system. I’m not overly familiar with systemd, maybe those services just need some additional configuration?
Anyway, to quickly fix this, I simply patched the hook to perform both operations:
#!/bin/sh
case "$1" in
pre)
/usr/bin/nvidia-sleep.sh "suspend"
;;
post)
/usr/bin/nvidia-sleep.sh "resume"
;;
esac
No, I didn’t, at least not manually. All those services are disabled on my system (see output below).
Should all of these be enabled? There are no instructions regarding those services in the Wiki (unless I missed something). And if those are meant to be enabled, why aren’t they by default when NVIDIA drivers/packages are installed?
KDE, wayland and nvidia here. Sleep and resume is working fine. Hibernate not tested as I don’t use it. No integrated graphics on my setup - only discrete graphics. Plasma looks, runs and feels considerably better on wayland than on X11. Thanks Manjaro for the great work.
That would help, as would adding corresponding information to the Wiki.
Is there some sort of per-package information system implemented in pamac and/or pacman? As a former Gentoo user, I was used to be advised by the package manager when additional manual steps were required (like enabling a service or reviewing configuration options), and I always thought that was a quite elegant solution.
It is mostly only needed to enable the services when wayland is used. So did youbtest with services enabled?
# Enable NVIDIA Services at first installation
# The services are mandatory, see under systemd configuration
# https://download.nvidia.com/XFree86/Linux-x86_64/560.35.03/README/powermanagement.html#SystemdConfigur74e29
# This is also an requirement to have sleep working together with PreserveAllocations
# https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/55644f78820fd382fbdf283b1fd7f08e6b7c22d7
# https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/merge_requests/16
systemctl enable nvidia-resume nvidia-hibernate nvidia-suspend
Sorry, but a big NO to that. I’m on X11, and reinstating the /usr/bin/nvidia-sleep.sh suspend call fixed sleep/hibernation, so this is certainly NOT only required for Wayland, but for X11 as well.
You can test it with sudo pacman -U https://mirror.easyname.at/manjaro/pool/overlay/nvidia-utils-550.135-2-x86_64.pkg.tar.zst which enables it now by default.
Works with the services enabled, BUT that package still contains hook /usr/lib/systemd/system-sleep/nvidia with an active post handler, resulting in two calls of /usr/bin/nvidia-sleep.sh resume when waking the system. Should not be a big issue though, purely cosmetic as the second call won’t actually do anything (see resume handler in nvidia-sleep.sh).
In other words: that hook should be removed when the services are used/enabled.
I added some basic logging to both files, here’s the output when entering sleep/suspend and then waking up again (with the services enabled and the hook in its original form):
/usr/bin/nvidia-sleep.sh called (1 args): suspend
/usr/lib/systemd/system-sleep/nvidia called (2 args): pre suspend
/usr/lib/systemd/system-sleep/nvidia called (2 args): post suspend
/usr/bin/nvidia-sleep.sh called (1 args): resume
/usr/bin/nvidia-sleep.sh called (1 args): resume
I can also confirm that the NVIDIA open source NVK (mesa) drivers work fantastic with this kernel if you want to go that route. Very easy. I believe NVK drivers have matured into “ready for prime time” status. You may want to check them out.
I was using kernel 6.12, Wayland and Nouveau drivers on a Nvidia GT710 and had no problems.
Yesterday switched to Nvidia 470 and Wayland stopped working. The login screen appears, once logged there’s only the background image and the cursor. No menu, no panels, no desktop icons. Right clicking the mouse appears the context menu. I can create a folder in the desktop or go to screen properties where there’s another screen I don’t have:
After today update (including Nvidia 470) Wayland still doesnt work. X11 works fine as usual.
POST-EDIT: I’ve just realized the non-existent 640x480 screen was set as primary by itself (I haven’t changed anything here). Setting HP27wm as primary made my Wayland desktop reappear. Then unchecked the “Activated” checkbox of the 640x480 screen and so disappeared. Now everything is working fine.