If you love to keep a tab on the latest technologies, you must have heard of Vulkan. The Vulkan API is the latest and greatest of graphics APIs, announced by Khronos Group, which are the people behind the current industry standard OpenGL. The project name Vulkan was officially announced at the Game Developers’ Conference in 2015, and the first version of the API was launched in February 2016. The new API is aimed at taking game graphics to the next level, so if you are interested about the details, we are here to give it to you.
We discuss what Vulkan API is, how it is different from its predecessor OpenGL, and how Vulkan API might change the way games and other graphics intensive applications are developed in the near future. Read on to explore about this exciting development in the world of rendering and graphics.
What is Vulkan API?
A couple of years back, AMD showed off Mantle, arendering API that was targeted at 3D games and while it showed promise in being a snappier solution to rendering graphics, AMD killed off the project. Then, AMD gave the Mantle API components to Khronos Group to develop a standard API for rendering. Well, the result is the new Vulcan API.
The Vulkan API is a low overhead rendering API that can better utilize the multi-core CPUs that are omnipresent these days and will also provide programs with more direct access to the CPU and the GPU of the system. It is also OS agnostic. This means that applications that use Vulkan API will be easily portable.
Being avid gamers and game enthusiasts ourselves, we decided to take a look into the future of how games will be developed soon and how (if at all) will it improve our gaming experience.
The Vulkan API has quite a lot of features that make it different and better than its predecessor OpenGL:
1. The Vulkan API tries to balance processing loads equally among every core in a multi-core environment. This means that every core in the processor is put to use, therefore maximising efficiency.
- This will make a very noticeable difference in rendering graphics that require a lot of draw calls.
- With legacy APIs, more often than not, the CPU is a bottleneck. However, Vulkan puts multi-core CPUs to such good use, that it is more likely that a bottleneck will be found in the GPU instead.
2. The Vulcan API will offer direct access to GPU, which will make sure to avoid unnecessary overheads in accessing the GPU for draw calls and other GPU facilities.
- This means that heavier games will now not be as CPU intensive as they currently are. Also, drivers will play a smaller role in providing access to the GPU, making the transfer of information that much faster.
3. The API is also designed to be completely cross platform.
- No more branching APIs for mobiles, desktops and consoles. Vulkan API will be the same across any and every device with a compatible GPU.
4. While OpenGL kept the GPU memory usage and synchronization hidden, Vulkan exposes this and gives the developers even better control over the GPU and how it is used.
- Vulkan allows the developers to control how the GPU formats textures, manages memory and performs synchronization.
- However, it still hides enough information to maintain cross-platform compatibility.
5. Vulkan uses the SPIR-V intermediate language for parallel computing and graphics. SPIR-V, like its predecessors, SPIR1.2 and SPIR2.0, has been developed by the Khronos Group, with the difference that SPIR-V does not use LLVM. SPIR-V allows Vulkan to have a common front-end compiler on every platform. Developers also don’t need to ship kernel, shader code, and the driver implementation is simplified.
How Vulkan might help us as end users
The Vulkan API, when implemented to its full potential by developers can improve the end user’s (that’s you and me!) gaming experience drastically. Think console level graphics on mobile devices, maybe even desktop grade graphics for high end flagships with competent processors!
1. Since most mobile SoCs these days are also multi-core, Vulkan will utilise the processors to the maximum extent possible, making games smoother (higher FPS).
2. Also, since Vulkan provides a low overhead access to the GPU of the device, it means that games will now be able to reduce the time taken to get access to GPU resources to a great extent. Once again, this translates to better graphics at higher frames per second by making maximum use of the GPU’s capabilities.
3. While cross platform capabilities, making portability for games easier might not directly affect you as an end user, it does mean that your favourite games and graphic intensive applications might well be available on almost every platform out there. The possibilities are endless and limited only by our imagination.
4. Games will also be able to ensure smoother performance by ensuring that the GPU pays more attention (read: allocates more memory and gives preference to) to things that are immediately visible to the user, making the game more immune to lags and frame drops.
Options for Developers
While a low-level, low-overhead API for graphics is undoubtedly a good idea, it’s not an obvious attraction to every developer, especially the new ones. Programming at a lower, closer to the hardware level requires quite a bit more prowess than programming at a higher-level, which is more abstracted. This is in no way a shocker. It’s pretty obvious, and is exactly why developers will have three different options on how to go about using Vulkan for their development projects.
1. Use the Vulkan API directly
- This will provide the lowest-level access to the hardware, and is obviously not going to be a choice for everyone. However, this level can be used to create benchmarking tools for other applications developed using Vulkan.
2. Use Libraries
- Possibly the most viable option for developers who are transitioning from OpenGL to Vulkan.
- Most libraries will be open source, so developers who have experience in development using OpenGL can try and port their OpenGL applications to the Vulkan API with relative ease, rather than having to do a complete overhaul or starting from scratch.
3. Use Game Engines Optimised with Vulkan
- We are sure that this is where most of the developers will be getting in. Game engines are designed and developed by well established, experienced, industry heavyweights and can be used easily by developers (both experienced and beginners) to create games that use the advantages offered by the Vulkan API.
- Developers such as Epic Games (Unreal Engine) and Unity (Unity Engine) have already announced Vulkan support in their upcoming engines, and many more have announced plans to follow.
In case the article didn’t convince you… get excited! Now! Vulkan promises to be the kind of groundbreaking development in graphics APIs that will improve our gaming lives. There already exists videos of comparisons between Vulkan and OpenGL performance, and the results are – quite simply – amazing. If these videos are any indication, get ready to experience amazing graphics quality everywhere, including your mobiles, all thanks to the arrival of the Vulcan API!
So, What do you think about Vulkan? Do you think it will be a great improvement over the current OpenGL standard? Let us know in the comments section below.