This is Microsoft's playbook from a couple of decades ago.
This is Microsoft's playbook from a couple of decades ago.
The OpenGL 4.6 spec was released four months ago with new features and extensions come out all the time.
> Vulkan opens the whole low-level can of worms on you
Vulkan's API is unnecessarily ugly, it gives the impression of a low level API with all the structs and such but in reality the driver just picks up data from those structs to move around. In real low level APIs you use structs because they are memory mapped and/or aligned pretty much as the hardware expects it, but Vulkan is a hardware agnostic API.
And yeah, Metal is probably a better API but it is also only available on Mac which makes it a no-go for pretty much everyone outside the Apple bubble.
Personally i'll stick with OpenGL for the time being. I do not need much of the fancy stuff newer OpenGL versions have anyway (i don't do AAA-game level rendering) and i do not see OpenGL being dropped any time soon from any sane platform.
When it comes to Apple's stuff i'll decide between writing a small OpenGL wrapper myself for the functionality it use or just dropping the platform altogether when the time comes and they drop support for the API. Considering they still support Carbon (even if only for 32 bit programs), it might be a while until they drop OpenGL though.
Mantle came first, and nobody was ever going to adopt Mantle because it was an AMD product and nobody wanted to adopt a single GPU vendor's API wholesale like that. The two biggest platform vendors, Microsoft and Apple, managed to get Mantle-inspired APIs out years before Khronos got Vulkan out the door. What were Microsoft and Apple supposed to do? Wait? Force everyone to switch over as their APIs were gaining adoption?
Not supporting Vulkan on Windows (Only legacy ICD allows for it, outside Windows 10 sandbox), XBox, PlayStation (all models), Nintendo (all models other than Switch which has 2nd API, 1st being NVN) doesn't seem to affect game's quality.
Mantle is inspired on what game consoles have been doing for years, so it isn't like Apple and Microsoft needed to wait for it anyway.
Lack of tooling has been a common issue with Khronos and OpenGL ARB before them.
Pretty good at releasing paper standards, not so much creating SDKs with all the required infrastruture that other APIs offer out of the box.
(Heck, I would go so far as to say that OpenGL as a vendor-agnostic API for consumer graphics cards might not have been possible if Microsoft hadn't forced some level of standardization across graphics card vendors in order to get Windows logo certifiation, and if Microsoft hadn't pushed Direct3D, we could all be stuck using Glide for some cards, a different API for other cards.)