Khronos To Create 'Meta-API' For Vulkan, Metal, And DirectX 12

The Khronos Group, which is the maker of all sorts of cross-platform application programming interfaces (APIs), including OpenGL and Vulkan, announced that it will create an even more portable API that will work on top of Vulkan, Apple’s Metal, and Microsoft’s DirectX 12.

The group said the move was highly requested by the industry, but at the same time it might bring some confusion to what the goals for Vulkan--the original next-generation graphics API--are supposed to be.

Vulkan API

Both Vulkan and DirectX 12 (or rather Direct3D 12) were born, in a sense, out of AMD’s Mantle API, which promised to bring significantly higher multi-core CPU performance in games.

DirectX 12 was, of course, Microsoft’s graphics API for its own platforms, whereas Mantle was seen as too close to AMD to be adopted by other chip makers. Therefore, AMD donated Mantle to the Khronos Group so it could build a more cross-platform graphics API out of it that everyone can back.

Vulkan’s support is not quite universal yet, but it is supported on a large majority of computing devices, including devices running Windows (indirectly via chip makers’ drivers), Linux, and Android (starting with version 7.0 of Android). Apple seems to have been the only major player from the mobile and desktop computing markets that hasn’t adopted Vulkan, because it already has its own “Metal” graphics API.

Khronos’ Plans To Increase Portability

Khronos argued that the field is actually rather fragmented so that a new API--a meta-API if you will--will be needed to act as an overlay on top of Vulkan, Metal, and DirectX 12. The group said that the solution would need to run at close to full efficiency (compared to the more “native” and explicit APIs on top of which it would be built). It would also have to address differences between the three APIs, as it’s likely that not all three will evolve in sync with each other.

Khronos’ idea to solve the problem of dealing with differences seems to be to omit them altogether and base the new “portable API” on the intersection of features of the three explicit APIs. In other words, the feature specifications of the portable API will be defined by the lowest common denominator between Vulkan, Metal, and DirectX 12.

The group added that mainly the performance-oriented features of the three APIs will be omitted. This raises the question of whether or not Khronos’ goal of reaching “close to full efficiency” will still be reached when some of the performance optimizations used by each of the three explicit APIs will be removed.

Building A Next-Gen Web Graphics API

The one place where the new meta-API may make some sense is for the purpose of building web games using the next-generation APIs. Explicit APIs such as Vulkan and Metal are likely too low-level to be used by browsers directly, if nothing else because of security concerns (attackers being able to gain direct control over hardware remotely).

Some kind of overlay or sandbox would’ve needed to be built anyway, but at the same it would need to bring better performance than the recently finished WebGL 2.0 specification (based on OpenGL ES 3.0).

Apple actually announced something similar last month: an API called “WebGPU,” meant to be a standard for web graphics that would work on top of Vulkan, Metal, and DirectX 12. However, considering Apple didn’t want to adopt the existing open Vulkan API, it seems strange of Apple to want everyone else to adopt its own standard now.

A Compromise With Apple?

The idea for the new Khronos meta-API likely exists in the first place because Apple wouldn’t want to adopt Vulkan. Vulkan already works on Windows through driver support from the chip makers, so Apple is the major roadblock in making Vulkan truly cross-platform.

Perhaps a compromise could be made between Khronos and Apple, where Khronos (and all of its members) adopt Apple’s WebGPU API, which would work on top of Vulkan and DirectX, while Apple ditches Metal and adopts Vulkan. This way, Khronos wouldn't have to reinvent the wheel for a new web graphics API based on explicit 3D APIs such as Vulkan, and Apple wouldn't have to go through the trouble of supporting Khronos' WebGPU alternative, either. Chances are that Apple would have to abandon WebGPU if Khronos builds its own, because the web is by definition more cross-platform. Therefore, Apple would have to play along and adopt the browser API that everyone else will adopt.

As we already mentioned, a web graphics API is needed whether Khronos invents the meta-API or not. At the same time, Apple adopting Vulkan means that native games wouldn’t have to use some other lower performance cross-platform API--they could just use Vulkan for Windows, Linux, macOS, Android, and iOS. Khronos and Apple could make this win-win deal between themselves, instead of trying to work around each other and fight these uphill battles for standardization of each other's APIs.

Lucian Armasu
Lucian Armasu is a Contributing Writer for Tom's Hardware US. He covers software news and the issues surrounding privacy and security.
  • Josh_killaknott27
    so will this new API support 8.1 or Win7 users? as Microsoft and AMD both said Multi GPU support will only be available for Win10 users? in regards to DX12 and Vulkan. AS usual MS is using every available means to force 7 and 8.1 users to upgrade, all for that marketing data.
    Reply
  • IceMyth
    If they support Vulkan this means you can run the game on any platform even Linux if am correct.
    Reply
  • shrapnel_indie
    From what I understand, Kronos has came out and stated that multi-GPU support in Vulkan isn't limited to just Win10. (like DX12 is exclusive to Win10)

    http://www.tomshardware.com/news/vulkan-multi-gpu-isn-t-only-windows-10,33959.html
    Reply
  • Josh_killaknott27
    19462933 said:
    If they support Vulkan this means you can run the game on any platform even Linux if am correct.

    I guess I should've looked at a few other articles haha . That's awesome news , when sources first claimed it would only be compatible with Windows 10 , I was what one would call a sad panda . I know ow a lot of people prefer the newer o.s , idk I guess with how pushy there were (dark alley Crack dealer pushy) it just turned me off.
    Reply
  • Jan_26
    I doubt we'll see this api for api being used in many AAA titles though... It inevitably adds overhead and in scenarios where devs scratch out every frame they'll rather go for DX12 or Vulkan directly.
    Reply
  • TripleHeinz
    I thought one of the main attributes of Vulkan was portability. But is up to big companies if they adopt an API in their platforms, so Khronos can create as many meta-APIs they want, companies can keep ignoring them.

    Anyway, this doesn't explicitly say much, but I did a small game engine that runs on D3D11, D3D11.X, D3D12 and Vulkan. It is based on a common interface...I code once and then run in any API I want. Did I created a meta-API?
    http://www.tripleheinz.com/index.php?page=4

    EDIT: And i'm just one single burgerflipper, imagine what a huge corporation full of resources can do. If they want portability then support Vulkan or die!
    Reply
  • falchard
    I barely see any adoption of this API. If it was only DX12 and Vulkan, then it might have been good for devs. By making it an intersection between the three APIs, it becomes completely useless. Metal is not going to be as robust or as well supported as the other 2 for less than 5% of the market share. Why bother using a crippled API over just Vulkan?
    Reply
  • Bloob
    Seems like this will just split their attention needlessly. OpenGL/ES/WebGL already exists, no need to add yet another API.
    Reply
  • extremepenguin
    OpenGL/ES/WebGL are pretty outdated and lack support which is why Unity has such a strong hold on things. This API if they can pull it off would be a very strong and serious competitor to Unity
    Reply
  • TJ Hooker
    19466461 said:
    OpenGL/ES/WebGL are pretty outdated and lack support which is why Unity has such a strong hold on things. This API if they can pull it off would be a very strong and serious competitor to Unity
    Unity is a game engine. It doesn't compete with graphics APIs, it works together with graphics APIs.
    Reply