AMD has opened the source code for V-EZ, a cross-platform low-level Vulkan API shell

    Vulkan API is a low-level cross-platform software interfaces that deliver higher performance 3D graphics by reducing costs compared to other APIs such as OpenGL, especially with the special features of the GPU (API is also suitable for 2D rendering). With proper implementation, Vulkan provides "from a marginal to a polynomial increase in speed compared to other APIs on the same hardware."

    The Khronos Group developer introduced the Vulkan API at the GDC 2015 conference, and the first release took place in February 2016. Initially, the Vulkan API was called “the next generation of OpenGL” or simply glNext, but then the name was changed to Vulkan.

    Many have been looking forward to the release of this revolutionary technology, which greatly accelerates 3D graphics and reduces the load on the processor like the example of Direct3D 12, Metal and Mantle. But the problem was that the Vulkan API requires much more effort from the developer, while higher-level APIs like OpenGL and DirectX 11 simplify many things, such as memory management. To help work with Vulkan, AMD developed a wrapper (wrapper) and V-EZ abstraction layer, and now published the source code of this tool under a free MIT license ( GitHub repository ).

    Initially, V-EZ was released in March 2018 with closed source, now this restriction has been removed.

    Vulkan API

    V-EZ is an intermediate level (middlware) that takes on many support functions during development, so the developer does not need to immediately know and manually deal with all the subtleties of Vulkan, V-EZ will do many things on its own. The auxiliary shell uses the same semantics as the Vulkan API, that is, it can be used as a learning tool of its kind. Starting with V-EZ, developers can gradually get comfortable - and eventually move on to using Vulkan directly. This also means that in many cases Vulkan documentation is applicable to V-EZ.

    Advantages of Vulkan over previous generation APIs:

    • Vulkan API is well suited for high-performance video cards and graphics hardware on mobile devices.
    • Unlike Direct3D 12, Vulkan is available in many modern operating systems, not tied to any operating system or form factor. From the very beginning, the Vulkan API works on Android, Linux, Tizen, Windows 7, Windows 8 and Windows 10, there is third-party support for iOS and macOS.
    • Reduced overhead of drivers, reduced load on the CPU.
    • Reducing the load on the CPU through the use of batch processing.
    • Better scaling for multi-core processors.
    • OpenGL uses the high-level language GLSL to write shaders, which forces each OpenGL driver to implement its own compiler for GLSL, which runs in runtime to translate the program's shaders into the machine code of the GPU. Instead, Vulkan drivers should accept shaders that have already been converted to SPIR-V intermediate binary format, similar to the binary format in which Direct3D HLSL shaders are compiled.
    • Due to the preliminary compilation of shaders, the speed of application initialization increases, and more shaders can be used for each scene. The driver needs only a certain optimization of the GPU and code generation, which simplifies the maintenance of the drivers and reduces their size.
    • Unified management of computational cores and graphics shaders, eliminating the need to use a separate computational API in conjunction with the graphics API.

    Intermediate layer V-EZ

    Although the creator of the Vulkan API is the Khronos Group, the technology is based on the Mantle API, which AMD donated to the Khronos Group. The idea was to create a more advanced technology that was not tied to a specific manufacturer, so that it could be accepted as a recognized industry standard, like OpenGL. Therefore, AMD is now helping to promote the Vulkan API and creating supporting tools such as V-EZ.

    V-EZ installation requirements

    • 64-bit Windows 7, 8.1, 10
    • 64-bit Linux (tested on Fedora and Ubuntu)
    • Visual Studio 2015 or later
    • GCC 4.9 or later
    • CMake 3.8 or later
    • LunarG Vulkan SDK 1.1.70

    V-EZ is not tied to a specific vendor and should work on non-AMD hardware.

    The creators of V-EZ hope that the publication of the source code under a free license contributes to the greater popularity of the V-EZ shell, and, consequently, the new low-level software interfaces. In turn, this will help developers adopt new APIs, which will lead to better game performance and more cross-platform games.

    Vulkan is currently supported by a number of game engines, including Source 2, Serious Engine 4, Unreal Engine 4, Torque 3D, id Tech 3, id Tech 4, id Tech 6, Xenko, Unity, CryEngine, Intrinsic, Unigine, Abyss Engine , Banshee 3D and Godot.

    Also popular now: