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.

@kazriko metal/hlsl/glsl are software abstractions on hardware. It is at the same level as an OS.

The abstractions could be made the same API.

But the companies that create these abstractions do want to make it hard to create games that are cross platform


@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.

Sign in to participate in the conversation
Arkaic Mastodon

An instance for Kazriko