That's an interesting take... this is why Linux gaming sucks. I get the pragmatism but we also need to be realistic that they aren't going to maintain a completely separate driver for Linux when the Linux gaming market share is barely a rounding error.
For workplace, sure. But the only reason I don't run exclusively on Mac or Linux is gaming. I've spent a lot of money and time in that ecosystem for that single reason.
There's a lot of people that care about gaming, even if you don't.
This will hardly change, back on my hard GNU/Linux days I came to realise that the gamer/demoscene culture and UNIX culture are totally opposed to each other.
The gaming and demoscene cultures don't care 1 second how much their tools cost, the openess of hardware and software tooling, rather the achieved results and getting their stuff on the hands of users, regardless how.
The GNU/Linux culture is all about the ideology of having stuff for free, replicating a desktop experience as if CDE was the epitome of UX, fulled with xterms.
Of course I am generalising and might get tons of counter examples, just noting my personal experience regarding friends and co-workers.
> The GNU/Linux culture is all about the ideology of having stuff for free
Uh, no. It's about having the freedom to fix, improve, or otherwise modify the software you use. Being free-as-in-beer happens to be a requirement for that, but it isn't the goal. Think about it this way: free software developers get paid to do work, instead of getting paid for having done work like proprietary software developers. You pay me to implement feature X, which is then released to the world for further improvement in the future.
Lol KDE has many flaws but bloat isn't one of them, I get the feeling sometimes that the presence of several ultra-ultra-light "desktop environments" on Linux causes people to think the major ones are "bloated" when in fact they're much smaller than the DEs on Windows/OS X. FWIW "slow under certain circumstances" does not necessarily imply bloat b/c a single badly implemented feature can cause slowness but that's not the same as bloat; try enabling compositing in some old versions of Xfce (basically right after it was added, maybe Xfce 4.2?) and you'll see what I mean real quick.
It is a matter of taste, of course, but compared to Windows 8 and Windows 10, common Linux/Unix desktop environments like MATE or Xfce are very pleasant to use.
Reliable wifi and streaming video appeal to a significantly larger market than GPU-heavy video games. Having a good, easy-to-use image editor (competes with paint.NET and old versions of photoshop) and music player (competes with foobar2k et al/the surprisingly good performance of iTunes on os x) doesn't hurt.
("Do users do X often?" isn't the question; "do they get annoyed when they can't?" is the question, and hardcore gamers tend to have one computer for gaming and oftentimes other computers for other stuff; if they were even using Linux on those it'd be a paradigm shift)
A forked version of it because Google didn't want to deal with "No." from the Linux maintainers when they were massacring the kernel into mobile ready form.
The point is that distro patches are trivial compared to Android patches. Your distro will continue to work fine with a vanilla kernel unless it's using an esoteric configuration, and even with esoteric configurations it's relatively easy to include necessary patches to vanilla kernel.
Compiling and using a vanilla kernel instead of the distro one is straightforward and easy job for people with basic knowledge of source building. It's not a job for "very few brave souls". The reason many people use distro kernels is because they're good enough.
OTOH any consumer Android device requires millions of loc patching to a several years old version of Linux kernel just to boot.
AFAIK, vanilla kernel improved a lot in terms of functionality, so Android can work on vanilla kernel if code will be adapted to use these new APIs instead of Android homegrown APIs. Anyway, it's open source, so anybody can use Android patches without restriction. I see no problem here. Kernel version 4.4 is fresh enough for me: https://android.googlesource.com/kernel/common/+/android-4.4... .
BTW. I'm not sure if my distro (Fedora) will work with vanilla kernel without Redhat patches. There was times when it wasn't. I compiled kernel myself with my own patches and configuration in between 2001-2008.
Isn't this true for desktop GNU/Linux too? I mean, last I checked, Debian kFreeBSD would be similar enough to Debian GNU/Linux as long as you don't drop to the console - the equivalent of which would be adb shell.
No, because you get full access to the OS APIs, so any application is exposed to the implementation specific behaviours of POSIX and OS specific syscalls and paths.
Where in Android, you just get Java and a tiny bit of C and C++.
Check the NDK documentation, Google provides a list of the set of APIs any NDK application is allowed to use.
Since many used to ignore that list, starting with Android 7, any app that uses unauthorised native libraries will get killed.
I'm not sure of numbers but AFAIR both kfreebsd and khurd have 80% of packages in the archive and even getting to this level requires Linux compatibility hacks like procfs support
> I get the pragmatism but we also need to be realistic
I think what you mean is "I get the idealism but you also need to be realistic." It's not pragmatic to stand your guns and ask a multi-million dollar company to change the code they submit to your open-source project.
It's not pragmatic to allow a specific vendor to dump 100k LOC in your project that you have to maintain indefinitely so their developers have an easier time writing for both Windows and Linux.
In my opinion the existing AMDGPU code isn't exactly spectacular as it is. They barely have comments or commit messages and there's a ton of duplication. Linux has issues with keeping driver contributions up to snuff as it is, without enormous vendor-specific HALs everywhere.
There's also nothing pragmatic in one-sidedly denying contributions without understanding the case that rewriting a whole business stack for a minor player makes no sense.
What I see here is (sadly, again) two groups of developers unwilling to meet halfway and understanding each others problems. Expecting AMD to support a completely separate driver just for Linux is unrealistic. Expecting a 100kLOC code dump do be accepted is unrealistic as well. I don't see anyone talking about how to get over this hurdle on lkml, I just see the single least constructive word: "No."
Meanwhile, 3D support in Linux will remain a crappy tire fire which works well only if you use a completely proprietary nVidia driver.
I've only got one true power as a maintainer, and that is to say No. The other option is I personally sit down and rewrite all the code in an acceptable manner, and merge that instead. But I've discovered I probably don't scale to that level, so
again it leaves me with just the one actual power.
This position is so self-defeating, I really don't know where to start.
1. There is absolutely value in rejecting bad, or even good but unmaintainable code from your codebase. How is this even an argument?
2. The 'devs' don't just all meet and then decide to blow each other off anyway, AMD is simply in a position with Steam where they want it to "just work" for most games at the lowest investment cost possible. They took a gamble and lost.
3. A updated proprietary driver is not ideal, but works better than making the OS worse. Again, not sure you can really disagree.
I feel like the LKML is the most hypocritical place I've ever seen. One one hand, we want that more people GNU/Linux which depends on the quality and performance and number of application programs that work on Linux, while on the other we seem to encourage developers to make closed source binary blobs because we keep on showing them that we aren't willing to accept code.
It is a lose-lose situation for a developer. If I write open source software, people will demand more and more from me. If I say, "screw this, I'm just gonna release a blob." they will ridicule me while ignoring the fact that I am releasing the blob only because they pushed me to. /rant
> It's not pragmatic to stand your guns and ask a multi-million dollar company to change the code they submit to your open-source project.
The maintainer explains the pragmatism explicitly:
> AMD can't threaten not to support new GPUs in upstream kernels without merging this, that is totally something you can do, and here's the thing Linux will survive, we'll piss off a bunch of people, but the Linux kernel will just keep on rolling forward, maybe at some point someone will get pissed about lacking upstream support for your HW and go write support and submit it, maybe they won't. The kernel is bigger than any of us and has standards about what is acceptable
Rejecting half-assed patches is pretty pragmatic, no matter who the author is. Maintaining standards is pragmatic because 'your open-source project' is the one that will be maintaining (refactoring/rewriting) the code in the future, not the muliti-million dollar company.
> I think what you mean is "I get the idealism but you also need to be realistic." It's not pragmatic to stand your guns and ask a multi-million dollar company to change the code they submit to your open-source project.
That has basically been Linus' Torvalds job for the last 20 years. People want to contribute to the Linux kernel to get support for the thing that they are interested in, but often the code that they are offering should not be accepted as-is, because it will make Linux as a whole that bit worse. See DBus for an example where clever people strongly put forward useful functionality, and got push-back. The end result was that they went back to the drawing board, and designed something better.
AIUI, the reason that the AMD and nVidia proprietary graphics drivers are a terrifying mass of hacks on top of hacks is trying to say yes to everything. Years later, the vendors can only move forward by setting fire to the whole lot.
Thing is, Linux was never intended to run the latest greatest desktop gaming hardware. It was intended to be an open architecture where people contribute from all around the world to make something larger then themselves.
All of these people pretty much contribute their free time to it.
If they can't make basic architectural decisions that improve the worst kinds of work (driver authorship and maintenance is awful drudgery) how can you expect them to feel any kind of ownership over their fate?
You're asking unpaid people to do the work people get paid for. Even worse, when this work just gets dumped on those unpaid people by people who are paid quite well.
Most work on Linux is paid[0]. However, asking paid people to do work that does not align with their employers interest nor the project maintainers, is on par with what you're asking.
>However, asking paid people to do work that does not align with their employers interest nor the project maintainers, is on par with what you're asking.
Oh but it is in their employers' interest. It's the price of admission for mainline. And if they want in on mainline, wether simply to harvest PR or to net a contract that demands a mainlined kernel; they have to pay it. Just another case of the well-known "cost of doing business".
In the case of AMD I believe they want to reap the benefits of mainline (that is, not having to support the breakage that comes with being out of tree) and to be able to compete better with Nvidia; since AMD is unlikely to ever develop an OpenGL implementation as good as theirs but Nvidia cannot or is unlikely to be able to open source their driver.
It might be different if AMD, Nvidia and Intel all agreed on a longer term HAL, but that isn't the case... and 100kloc is pretty huge for a single vendor.
They do, if that's what it takes to keep the qualities that make Linux different. If it turns itself into a shitty Windows clone, then one might as well use the original.
No, on the desktop, they absolutely do not. It may please a tiny subset of people who understand what the kernel is and read patch notes, but no one else.
It works fine for members of my family and extended family that have Ubuntu installs on Intel GPUs. Light gaming and more importantly, hardware accelerated YouTube works just fine.
I'd be willing to bet that most people really only want windows to appear quickly, scrolling in web pages to work well, and to watch videos online.
Lots of casual gaming has moved to mobile, and never left the consoles. Hardcore gaming -- not most people.
That sounds like someone who has no idea what they are talking about. The open source drivers are a bit buggy. The binary drivers work just fine on Linux. Their performance in games is lower compared to Windows, but that is the case on OSX too.