Why I need extra kernel modules to be able to run Wayland on nvidia?

If i run X.org i dont need to modify my kernel or its configs, it just works well (well, well for X.org) out of box. With wayland its the other story. I need to enable nvidia-dkms module and much other stuff to should be configured. There is a whole page about enabling hyprland on nvidia.

https://wiki.hyprland.org/Nvidia/

I ran into troubles trying to set up wayland preperly with nvidia, it has many issues and visual artifacts. I know that the problem somewhere in my kernel set up, but i feels like there would be no problem if hyprland/wayland would not require that granual configuration.

I keep thinking about wayland as a fullscreen videogame that just draws windows (in wayland it called somewhat else though, dont remember the term). And this is kinda weird for me that a video game needs special kernel modules.

Probabely if in wayland they could not require this extra set ups on nvidia, they would do that. They should have some reasons for not doing that i just want to know why?

Thank you :3

Sign in to add comment

Almost a decade ago there was a discussion how to draw into display buffers for Wayland. Everybody agreed on using Mesa GBM, nvidia wasn't really interested, but said they'd do EGLstreams.

As nvidia wasn't interested, and generally is a dick to everybody anyway Wayland development just progressed ignoring nvidia, and now they have to catch up to where all the other graphics driver were at already years ago. While ignoring most of the things those others learned, because they want to keep their own tiny proprietary island.

Just avoid supporting nvidias dickish behaviour by not giving them money, and eventually they might learn and change.

Permanently Deleted

I don't think it supports Wayland, and there are no mentions of Wayland anywhere on the website.

It seems you are talking about nouveau and very wrong. Nouveau is part of Mesa, which supports DRI/Mesa GBM by design. You can guess why.

Worked perfectly while I had nvidia gpu. Maybe even more stable than on X11, but memory is kinda fuzzy. It was few years ago.

open-gpu-kernel-modules

Isn't it their GPL shim?

Nvidia hid all of its special sauce in firmware starting around the 20xx series of cards

Nouveau says around Maxwell

Permanently Deleted

I had Kepler.

Nvidia nuked power managment mid-Maxwell. Gladly, at least one vulnreability has been discovered, that theoretically allows nouveau load their power manager.

That's the Nvidia drivers. Dkms just builds to match your kernel when the kernel updates. Intel and AMD contribute driver code so you don't have to do anything extra but Nvidia doesn't do that because they are shits.

As far as not needing it for x11 you are either using nouveau, the reverse engineered drivers which last I tried are effectively useless for any modern workload, or a non dkms version of Nvidia driver provided by distro maintainers or someone else and just didn't notice.

Nouveau got way better I heard

Probably nvk which I think just completed vulkan feature set for the newest cards recently, but is not reaching the windows fps yet. I still haven't gotten over Nvidia betraying me by dropping the GTX 460 from drivers at a time when it was still more than enough for me so I don't follow it very carefully.

0_o but you do need to configure a bunch of stuff in the kernel for X.org to work

I'm guessing that you've been using kernels from packages provided by your distribution and its maintainers simply haven't decided yet that Wayland is used wide enough to put things it needs into default kernel. But that's just a matter of time.
On distribution I use, for example, I did not have to compile my own kernel when I decided to check Wayland out. But that's only because kernel package maintainers of my distribution have decided to enable it earlier

This is hyprland specific, wayland runs fine on Gnome and KDE with regular, open and Noveau nvidia drivers

chances are you already used the external nvidia kernel module prior
the dkms package is just the "catch all" way which works on most setups
(at least on Arch Linux)

Depending on model, you don't need to.

Short version: Nvidia is terrible company

it sure will be interesting when xorg gets deprecated

Isn't it already deprecated?

well, to an extent that xorg only exists in outdated distros that no longer get updates is what I meant - but in essence, yes.

No Xorg also ships with up to date distros like Debian, arch, Ubuntu, etc but several of them have switched to using Wayland by default. It is deprecated because it is no longer actively developed and only maintained by a small group of devs and even that because these devs work for companies like Red Hat, Oracle, etc who have a vested interest in fixing those bugs

It is still part of various LTS releases till 2030 or something like that. Would not call it deprecated but more or less in maintenance mode.

Nvidia always needed a custom kernel module (driver). For xorg it used a private API and an xorg plugin. There is no plugin support for waland and it uses the generic API available in the kernel to access the graphics card called DRM (direct rendering manager). Nvidia is implementing it now as well, but it is not loaded by default yet I guess.