You may have heard of the new Vulkan API a long time ago, especially because it’s using parts of AMD’s former Mantle, whose discontinuation upset many – since it provided several improvements of efficiency and performance on coding.
But as distressing as that was for some, it was also followed by the good news, in 2015, that part of Mantle’s DNA would be used as a basis for a new API, Vulkan, which was recently released, and which promises to do even greater things, and sustain a flexibility of use never-before seen.
To convince yourself of Vulkan’s capacity, I’ve made a list of some of its most surprising features. Let’s check them out:
1. It is a close to metal API for 3D graphics designed by AMD
First of all, what you need to know about Vulkan is that it is a low-overhead API intended for compute applications and 3D graphics. One of the things that makes it different, some would say superior, to its predecessors, is that it’s designed to run across different platforms and OSs.
As such, you’ll be able to use it on desktops, gaming consoles, tablets, and mobiles as well. Not only that, but it is be compatible with all major operating systems.
2. It ensures lower CPU load
The smart guys from Khronos did a swell job of making their new API as lean as possible, and less driver usage is just one of them. In order to deliver on low-overhead efficiency and cross-vendor portability (that’s right, you read that well: Vulkan is no longer limited to AMD GCN hardware), it uses simple drivers.
It features layered architecture, which makes validation and debug layers much easier to unload. Thus, the application is in charge of memory allocation and thread management. Vulkan has direct GPU control, and is a unified API to run on all types of platforms.
3. It has an ecosystem with three accessible layers
Some of you may have worried that although drivers will run smoother thanks to reduced error management, it will translate into more man-hours of work. That’s why Vulkan features three different levels that developers can access according to their different needs.
They are as follows:
- Direct use of Vulkan ensuring optimal control
- Access to libraries and layers that can make development faster
- Use fully optimized game engines over Vulkan
4. SPIR-V will replace GLSL
Vulkan will run on the SPIR-V intermediate language, which means it uses a translator to make the cross from GLSL. But this releases Vulkan from older OpenGL luggage and enables more flexible and reliable front-end language.
Game developers will be able to use OpenCL C kernels, and Vulkan back-ends. But thanks to the use of SPIR-V, Vulkan will be available across different platforms and devices, from mobile to high-end desktop.
5. It promises to make developer life easy
As you’ve already gathered, Vulkan is intended to streamline a lot of developer work. Besides suggesting the development of experimental languages, Khronos also promises a future of device-specific languages, shared tools and frameworks. Another bonus is the possibility for a lot more of processing to be done offline, more optimizations executed offline, and multiple source shaders.
6. It empowers independent devs and freelancers
This is primarily because Vulkan enables cross-platform programming. So if you’re working at home on your spare time, or as a freelancer, or work out of your own office as an independent, you will no longer need to use the same software as your employers or clients.
Moreover, it will be easier to develop your own projects. And here are just a few more benefits: kernel compilation time is reduced, and so is runtime shader. You will have complete control and visibility of memory allocation, and thus be able to tweak memory allocation. No more issues with cross-vendor portability.
7. The Vulkan is still growing strong
Instead of feeling disappointed that Vulkan still has a ways to go before it’s completed, you should be happy it looks and works so great already, and be excited that improvements and upgrades are yet to come.
Now you can really allow your imagination to run free with what you can already do with Vulkan, but with what Vulkan will be able to do in the future. 3D graphics and game programming have just become a whole lot easier and streamlined. Work that looks great, and runs great.
8. It still has a few weak points
I haven’t been trying to sell you on Vulkan just to reveal its disadvantages now, but I think there are sides to it that could still be improved. You should get the full picture of what the new API is, so that if you’re looking to start on a new project, you can weigh the pros (many, I believe) and cons (few, as you’ll see). For some of you, these may not even be concerns.
However, I think that many developers will find it a downside that Vulkan is less compatible with legacy hardware, and may be less effective on desktops. Since it’s a relatively new product, it doesn’t benefit from the same support as other APIs, and certain scenarios may lead to increased complexity of code.
Well, there you have it, folks! We may have to wait by the end of the year when Vulkan is released (or perhaps even longer until it starts to gain wider adoption), to see whether it will make a significant change in development, but I feel like Khronos are going in the right direction and sooner or later, this is the kind of API we’ll be wanting to use.
Even though I suspect Vulkan will catch on much faster and easier with mobile, I see that as advantage marketing-wise and product development-wise.