5 ms·
The game revs ruined it for everyone else ;) The revisionist history: AAA game developers are used to console APIs. Which do exactly what you tell them to at t
by Jasper_ 6y ago
The game revs ruined it for everyone else ;)
The revisionist history: AAA game developers are used to console APIs. Which do exactly what you tell them to at the hardware, no sugar coating or drivers in the way. Having shipped a few games, drivers are indeed a terrible curse. One vendor's D3D11 drivers are pretty notorious for being incredibly invasive to your game in the goal of speed, making it difficult to ship content that was consistent across devices. Another vendor, sick of having to turn their driver into a rocket engine, found common ground with some game developers, and made a prototype, Mantle, which showed real-world performance gains on game content. But it was pretty specific to how their hardware and GPUs worked. But given that Xbox wanted performance, Microsoft was I intrigued and worked closely with that vendor to design the next-generation Direct3D API.
Meanwhile, the vendor with the super fancy drivers had a pretty major chokehold on OpenGL, which is just an absolute terrible mess of a bad API. It's an API that is so backwards and difficult that nobody likes it from the driver or the application perspective, but given that this vendor had the best drivers for it, they didn't want to lose it. But Mantle vendor wanted to shake things up and submitted Mantle to Khronos, the organization that standardizes OpenGL, to form the basis for the "gl-next" initiative. Mobile GPU vendors get invo.ved and turn the design into a mess. The original engineers who designed Mantle left their parent company over design disagreements to go join Apple, who also had a vested interest in getting rid of OpenGL but had little desire to use gl-next. This is Metal.
Ultimately, D3D12 is Microsoft's turf. Nobody likes Vulkan but it's there on Android and Stadia and Linux and is pretty mediocre there. And Metal is pretty well-rounded but is the domain of Apple.
3D rendering has always been a mess, but now it's even worse because tiles exist, data bandwidth is crazy expensive, and game revs need more fidelity and FPS than ever before. Synchronizing between coprocessors is now the job of the application.
- ekianjo 6y ago> Nobody likes Vulkan but it's there on Android and Stadia and Linux and is pretty mediocre there. Mediocre on Linux? Since when?
- dcow 6y agoDidn't Vulkan omit a way to query for active displays so you just have to pick a random display index when your application starts up? Other than that I thought Vulkan was pretty decently comparable to Metal. I don't have any first hand experience with it though.
- josefx 6y agoThat sounds more as if it would be a window system specific issue? As far as I know OpenGL didn't have that kind of API either and you had to use X11 and the glX bindings for that kind of information.
- phire 6y ago> Microsoft was I intrigued and worked closely with that vendor to design the next-generation Direct3D API. I've heard "accusations" that it was actually the inverse. Microsoft and that vendor were working together on next gen consoles, including the new D3D12 API. But Microsoft weren't planning to release it on windows until long after the xbox one released. The vendor wanted something to show off now, so they pulled together Mantel in a reasonably short time-frame and announced/launched it before D3D12 was even in an announceable state. I have idea if these "accusations" are true, it's just what I've heard.
- smallstepforman 6y agoI didn't know that Johan Andersson, from DICE (Battlefield) fame who created Frostbite (the EA engine), the creator of Mantle spec, joined Microsoft. Is your data correct?
- boltzmann_brain 6y agoNo, he co-founded Embark studios with other DICE guys and is doing Rust.
- sharpneli 6y agoDifferences between Mantle and Vulkan are not that big, some things are super similar. The biggest difference between Mantle and Vulkan are renderpasses, and that can feel like a mess if one is used to immediate renderers, but as a concept it’s very much core in Metal and even DX12 has it.
- gpderetta 6y agoTo complicate the mess, the other vendor DX11 drivers are so bad that some Windows users have started using DXVK (really designed for Linux, but works just fine on Windows) to translate DX11 to Vulkan and getter better performance in many games.
- pjmlp 6y agoVulkan is actually only on Android after version 10. It was introduced as optional API on Android 7, besides Google and Samsung flagship phones, no one else cared. Also the drivers are so buggy that Google introduced the concept of updatable graphic drivers via the store. Now look at Android updates, version 10 market share and enjoy Vulkan.