Khronos' 3D Portability Initiative Could Be Quite Interesting, Boon For Linux Gaming
While most are focused on the OpenXR VR announcement from The Khronos Group as well as the new Vulkan extensions, less people seem to be talking about their call for participation around a new "3D Portability Initiative", which if it succeeds could be a win for Linux gamers and others.
As covered in the Phoronix article earlier, the 3D portability exploratory group is to investigate native 3D portability APIs to help write rendering code efficiently that runs across Vulkan, DirectX 12, and Metal systems.
There is this Khronos.org 3D portability page that lays out more of their initial ideas and hopes for this portability effort. Basically, it would mean this API could in turn run efficiently -- near native performance -- across macOS with Metal, Windows with D3D12, and everywhere else with Vulkan.
There is no new API yet, but at this stage they are looking for participation in this working group from interesting vendors.
Obviously if this portable new API were to very efficient and work across all operating systems, it would be almost "magical" if it were to be widely-adopted as you could code high-performance 3D graphics once and see it run everywhere. This obviously would be a big win too for Linux gamers with seeing better quality game ports and perhaps more of them if all the major game engines were supporting this portable 3D API. As it stands now, the existing Linux games that are ports from Windows and going from Direct3D to OpenGL generally remain less than ideal with translation layers. It remains to be seen how Feral, Aspyr, and others will accomplish Linux game ports with Vulkan for Windows games making use of D3D12, but this new 3D initiative could be of assistance to them in the future.
But at the same time, I am surprised they are going after "yet another 3D API." I am a bit curious why they don't try to make Vulkan more adopted everywhere and promote that as their sole 3D next-gen API... There already is the MoltenVK efforts for running Vulkan on iOS/macOS systems, including the new Vulkan 1.0.42 extensions for presenting to iOS/macOS native surfaces. If there was a serious effort underway to get the Vulkan API running over the top of Direct3D 12, that could better fill the void, address any Vulkan Windows shortcomings, and seemingly make rather a portable 3D API. But even now we see Vulkan drivers from all the major vendors on Windows, yet the major game studios are still generally focused on D3D11/D3D12 at this point rather than Vulkan. Is Khronos not confident they can get Vulkan to appear on all major platforms?
So what will make a game studio want to use a new portable 3D API when in effect right now they could use Vulkan and get Windows / Linux / Android and via MoltenVK to some extent macOS/iOS... But as this is a working group in its early stages, perhaps we will see them model this portable graphics API as perhaps a sub-set of Vulkan or in making an effort for converting SPIR-V to the native IRs for Direct3D 12 and Metal.
From the limited information that's public now, it does sound like they will center around SPIR-V as the intermediate representation with a focus on the tooling then for converting SPIR-V to/from HLSL, Metal Shading Language, etc. So in that case it wouldn't be as much of a new 3D API for developers to learn as it is mostly converting exciting code to be more portable and putting it out in a common form via new/improved tooling.
Next week I'll have a Khronos briefing so I hope to get some of questions/concerns addressed as well as finding out more about their plans for 2017. If any readers have any questions they'd like answered about the recent Khronos announcements, feel free to post in our forums.
As covered in the Phoronix article earlier, the 3D portability exploratory group is to investigate native 3D portability APIs to help write rendering code efficiently that runs across Vulkan, DirectX 12, and Metal systems.
There is this Khronos.org 3D portability page that lays out more of their initial ideas and hopes for this portability effort. Basically, it would mean this API could in turn run efficiently -- near native performance -- across macOS with Metal, Windows with D3D12, and everywhere else with Vulkan.
There is no new API yet, but at this stage they are looking for participation in this working group from interesting vendors.
Obviously if this portable new API were to very efficient and work across all operating systems, it would be almost "magical" if it were to be widely-adopted as you could code high-performance 3D graphics once and see it run everywhere. This obviously would be a big win too for Linux gamers with seeing better quality game ports and perhaps more of them if all the major game engines were supporting this portable 3D API. As it stands now, the existing Linux games that are ports from Windows and going from Direct3D to OpenGL generally remain less than ideal with translation layers. It remains to be seen how Feral, Aspyr, and others will accomplish Linux game ports with Vulkan for Windows games making use of D3D12, but this new 3D initiative could be of assistance to them in the future.
But at the same time, I am surprised they are going after "yet another 3D API." I am a bit curious why they don't try to make Vulkan more adopted everywhere and promote that as their sole 3D next-gen API... There already is the MoltenVK efforts for running Vulkan on iOS/macOS systems, including the new Vulkan 1.0.42 extensions for presenting to iOS/macOS native surfaces. If there was a serious effort underway to get the Vulkan API running over the top of Direct3D 12, that could better fill the void, address any Vulkan Windows shortcomings, and seemingly make rather a portable 3D API. But even now we see Vulkan drivers from all the major vendors on Windows, yet the major game studios are still generally focused on D3D11/D3D12 at this point rather than Vulkan. Is Khronos not confident they can get Vulkan to appear on all major platforms?
So what will make a game studio want to use a new portable 3D API when in effect right now they could use Vulkan and get Windows / Linux / Android and via MoltenVK to some extent macOS/iOS... But as this is a working group in its early stages, perhaps we will see them model this portable graphics API as perhaps a sub-set of Vulkan or in making an effort for converting SPIR-V to the native IRs for Direct3D 12 and Metal.
From the limited information that's public now, it does sound like they will center around SPIR-V as the intermediate representation with a focus on the tooling then for converting SPIR-V to/from HLSL, Metal Shading Language, etc. So in that case it wouldn't be as much of a new 3D API for developers to learn as it is mostly converting exciting code to be more portable and putting it out in a common form via new/improved tooling.
Next week I'll have a Khronos briefing so I hope to get some of questions/concerns addressed as well as finding out more about their plans for 2017. If any readers have any questions they'd like answered about the recent Khronos announcements, feel free to post in our forums.
11 Comments