Moreso than with OpenGL, we’re seeing a fierce competition erupt between Microsoft’s DirectX 12 and Khronos Group’s Vulkan graphics APIs. Both have been relatively slow burners so far, with 20 released DirectX 12 titles and 21 Vulkan games, although it should be said that a large chunk of Vulkan titles are on mobile platforms.
What these two competing graphics APIs actually do is functionally the same. They are both concerned with optimising the rendering pipeline, so the actual performance benefits should be practically the same. They are each low-level APIs that pass off instructions from your CPU to your GPU, freeing up your CPU for other tasks.
The key differentiator is that Microsoft retains strict control over the platforms where DirectX 12 can be used, while Vulkan is open to all. To that end, DOOM developer id Software said: “using DX12 over Vulkan literally makes no sense.” Valve too has been outspoken on this matter, saying DirectX doesn't make a lot of sense.
From a developer perspective though, I should imagine Microsoft’s behind-the-scenes support for DirectX 12 development is also great, but this is pure conjecture at this point. You can also fully debug DirectX, whereas with Vulkan you can’t. DX12 also has strong Nvidia support, while it also makes it remarkably simple to get a game up and running on the Xbox One.
What is perhaps worrying for Microsoft is that despite DirectX 12 games largely being bigger names than Vulkan titles, just five upcoming games have confirmed DirectX 12 support. Of these five games, three are being published by Microsoft Studios. Star Wars Battlefront II and Assassin’s Creed Origins are the only upcoming third-party games with DX12 support confirmed. All five are sure to be huge titles, however.
|Star Wars Battlefront||Quake 3 Arena|
|Rise of the Tomb Raider||Roblox|
|Gears of War: Ultimate Edition||DOTA 2|
|Ashes of the Singularity||The Talos Principle|
|Total War: Warhammer||Score! Hero|
|Deus Ex: Mankind Divided||Need for Speed: No Limits|
|The Turing Test||Heroes of Incredible Tales|
|Forza Motorsport 6: Apex||Dream League Soccer|
|Halo 5: Forge||Ashes of the Singularity|
|Heroes and Generals||Olympus Rising|
|Forza Horizon 3||
|Gears of War 4||Mad Max|
|Battlefield 1||Galaxy on Fire 3 - Manticore|
|Civilization VI||Ballistic Overkill|
|Sniper Elite 4||Warhammer 40,000: Dawn of War 3|
|Halo Wars 2||Ark: Survival Evolved|
|Forza Motorsport 7||Wolfenstein II: The New Colossus|
|Crackdown 3||Serious Sam Fusion 2017|
|Sea of Thieves||Escape from Tarkov|
|Star Wars Battlefront 2||Geocore|
|Assassin's Creed Origins||Serious Sam VR: The Last Hope|
There’s also been one high-profile defect (and we suspect more to come) when Cloud Imperium Games opted to axe DirectX support entirely from Star Citizen. At the moment the incomplete game runs on DirectX 11, but CIG is moving the entire game to Vulkan because it “doesn't force our users to upgrade to Windows 10 and opens the door for a single graphics API that could be used on all Windows 7, 8, 10 & Linux.” It’s strong reasoning, and a difficult stance to argue against. While an estimated 50% of PC gamers (according to Steam’s hardware surveys) use Windows 10, that still leaves half of the PC gaming population unable to use DirectX 12 whatsoever. The benefit of Vulkan is that it is inclusive to all, regardless of platform and regardless of operating system. It is used in Windows games, mobile games, Linux games and Mac games.
As it stands, based on the quality of their respective libraries, DirectX 12 probably has the edge. It's also been out longer though, and it would be a totally different story were it not for Microsoft's own output. Based on what you've seen from the respective graphics APIs so far, which do you think will ultimately end up as the champion? Will Vulkan see widespread adoption? Or will Microsoft's billions save it again? Let us know!