Regarding EGLStreams support in KWin
Drew DeVault <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kwin |
|---|---|
| Message-ID | <[email protected]> |
To my friends at KDE: I'm writing to ask you not to merge the patch from NVIDIA's Erik Kurzinger which adds support for the EGLStreams API to KWin. There are numerous reasons not to, both technical and political. I know that thinking about these issues can be exhausting, and I apologise for bothering you with them. Still, it would mean a lot to me if you read what I have to say and gave it some thought. <technical appeal> This code should scare you. If I'm just reviewing this patch for C++ style and does-what-it-says-it-does factor, it passes. But I would be an irresponsible maintainer to stop there. Here are some of the other reasons I don't like it: There's no free software implementation of this API to verify it against. If you're trying to build and test KDE, this whole module is just dead code and you have to assume it works. Anyone who wants to refactor the APIs it uses and doesn't have an Nvidia card or doesn't want to use the proprietary driver will just have to hope. On the other hand, the GBM code path works for any non-NVIDIA driver. Even if NVIDIA offered a CI platform like Intel does for its open source Mesa driver - and they haven't - it would require round tripping to their servers to test this code. If you do find bugs, your only recourse is to tell NVIDIA about it. You can't do any more research on it yourself, or collect any additional details to include in your bug report. Is it actually a driver bug, or just a mistaken assumption in your code? You have to ask NVIDIA and hope they get back to you before the next KDE release. There's no light at the end of the tunnel here. I think we can safely conclude that NVIDIA's commitment to work on a new allocator library was an empty promise, given that there have only been 52 commits in 3 years, the most recent of which turns a year old next week. If you merge this, you're almost certainly stuck with it forever. Consider insisting that NVIDIA provides and demonstrates progress on a concrete plan for unifying the graphics stack first. Alternatively, writing an EGLStreams implementation for even one other GPU vendor - or even nouveau - would be an excellent way to demonstrate their good faith. <political appeal> Today Linux easily has the broadest support for all kinds of hardware out of the box of any operating system available today. Do you remember what it was like 5-10 years ago? Proprietary drivers were the bane of our existence. Wi-Fi alone drove many of us insane. Upstream's hardline stance on this matter is the reason that the situation has improved so much. Every driver which has a free driver in the usptream kernel has a stark difference in quality compared to proprietary drivers for the same classes of hardware. A lot of these upstream drivers work so well that we've all but forgotten about them. Improvements to upstream drivers for any vendor lead to improvements across all vendors, and the end result is that upstream drivers grow better with time. Proprietary drivers instead grow stale. The upstream kernel is without a doubt the best place for drivers. Force NVIDIA to get with the program. They need to either contribute to Nouveau or write an open source driver of their own. Right now they're bullies who are trying to force the Linux ecosystem into a box which is conveniently shaped for their proprietary code. There's no excuse for things like withholding signed firmwares from Nouveau. Don't cave to bullies. Supporting their bad behavior is doing your users a disservice. NVIDIA makes upwards of 10 _billion_ dollars a year. How much of that would it take to fund the development and maintenance of an upstream driver? How can you tolerate that they don't? Sure, NVIDIA is probably the most popular GPU vendor out there today. But supporting their monopoly is only going to make it worse. Throw your lot in with the companies that actually care about Linux. If the GPU that happens to be installed in your workstation is making an unbiased judgement difficult for you, I will personally buy and mail you a better one. Consider that a standing offer for anyone who works on Linux graphics. <personal appeal> What motivates you to work on KDE? Perhaps you find the project technically fulfilling to work on. Perhaps you appreciate the work of those who came before you to build a desktop you love, and you want to give back to the project. Maybe you love and want to support free software, and know that KDE represents an important piece of the free software ecosystem. What about your personal goals? Do you want to build a piece of software that you personally enjoy using? Do you enjoy being able to make an impact on such a large and important project? KDE has a great and friendly community, and perhaps you enjoy collaborating with all of the cool people in it. Whatever the reasons, think carefully about why you work on KDE, and on your personal goals for the project. Consider if EGLStreams is going to help you achieve these goals. Is NVIDIA helping you accomplish KDE's goals, or is KDE helping NVIDIA accomplish theirs? And if it's helping you accomplish theirs - advancing proprietary drivers and securing their monopoloy against players who love and support Linux - are you okay with that? <conclusion> The patch was written by a friendly enough guy and delivered with a smile, but don't forget about the company behind it and what it represents. If you're not willing to reject it outright, here's my suggestion: make NVIDIA maintain it out of tree for a few KDE releases. Users who really want to install it can pull down and compile the patch themselves, and maybe even convince their distro to include it - or just stick with X11, which is still supported by KDE. Until then, if you make them wait, they will show you how willing NVIDIA is to keep up their maintenance promise. If the patch doesn't become stale, maybe they're serious. In my opinion, rejecting it outright is the better decision, at least until NVIDIA starts being a better citizen of Linux. You are the stewards of KDE and if you think a different course wiser, it's your ship to steer. I've said my bit. I appreciate your attention and thoughtfulness. -- Drew DeVault