Intel’s Open Source Graphics Drivers and Vulkan* Graphics API

Introduction

 

In his blog published on February 16, 2016, Imad Sousou shared that Intel was selected as one of the leading graphics platform suppliers with Vulkan* 1.0 drivers certified by the Khronos Group Consortium. This article gives a presents the basics on the Vulkan graphics API and Intel’s Open Source Graphics Drivers.

 

Vulkan Graphics API

 

The Vulkan graphics API was created by the Khronos Group, an industry consortium founded in 2000 and focused on the creation of open standards for parallel computing, and graphics and vision processing on a wide variety of platforms and devices. Many of the APIs and technologies created by Khronos working groups are well known and widely used in the industry, for example, Vulkan, OpenGL*, OpenGL ES, WebGL*, OpenCL™, and OpenVX. As an industry collaboration, the parties that contributed to the Vulkan API included major hardware vendors, OS vendors, and the game industry.

 

Architecture Characteristics

 

Traditional graphics APIs, such as OpenGL and DirectX*, have the following characteristics in common:

 

  • The application layer itself is relatively simple, which can be considered an advantage.
  • The application layer uses single render threads to interface with the driver layer.
  • Render threads are CPU bound.
  • The main work is done in the driver layer and includes:
    • Implicit context
    • Memory management
    • State management
    • State validation
    • Error checking
    • Front-end shader compiler
    • Back-end shader compiler
    • Hardware commands
  • This leads to:
    •  Hidden stalls
    • Vendor-specific shader compiler differences
    • Unnecessary validation
  • The driver layer accesses the GPU in single threads.

 

Designed as the “next-generation graphics API,” Vulkan has many different characteristics, which include the following:

 

  • Some functional components are moved from the driver layer to the application layer making the application layer more complicated. These components include:
    • Memory management
    • State management
    • Front-end shader compiler
  • Optional debug layers have been added to perform state validation and error checking.
  • The driver layer is now smaller, which mainly includes only the back end-shader compiler and the hardware commands.
  • The invocations from the application layer to the debug layer, from the debug layer to the driver layer, and from the driver layer to GPU are multithreading.

 

The architecture changes implemented in Vulkan have resulted in many improvements:

  • Explicit resource transitions
  • Consistent shader compiler
  • Optional validation
  • Multithread parallelism
  • Lower driver overhead
  • Most significantly, reduced CPU load and implicit stalls

 

Vulkan API Overview

 

This blog is not intended to be a tutorial on how to write code using Vulkan. In general, Vulkan is a C API and provides a set of free function entry points to handle:

  • Device
  • Queue
  • Command buffer
  • RenderPass
  • FrameBuffer
  • Image
  • GPU memory
  • and more

 

Intel’s Open Source Graphics Drivers

 

Intel’s Open Source Graphics Drivers is one of the most widely deployed driver stacks in the industry. These drivers are integrated seamlessly into Linux* PC client distributions, Google Chromebooks*, and Valve’s SteamOS* serving tens of millions of PC users. The Intel’s Open Source Vulkan driver for 5th generation Intel® Core™ processors and 6th generation Intel® Core™ processors (code-named Broadwell and Skylake) passes the Vulkan 1.0 Conformance Test Suite on these platforms and has experimental support for older platforms. Developers can either build the drivers from source code or directly get Linux distribution packages. Please go to https://01.org/linuxgraphics/blogs/jekstrand/2016/open-source-vulkan-drivers-intel-hardware for more information.

 

Summary

 

In this blog we discussed Vulkan and the new-generation graphics API and its technical perspectives and advantages. With the Vulkan 1.0 certifications, the Intel’s Open Source 3D Graphics Driver adds technology leadership to its impressive capabilities.

 

Other Related Links

 

https://www.khronos.org/vulkan/

https://01.org/linuxgraphics/blogs/jekstrand/2016/open-source-vulkan-drivers-intel-hardware

https://software.intel.com/en-us/articles/api-without-secrets-introduction-to-vulkan-part-1

 

 

 

 

*Other names and brands may be claimed as the property of others.

 

OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.

 

standard
For more complete information about compiler optimizations, see our Optimization Notice.