Due to industry demand, Khronos is initiating the development of a solution to enable 3D applications that are portable across Vulkan, DX12 and Metal
“The golden age of application portability through OpenGL and OpenGL ES being available on all desktop and mobile systems is passing. Developers now want to tap into the enhanced performance of the new generation explicit APIs: Vulkan, DX12 and Metal. Every cross-platform developer, as well as WebGL, is facing the challenge of rendering portably and efficiently across systems using all three of these APIs. Khronos has been leading the development of cutting-edge native and Web 3D APIs for many years, and is uniquely qualified to solve this urgent issue confronting the industry.”
- Jon Peddie, President of Jon Peddie Research
If your company would value a voice in the direction of this important standardization initiative, you are encouraged to join the Khronos Group and participate with other industry leaders in its design!
Industry Need for a 3D Portability Solution
Today’s 3D API landscape is fragmented. For developers wishing to use the new generation of explicit 3D APIs there is no single API that runs on all desktop and mobile systems.
Possible Solution
One possible path forward to help resolve this dilemma is to define a portability solution that enables rendering code to be written and run, at close to full efficiency, over Vulkan®, DX12 and Metal-based systems. Such a solution would need to address differences between both rendering APIs and shading languages.
A portable API definition could evolve from an analysis of the three existing explicit APIs to identify the intersection of common functionality that can be efficiently run over the native API present on any platform. Early discussions at Khronos indicate that this could be a usable API surface, lacking only the more esoteric performance machinery of the underlying APIs – which could be a worthwhile tradeoff for portability, while also resulting in an API that is easier to learn and use.
There have also been significant advances in the evolution and convergence of shading languages in recent years. Khronos has the defined SPIR-V™ intermediate language that complements LLVM by defining an open representation that natively expresses graphics and parallel computation constructs. Multiple open source tools enable the compilation of the GLSL, HLSL and Metal Shading Languages to SPIR-V. There are also cross–translation tools to convert between various intermediate formats and SPIR-V. A portability solution could leverage and catalyze further developments in this open source ecosystem so developers can use their choice of shading language while enjoying deployment flexibility.
This portability solution could also be a solid foundation for the next generation of WebGL – that can leverage this technology into JavaScript and WebAssembly. This would enable Web developers with the enhanced functionality and performance of the new generation of explicit GPU APIs.
Relation to Other Khronos Working Groups
Khronos brings together the world’s leaders in GPU API design under a proven collaborative framework. Additionally, Khronos has the organizational flexibility to establish multiple working groups. A 3D Portability working group could cooperate with the SPIR-V working group to coordinate the evolution and development of open sourced shading language portability solutions, and take requirements from the needs of the next generation WebGL API for GPU graphics and compute acceleration.
Now is the perfect time to get involved!
The information above represents initial discussions within Khronos. Final details of any finalized specifications and solutions may differ from the directions discussed here.
Fast-paced work on detailed proposals and designs will start after the current exploratory phase to define the standard’s scope and key objectives. The work has just started – this is your chance to influence its direction!