Introducing Vulkan – Explicit Control Over Graphics Acceleration

Tuesday 2/16/16 10:02am
Posted By Kevin Hawkins
  • Up0
  • Down0

Qualcomm products mentioned within this post are offered by
Qualcomm Technologies, Inc. and/or its subsidiaries.

Vulkan is here from the Khronos Group, and it’s designed to make it easier for developers to use the GPU for greater realism in 3D graphics and greater efficiency in compute applications.

That’s big news, especially if your apps use the Adreno™ GPU found inside the Qualcomm® Snapdragon™ processor. We’re devoting a series of blog posts to the launch of Vulkan so you can hit the ground running.

The Vulkan logo written out in red letters

What Is Vulkan?

Vulkan is the latest graphics API from Khronos, and while the basic rendering agorithms are the same as OpenGL ES it is a major rethink about how to express modern GPU hardware to developers. It addresses the growing demand for low overhead APIs that provide developers with explicit control of the graphics and compute power on GPUs like the Adreno GPU.

If you’ve worked in OpenGL ES, you’ve seen the CPU overhead you incur when you program the GPU. Your code calls APIs, then a graphics driver translates the call into machine language on the CPU and hands it off to the GPU. Vulkan makes that driver translation layer much thinner and gives developer more control of the execution of the code on the GPU.

What Are The Benefits Of Vulkan?

Besides explicit control over GPU operation, Vulkan offers developers these advantages:

  • High efficiency for graphics, and compute
  • Efficient multi-threading for constructing command buffers in parallel and placing them in the command queue by separate submission thread
  • Portability across mobile, desktop, consoles and embedded platforms
  • Support for tiled rendering architecture GPUs like Adreno to take full advantage of this bandwidth saving techique
  • More explict control over memory allocations
  • The SPIR-V intermediate language for improved shader program portability and reduced driver complexity
  • Enabling validation, debugging and profiling
  • Vulkan will be supported by Android, Linux and MS Windows. The goal is to support Vulkan on all ES31-capable hardware.

Vulkan was designed by the Khronos Group and so is an open-standard API, backed by many of the major vendors of graphics software and hardware. You won’t be locked into a proprietary technology for accelerating graphics processing in your apps.

What Is Qualcomm Doing For Vulkan?

Qualcomm is a member of the board of promoters for Khronos Group snd its subsidiary, Qualcomm Technologies, Inc. (QTI), has announced support for Vulkan, starting with the Adreno 530 GPU in the Snapdragon 820 processor.

Qualcomm is also announcing upcoming support for Vulkan in QTI’s developer tools, including Snapdragon Profiler and the Adreno SDK. While the tools aren’t offered publicly yet, you can request early access to the Adreno SDK Vulkan and the Snapdragon Profiler Vulkan. Qualcomm Technologies anticipates releasing a community edition of user-mode Vulkan driver binaries for Adreno A4xx and A5xx GPUs soon. You can use these tools with the Vulkan API as part of the process of optimizing your apps for commercial devices powered by the Qualcomm Snapdragon 820 processor. Watch the video tutorial on Vulkan below.

Next Steps

The Adreno-Snapdragon combination has allowed you to showcase mobile graphics in your apps for the last few years and now it will take you straight to Vulkan. You’ll have the chance to simplify your code in the transition from the OpenGL ES API to the Vulkan API; I’ll go over that in my next post.

Meanwhile, start finding out how you can get the most out of Vulkan at the Khronos Group website. In particular, keep an eye out for Qualcomm Technologies’ blogs, tools, and video tutorial updates.

Be sure to subscribe to this blog for updates on the tools you can use to take advantage of Vulkan.