What is Vulkan, what are the differences with DirectX

110

The first real rival of DirectX 12 has finally arrived. Its name is Vulkan and is developed by Khronos Group, a consortium founded in 2000. It aims to create and promote open APIs, free of royalties, to help developers create quality multimedia content and end-users in reproduction of the same.

What is Vulkan

Vulkan is a low-level graphics library commonly referred to as API ( Application Programming Interface ). Vulkan provides specific tools that allow the software to interface with the hardware and, in particular, with the video card.

High-level programming languages ​​are characterized by a significant abstraction from the details of a computer’s operation and the characteristics of machine language. Think of Java or any other similar programming language: simple syntaxes allow you to carry out complex operations to be implemented at a low level.

A loop or a control structure like if … then … else is a very simple construct to implement with a high-level language.

What is Vulkan, what are the differences with DirectX

The high-level graphics libraries take on issues such as the management of system resources, optimize the level of abstraction and ensure that the developer can focus on the aspects that interest him most (in the case of a video game, the movement of the characters, the creation of scenes and various effects).

On the other hand, the low-level graphics libraries allow you to create code immediately understandable by the GPU and offer the programmer wide visibility on what happens on the hardware side. This type of development requires more technical skills and is generally much more time-consuming as well.

What are the improvements that Vulkan introduces?

A little less than two years ago, the Khronos Group received a nice gift from AMD : the company from Sunnyvale (California) decided to donate to the consortium all the work carried out until then regarding the development of Mantle low-level drivers.

However, in June 2014, a whole new adventure began because the Khronos Group from then on took action to make Vulkan compatible with every platform and architecture .

Unlike, for example, OpenGL, Vulkan has always remained a low-level graphics library. In addition to the intrinsic benefits in terms of performance deriving from APIs capable of communicating directly with the hardware, Vulkan reduces the overhead by eliminating non-essential information transferred to the API responsible for graphic rendering.

This is a goal that many are looking at: even DirectX 12 and Apple Metal try to reduce the set of functions to be passed to the API to speed up graphics processing. In this way, it is possible to generate a greater number of polygons or effects per second, for example, by inserting new graphic effects; alternatively, you will get a better result from the point of view of the number of frames per second (fps) produced.

What are the improvements that Vulkan introduces?

Then, Vulkan better manages parallel processing by multiple graphics cards and significantly reduces the need to recall CPU usage.

The new libraries also simplify the development of the so-called shaders or those used to determine the final appearance of an object’s surface.

The development package for Vulkan (SDK) is called LunarG : it allows developers to start programming on their preferred platform, be it Windows or Linux.

Soon, under the pressure of Google, Android will also integrate support for Vulkan.
The LunarG project was instead financed by Valve, one of the most famous and appreciated videogame houses globally. The Talos Principle, distributed by Valve through its Steam platform, is the first video game compatible with Vulkan.

Vulkan supports the platforms

One of Vulkan’s staunchest supporters, as previously mentioned, is Gabe Newell, co-founder, and CEO of Valve and Steam.

Vulkan is considered the right lever to decree Steam OS’s success, a specific operating system for video games. The OpenGL drivers currently used are unable, in most situations, to compete with the performance guaranteed, for example, by Microsoft’s DirectX 11 libraries.

Vulkan supports the platforms

But while the latest DirectX 12 only supports Windows 10, Vulkan supports a huge array of operating systems: in addition to Linux, from including Windows XP up to Windows 10.

AMD ( Radeon Software Beta ) and NVIDIA have already released their respective updated drivers capable of supporting Vulkan.

While Google hasn’t announced anything new for the moment, NVIDIA says – in an official note – that support for Vulkan will already be introduced in the current version of Android, 6.0 Marshmallow .

The “big absentee” is Apple: after initially participating in the working group for the development of the Vulkan specifications, Tim Cook’s company took a decisive step backward, preferring to focus its efforts exclusively on Metal, the low-level API of the Cupertino company, which have also been brought on Mac OS X.

However, Metal does not integrate shaders management comparable with that of DirectX 12 and Vulkan. The result is that the performance is undoubtedly lower than rival graphics libraries.

However, Apple is still part of the Vulkan working group today: it is therefore not excluded that the position of Apple may change shortly.

Vulkan supported graphics cards

AMD allows you to use Vulkan APIs with all of its video cards released on the market starting roughly four years ago.

Vulkan support is guaranteed for all graphics cards based on Graphics Core Next (GCN) 1.0 or later chips. In short, from the Radeon HD 7700 onwards.

As for NVIDIA, the graphics cards supported by Vulkan are those based on the Kepler and Maxwell architecture (600 series and later).

As far as we know, Intel also offers support for Vulkan with integrated cards in Broadwell CPUs (Iris Pro 6200, for example) and later.

As for Vulkan support by GPUs used on mobile devices, the news is still few and fragmentary. We must first wait for Google to release the Vulkan specifications for Android to draw the first sums.

ARM, Imagination Technologies ( PowerVR GPUs used by Apple and other manufacturers), and Qualcomm are expected to be in the game right away. Still, details will come in the weeks to come.

Vulkan’s problems

The problem that makes Vulkan unable to compete “face to face”, on an equal footing, with DirectX 12 is one of its basic features: cross-platform support.

Vulkan is, therefore, in no way linked to the use of the WDDM ( Windows Display Driver Model ) 2.0, introduced in its latest version together with Windows 10 and used by Microsoft to improve the performance of graphics drivers.

So despite all the optimization work that can be done, it is very difficult – not to say impossible – that Vulkan can perform better in Windows 10 than DirectX 12.

Another problem, then, is that the video card drivers will also need to be further optimized. For example, the Talos Principle showed significantly better performance with Vulkan than OpenGL 11 but lower than DirectX 11.