Published in Graphics

Vulkan nerve pinches DirectX in mobile

by on04 March 2015

Live long and render

While it seems that the world+dog is rushing to back Microsoft's new DirectX API there are ructions in the force which have opened the way for a new rival. 

The alliance behind the OpenGL video standard has been showing off Vulkan API, an open standard that lets app writers take direct control of graphics chips and wring out extra performance on many devices. The software depends on good developers to make good use of it, but it could easily lead to richer visuals and smoother frame rates without demanding beefier hardware.

The tech is still in a preview stage, but it already has some pretty noteworthy support, especially from Valve who wants it for its Steam Machines.

AMD, ARM, Imagination and NVIDIA also see Vulkan doing wonders with their platforms, although Microsoft's efforts are going towards DirectX 12 and Apple is going towards Metal [Surely plastic. Ed], but Mantle only works with AMD GPUs, DirectX 12 only works in Windows, and Metal only works in iOS. Vulkan will span both GPU and operating system vendors, continuing in the footsteps of the cross-platform, vendor-neutral OpenGL before it.

The new API was created to make it a better fit for modern hardware: GPUs are complex, highly programmable devices, and CPUs have abundant cores and multithreading support.

Vulkan is also intended as suitable for both mobile and desktop development. This is in contrast to OpenGL, which has the OpenGL ES variant for mobile and embedded systems. The duality is in part due to OpenGL's age; it includes old features that aren't really relevant to modern 3D programming, but which nonetheless remain part of the specification. OpenGL ES removes many of these to be a little slimmer and more streamlined. Vulkan will similarly do away with them, eliminating the need for a special mobile API variant.

With Vulkan, the way shader programs are compiled is changed. Traditional OpenGL requires each display driver to contain a full compiler for shader programs written in the C-like GLSL shader language. This is complex, with ample room for bugs. Microsoft's Direct3D took a different approach; shader programs are compiled once, by the developer, into a bytecode. Display drivers only need to process this bytecode, which is simpler.

Rate this item
(6 votes)

Read more about: