4 ms·
> NVIDIA's solutions is so fundamentally different that you'd basically maintain two compositors internally: One that handles every sane driver, and one that ha
by 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).
- nqzero 7y ago> no one goes around calling that one OS a "giant, existential, ecosystem-fragmenting threat to the open-source community." we did do that, and they were, but for the most part, for the moment (at least) we've won - so it's no longer on the tip of our tongue
- incompatible 7y agoI'm not sure what victory is being declared here: is Wayland likely to run on more than a tiny fraction of devices any time in the near future? If not, that "one OS" can take a large part of the blame.
- pjmlp 7y agoIn an age where POSIX is sliding into irrelevance in what concerns mobile and embedded OSes. "POSIX Has Become Outdated" https://www.usenix.org/system/files/login/issues/login_fall16_issue.pdf https://www.usenix.org/system/files/login/issues/login_fall1...
- pjmlp 7y agoThere are plenty of OSes that don't support POSIX, or if they do, they only support the parts they care about. So no, Windows isn't the only one that doesn't care.
- michaelmrose 7y agoYes
- thristian 7y agoX11 has a "standard compositor interface", but X11 compositors generally don't talk to the hardware directly, they talk to standard X11 drawing APIs like OpenGL or XRender. What you're talking about is really "Xorg drivers", a legacy from the time when Xorg was responsible for display hardware, and the OS kernel was responsible for every other kind of hardware. Hardware definitely needs drivers, but these days the Linux community has settled on the model that all drivers should live in the Linux kernel, where they can share common code like "talking to the PCI bus" and security infrastructure. What you're proposing is that, instead of having one driver layer from "standard API" to "hardware interface", there should be multiple redundant driver layers, so that NVIDIA can implement whichever layer optimally balances their desire to support customers with their desire to hide their intellectual property. That's not a crazy position (NVIDIA certainly holds it, and they're no small fry!) but telling Libre graphics-stack people "you need to make your architecture more complex and do extra work for free, to make this multi-billion-dollar company feel more comfortable" is always going to be a difficult proposition.
- arghwhat 7y ago> If Wayland had a standard compositor interface like X has, this wouldn't be a problem at all, would it? It does. It's called Wayland. I suspect you might instead be thinking of a standard window manager interface to plug into a compositor, rather than the other way around. The Wayland approach has been to just make it easier to write a compositor, instead of porting X's complexities and odd design choices. However, nothing stops you from making a compositor with such an interface. It won't be part of Wayland, but it would be its own spec. However, this suggestion would be a case of symptomatic treatment. The root cause of complexity is NVIDIA. > It's only because of Wayland's design This is not true. It just because Wayland is not X, and NVIDIA only has support for X. Under X, every driver had its own integration, which was a pain to make, maintain and use. For Wayland, the community got together to make a generic API that had nothing to do with Wayland, allowing applications (be it a wayland compositor or something else) to not have to think about what they're running on. NVIDIA, however, is just trying to throw more duct-tape, taking us back to the X era. You may ask "Why don't everyone just implement EGLStream?" - that is because EGLStream has no merit, and is just the implementation that would be easiest for NVIDIA to implement. Why would we make everything else worse, spending significant time and effort redesigning everything else, all to save NVIDIA a few bucks? If they have actual concerns, we can solve it as a community, but considering that everyone invested significant time in this project, we are not going to throw it all away and pick a vastly inferior model just so that NVIDIA doesn't have to do anything. NVIDIA is just one GPU manufacturer out of many, and on Linux, a small one. As for EGLStream problems: Performance and stability are the big ones. Ironically, EGLStream is bad for gaming, as we cannot do direct scanout with it (an optimization where full-screen content gets thrown directly to screen instead of going through compositing).
- anthony_doan 7y ago> NVIDIA is just one GPU manufacturer out of many, and on Linux, a small one. Is there a list of ranking anywhere? I vaguely have an idea of probably Intel is first then AMD second.