3 ms·
was trying to run swaywm this morning to no avail as it refused to start when it detects nvidia driver is in use. why did not wlroots work with nvidia drivers?
by synergy20 4y ago
was trying to run swaywm this morning to no avail as it refused to start when it detects nvidia driver is in use. why did not wlroots work with nvidia drivers? is it because nvidia drivers are closed that wlroots(i.e. swaywm) can not work with it? a bit disappointed.
- loeg 4y agoSome discussion here: https://news.ycombinator.com/item?id=21628494 https://news.ycombinator.com/item?id=21628494
- arghwhat 4y agoThat discussion is outdated. Current Nvidia drivers support GBM, and thus should work with wlroots. Their status of unsupported mean that the wlroots maintainers cannot help if it does not work as they cannot debug a closed source driver, making it impossible to see what might be wrong. General improvements that help nvidia compatibility are accepted though if other's identify an issue.
- singron 4y agoEvery other driver uses GBM, which is well supported by all the various software related to gpu buffer management. Nvidia decided to not use GBM and instead use this EGLStreams thing, which meant it wasn't compatible. Politically, this was contentious since nvidia was offloading a huge development burden onto the ecosystem to create parallel implementations of buffer management specifically for nvidia. Wlroots ended up deciding this was such an inane thing for nvidia to do, that they refused to implement EGLStreams at all. Eventually, nvidia backpedaled and decided to implement GBM. Now they are just behind, but everything will probably eventually support nvidia.
- vetinari 4y ago> why did not wlroots work with nvidia drivers? Because nvidia drivers traditionally didn't provide APIs that sway and other wayland compositors expected (drm, dmabuf, atomic) and tried to do it's own things (EGLStreams). For compositors it meant to have to code paths, one nvidia-specific and another one generic. Some compositors implemented both, others implemented generic only. For comparison, it would be like complaining that Windows/DirectX games do not run with a GPU that doesn't come with DirectX driver. Well, duh. However, Nvidia signaled a u-turn, that they are going to be more cooperative. How and when, well, it remains to be seen.
- mnd999 4y agoIt does work, you have to add —unsupported-gpu and there’s a bunch of other tweaks to make it good. There’s a long thread on the Nvidia UNIX driver forums on how to configure it. It is still unsupported though as wlroots only actively support open source video drivers.