Still a good talk on software quality
Jonathan Blow - Preventing the Collapse of Civilization
@cstrotm I love listening to Jonathan Blow, even if I don't always agree with everything he says. You can just copy a program to a system on linux, it's called AppImage. And his comment about the OS layer... without it there's a lot of things you couldn't just do across those systems, like accessing the hard drive would be different on each system if you tried to go direct instead of through the OS. Same for shaders. You would shift it from metal/hlsl/glsl to Nvidia/Intel/AMD/Adreno/Mali.
@cstrotm Yes, but each OS vendor decided to make their own. So on Windows, hlsl is to allow all apps to use whatever graphics card on windows. On Mac, Metal is for allowing apps to use whatever graphics card. on Linux, GLSL allows you to use whichever graphics card. But you then to achieve compatibility to each would need to implement each of those separately. If you didn't have those, then you would need to implement Nvidia, AMD, and Intel's languages directly.
@cstrotm This makes perfect sense to Apple or MS, since they make it easy to just develop on their platform whichever GPU. Makes less sense when you get to the whole stack level, because now you're stacking abstractions on abstractions. Os abstracts the cards, then the engine abstracts the abstraction layers.
@kazriko Yes, and that is the regression, as with OpenGL it was possible to target different cards the same way across different OS.
There could be something like OpenGL for shaders. But it is not. And that is the regression.
@cstrotm also, Vulkan has a similar idea called SPIR-V. There's platforms that shut Vulkan out though, like Apple's platforms.
An instance for Kazriko