AMD is a company well-known for designing and adopting standards which soon become ‘open’ and ultimately become industry standards. What makes their approach unique is that quite often, AMD did not benefit from that strategy as the standards would explode in markets where the company is not present. Still, the list of open standards created by a tiny giant from Sunnyvale / Austin is remarkable.
Khronos Group just released a ‘final initial’ (v1.0) specification of Vulkan low-level API (Application Program Interface). Launched as Mantle, AMD’s in-house, low-level API became two snowballs: Microsoft reacted to Mantle by developing the DirectX 12 in as little as 17 months. Only four months prior to Mantle’s announcement, Microsoft informed its hardware and software ecosystem that ‘there will be no DirectX 12’. Second snowball is Vulkan, which could have biggest impact on the IT/ICT industry. On GDC 2015, AMD announced that Mantle 1.0 is becoming Vulkan, an open spec development lead by Khronos Group, which takes care of open APIs such as OpenGL, OpenCL and the like. Less than one year later, Vulkan 1.0 arrived on the market.
In order to explain Vulkan API and its potential impact on the industry, we spoke with Neil Trevett, President of Khronos Group. Neil is also serving as Vice President, Developer System at NVIDIA, which recently organized a well-attended Vulkan Developer Day.
As the slide above states, Vulkan is an API (Application Programming Interface) which enables the developer to take control (and responsibility if things go awry) over the hardware itself. In a way, Vulkan represents a return to the early days of programming using Assembler code, taking direct control over processor resources and memory allocation. Just this time around, you’re dealing with a single machine that has more compute power than all the computers on Planet Earth from the time when Assembler was ‘the s**t’ (for developers).
As Neil confirmed to us, Vulkan is available for following platforms:
- Google Android
- Microsoft Contemporary OS (Windows XP, 7, 8, 10)
- Samsung Tizen
- Red Hat Linux
- Ubuntu Linux
- Valve SteamOS
If you are an application developer unsatisfied with API keeping you in Ring 1 or Ring 3, Vulkan will enable you to work with hardware practically in Ring 0, but irresponsibly written code might take down the whole application and machine with it (forcing you to go through those 20-30 seconds of restart). Thus, this API is not for everyone. If your skills or application target do not require low-level hardware access, you should continue living in the world of DirectX, OpenGL, OpenCL and the like. But if you enjoy low-level optimizations which make your code run like a clockwork, and want to bring that seamless console experience on much-more powerful, but unoptimized PC platform – then Vulkan is for you.
Given Vulkan’s multi-platform aspect and Google’s commitment to the API as such, Android operating system could position itself to become a viable competitor for games (and other visual applications), rather than run-off-the-mill Microsoft Windows or Valve’s SteamOS.
With Vulkan, there is a three-layer approach to the way how you can use Vulkan, and if you are a game developer you can decide do you want direct access, meaning you have the full control over the hardware through Vulkan API, develp an application which will use a pre-determined set of utility libraries and layers or take the fastest (and most controlled approach) route of using a Vulkan-optimized game engine. Unreal Engine 4, Unity Engine, Frostbite… the decision is as much as technical as it is a business one.
When it comes to Valve, the company’s approach to Vulkan is a bit… different.
LunarG SDK for Vulkan
Valve decided to sponsor a creation of LunarG SDK. As the name states, LunarG is an open source SDK for Vulkan API, free to download for Google Android, Microsoft Windows and Linux. The inclusion of numerous Validators should help the developers to check their code for errors and make sure the application is stable before further development / QA. The package includes a significant number of samples and documentation, and if you’re interested – head over to vulkan.lunarg.com and check the SDK out.
Khronos Taking APIs from Computers to Driverless Cars and Fighter Jets
Vulkan is just another API in a sea of standards currently supported of in development by the Khronos Group. Perhaps the most interesting group inside this non-profit standards body is Khronos Safety Critical Working Group, which is what the world needs if we are to move the movie magic, with all of its futuristic interfaces and demos – into a reality. Vulkan represents a significant stepping stone in the creation of a “New Generation API for Safety Certifiable Graphics and Compute”. By creating a “Safety Critical” version of an API that includes Vulkan capabilities, there is a path from a demo interface which we see in different concept cars, or visions for planes of the future – into a road-legal, flight certified (Airworthiness Certificate) visual experiences.
If you’re interested in Vulkan, you can check following resources: