1 Intel's Open Source Vulkan Driver
2 Vulkan API Version: 1.0.2
7 The Open Source Technology Center 3D graphics team at Intel has
8 been working on a Vulkan implementation based on the Mesa open source
11 The Mesa project source and our driver implementation is under the MIT
12 license [1], but is also covered by the Khronos IP framework as it
13 pertains to a specification under construction [2].
15 We welcome all feedback and contibutions, as long as the contributions
16 are MIT licensed and can be open sourced with the driver.
18 [1] https://opensource.org/licenses/MIT
19 [2] https://www.khronos.org/members/ip-framework
24 Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
25 Jason Ekstrand <jason.ekstrand@intel.com>
26 Chad Versace <chad.versace@intel.com>
31 - Broadwell & Sky Lake, main development focus
41 First-wave conformance has been submitted for Broadwell, Sky Lake, and
42 Cherryview. They all pass 100% of the mustpass tests as of January 30,
46 Supported OS Platforms
47 ======================
48 - Linux, tested on Fedora 22 with kernel >= 4.1
55 Building and Installing
56 =======================
57 This driver is intended to be used directly from the build tree. Installing the
58 driver into a system location is not yet fully supported. If you require support
59 for system-wide installation, please contact a maintainer.
61 Throughout the instructions, MESA_TOP refers to the top of the Mesa repository.
63 First, install the usual dependencies needed to build Mesa.
66 $ sudo yum builddep mesa
70 Next, configure and build. The below commands will build Mesa in release mode.
71 If you wish to build Mesa in debug mode, add option '--enable-debug' to the
76 $ ./configure --with-dri-drivers=i965 --with-gallium-drivers=
79 To use the driver's libvulkan.so directly, without LunarG's loader, you must set
80 an environment variable before running your Vulkan application:
82 $ export LD_LIBRARY_PATH="$MESA_TOP/lib"
85 Alternatively, to use the driver with LunarG's loader:
87 $ export VK_ICD_FILENAMES="$MESA_TOP/src/vulkan/anv_icd.json"
91 File Structure and Naming
92 =========================
93 The core code of Intel's Mesa Vulkan driver lives in src/vulkan. Files prefixed
94 with "gen8" support Broadwell; files prefixed with "gen7" support Ivybridge;
95 files prefixed with "anv" are common to all hardware generations.
97 Mesa is an umbrella open source project containing many drivers for multiple
98 APIs. The codename for Intel's Mesa Vulkan driver is "Anvil", hence the filename
104 The driver is still a work-in-progress. We do our best to keep the below list of
108 - Index buffers, instanced draw, indirect draw
109 - Nested command buffers
110 - Consumes SPIR-V (no GLSL "backdoor")
111 - Fragment, vertex, geometry, and compute shaders
112 - Uniform buffers, sampled images, dynamic uniform buffers
113 - Shader storage buffers
115 - Color, depth and stencil attachments
116 - 1D, 2D, 3D textures, texture arrays
118 - Optionally integrates with LunarGs loader
119 - WSI extension for X11
121 - Most copy/blit commands for color and depth buffers,
122 vkCmdCopyImageToBuffer for stencil buffers
123 - Occlution query and timestamps
124 - VkkSemaphore and VkEvent
125 - Shader specialization
129 Unsupported Features:
130 - Tesselation shaders
131 - Push constants in GS and VS on HSW and prior