4 ms·
A downstream compositor which wishes to implement Nvidia support could do so and integrate it with wlroots. However, there are more reasons than political not
by Sir_Cmpwn 7y ago
A downstream compositor which wishes to implement Nvidia support could do so and integrate it with wlroots.
However, there are more reasons than political not to "support" Nvidia. Their alternative has genuine technical problems that would render large parts of wlroots broken.
- calcifer 7y ago> Their alternative has genuine technical problems that would render large parts of wlroots broken. If this is indeed true (and I have no reason to doubt you) then I wish you and the rest of the Sway folks would focus on those issues, instead of the political arguments because from the outside it all looks very petty when you write stuff like "Nvidia doesn't support Sway". Nvidia doesn't even know about you.
- ddevault 7y agoI've personally spoken at length with Nvidia graphics driver developers. They know who we are and they know the technical problems. If you have no reason to doubt me, then perhaps you shouldn't.
- calcifer 7y agoAs I said, I've never doubted your technical arguments. I'm just urging you to keep the petty stuff in check.
- csande17 7y agoAre the technical problems documented anywhere where non-NVIDIA-driver-developers can learn about them? Most of the discussion I've read online argues that to support NVIDIA's solution, everyone would need to add if(nvidia) checks to their code and maintain them forever. But this argument only really holds in Wayland's bizarro-world where all programs that arrange windows must also bake in code that interfaces directly with hardware to draw them on the screen. Absent any other technical problems, it's hard not to conclude that this is just an attempt to use politics to cover up one of Wayland's poor design choices.
- Sir_Cmpwn 7y agohttps://old.reddit.com/r/linux/comments/bdip8a/nvidias_patches_merged_into_kwin_does_that/el0yu5n/ https://old.reddit.com/r/linux/comments/bdip8a/nvidias_patch...
- arghwhat 7y ago> Most of the discussion I've read online argues that to support NVIDIA's solution, everyone would need to add if(nvidia) checks to their code and maintain them forever. This is a severe misunderstanding of NVIDIA's solution. NVIDIA's solutions is so fundamentally different that you'd basically maintain two compositors internally: One that handles every sane driver, and one that handles NVIDIA. Nothing in wayland is incompatible with NVIDIA's approach. GNOME supports it, and KDE recently gained support. However, the NVIDIA approach exists for only one reason: Because NVIDIA does not want to play along with the open source world, and doing the least amount of work to their proprietary driver. Unless NVIDIA turns their ship around, supporting NVIDIA is harmful to our community. Although, if they'd just keep up with our standardized APIs, maybe we could somehow accept their ridiculous proprietary drivers which has no place in this decade.
- csande17 7y ago> NVIDIA's solutions is so fundamentally different that you'd basically maintain two compositors internally: One that handles every sane driver, and one that handles NVIDIA. If Wayland had a standard compositor interface like X has, this wouldn't be a problem at all, would it? You could write your compositor that talks to the hardware using your "sane" interface, and someone else could write a compositor that uses the NVIDIA interface, and users could pick the compositor that works for them and use it with any window manager they choose. It's only because of Wayland's design that "GPU manufacturer creates nonstandard interface to their driver" is some giant, existential, ecosystem-fragmenting threat to the open-source community.
- jcranmer 7y ago> It's only because of Wayland's design that "GPU manufacturer creates nonstandard interface to their driver" is some giant, existential, ecosystem-fragmenting threat to the open-source community. That's not how I think of it. By analogy, consider POSIX. Every major operating system supports the POSIX interface--all of them, except one that is. But no one goes around calling that one OS a "giant, existential, ecosystem-fragmenting threat to the open-source community." Essentially, you have to pick a point somewhere in the stack where you define the common interface between the different hardware vendors. The problem is that one hardware vendor, because it's the 800 lb. gorilla who loves throwing its weight around, decided to not implement the common interface, hoping that its weight will force everyone else to adapt. Wayland is unfortunate enough to be in a position where it relies on that common interface being supported, but this isn't the only place that NVidia has decided to try to scuttle cross-vendor compatibility (GPGPU computing is a very notorious case).
- arghwhat 7y agoThis would be a great idea if NVIDIA was open to suggestions so that things could be fixed. However, they mostly refuse to play ball. They did seem to be preparing an alternative suggestion, but they seem to have dropped it entirely in favor of just dumping EGLStream patches on KDE and GNOME, hoping every one else will be forced to follow.
- BearOso 7y agoThe alternate suggestion would work like EGLStreams. The current Nvidia driver can’t handle any more. EGLStreams works by having children pass ownership of the surface they want to display to their parent for compositing. This invalidates said surface. GBM is a coherent model. Handles are passed around to prevent the need for copying, but ownership isn’t transferred. Nvidia’s driver is a black box, but I don’t think they can do things that way without some significant driver refactoring. Obviously that’s costly, so they’re trying to avoid doing it. AMD took a gamble when they began their open source initiative. It’s starting to pay off now with stuff like Stadia and the Valve stuff. I feel like Nvidia is going to have to do an open driver eventually. I hope they’ve got at least something in the works that we don’t know about. I’m not going to suggest replacing Nvidia cards if they’re working fine for what you do. Just look at AMD (or Intel next year) if you start hunting for your next card. Don’t fall into the brand loyalty pit.