So Nvidia recently published a #highlevel #abstractionlayer call #VkHLF (Vulkan High-Level Framework). While this is specifically available for the Vulkan API, the framework is an initiative to simplify game development. While this could make gaming playable on a Playstation 4 running as a Steam Machine.
VkHLF is an experimental high level abstraction library on top of Vulkan. It adds features like transparent suballocation, resource tracking on the CPU & GPU and simplified resource creation while staying as close as possible to the original Vulkan API. In contrast to Vulkan-Hpp, which is carefully created to be a zero-overhead C++ abstraction for Vulkan. This library adds significant higher-level functionality. Even so, it has been in design for much high-performance. But it can cost performance relative to native Vulkan if not employed with the intended usage patterns.
Since this project is in its early stages and under heavy development expect bugs and interface changes for a while. It should not be put to use in production code, yet!
How will game developers be able to use High-Level Framework?
Since the VkHLF adds quite a lot of useful functions with the Vulkan API. so this includes things like reference counting, device suballocator and GPU resource tracking. While in contrast to the Vulkan-Hpp, VkHLF is creating functionality at a much higher level. So the design is for high-performance, since reduced performance will happen if used out of the outlined usage patterns. Which should make things more straight forward for developers trying to optimise their game performance. Creating an OpenGL advantage over Windows and DirectX 12.
An abstraction layer such as VkHLF will likely reduce development complexity. Since this is not hiding the “behind the scene” code for a particular set of functions. Therefore the best example is this. A developer invokes a function call such as “buildHouse (brick, mortar)”. So the function will invoke lesser functions to build a house without further action from the programmer.
Which makes abstraction layers great for making development faster. But will likely lead to computing overhead if the games design has been setup poorly. Therefore calling more than it needs to. This is why Nvidia currently emphasizes that the VkHLF is in its experimental phase and should not be made available for production.
These are the sort of innovations we have been waiting for. In fact, this will likely mark 2017 as the year of the API support amongst game development. Since this will give Linux the well-deserved edge needed in the gaming industry, the performance. We would be keen to see how well the Superposition Benchmark from Unigine would perform.
So for those interested, check out the VkHLF source code here.