anv/pipeline: Add a default L3$ setup
[mesa.git] / README.intel-vulkan.txt
1 Intel's Open Source Vulkan Driver
2 Vulkan API Version: 0.210.1
3 SPIR-V Version: 1.0
4
5 Intro
6 =====
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
9 OpenGL implementation. At this point we're ready to share what we have
10 with our Khronos friends, in the hope that an early preview will be
11 useful.
12
13 When the Vulkan specification goes public, we will continue the work
14 in the Mesa public git repository, but in the interim we will share
15 our progress on the 'vulkan' branch in the 'mesa' repository in
16 Khronos gitlab.
17
18 The Mesa project source and our driver implementation is under the MIT
19 license [1], but is also covered by the Khronos IP framework as it
20 pertains to a specification under construction [2].
21
22 We welcome all feedback and contibutions, as long as the contributions
23 are MIT licensed and can be open sourced with the driver.
24
25 [1] https://opensource.org/licenses/MIT
26 [2] https://www.khronos.org/members/ip-framework
27
28
29 Maintainers
30 ===========
31 Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
32 Jason Ekstrand <jason.ekstrand@intel.com>
33 Chad Versace <chad.versace@intel.com>
34
35
36 Supported Hardware
37 ==================
38 - Broadwell, main development focus
39 - Ivybridge
40 - Sky Lake
41 - Haswell
42 - Bay Trail
43 - Cherryview
44 - Broxton
45
46
47 Supported OS Platforms
48 ======================
49 - Linux, tested on Fedora 22 with kernel >= 4.1
50 - X11 with DRI3
51 - Wayland
52 - Android
53 - TODO
54
55
56 Building and Installing
57 =======================
58 This driver is intended to be used directly from the build tree. Installing the
59 driver into a system location is not yet fully supported. If you require support
60 for system-wide installation, please contact a maintainer.
61
62 Throughout the instructions, MESA_TOP refers to the top of the Mesa repository.
63
64 First, install the usual dependencies needed to build Mesa.
65
66 Fedora:
67 $ sudo yum builddep mesa
68 Ubunutu:
69 $ FINISHME
70
71 Next, configure and build. The below commands will build Mesa in release mode.
72 If you wish to build Mesa in debug mode, add option '--enable-debug' to the
73 configure command.
74
75 $ cd $MESA_TOP
76 $ autoreconf -vfi
77 $ ./configure --with-dri-drivers=i965 --with-gallium-drivers=
78 $ make
79
80 To use the driver's libvulkan.so directly, without LunarG's loader, you must set
81 an environment variable before running your Vulkan application:
82
83 $ export LD_LIBRARY_PATH="$MESA_TOP/lib"
84 $ your-vk-app
85
86 Alternatively, to use the driver with LunarG's loader:
87
88 $ export VK_ICD_FILENAMES="$MESA_TOP/src/vulkan/anv_icd.json"
89 $ your-vk-app
90
91
92 File Structure and Naming
93 =========================
94 The core code of Intel's Mesa Vulkan driver lives in src/vulkan. Files prefixed
95 with "gen8" support Broadwell; files prefixed with "gen7" support Ivybridge;
96 files prefixed with "anv" are common to all hardware generations.
97
98 Mesa is an umbrella open source project containing many drivers for multiple
99 APIs. The codename for Intel's Mesa Vulkan driver is "Anvil", hence the filename
100 prefix "anv".
101
102
103 Feature Status
104 ==============
105 The driver is still a work-in-progress. We do our best to keep the below list of
106 features up-to-date.
107
108 Supported Features:
109 - Index buffers, instanced draw, indirect draw
110 - Nested command buffers
111 - Consumes SPIR-V (no GLSL "backdoor")
112 - Fragment, vertex, geometry, and compute shaders
113 - Uniform buffers, sampled images, dynamic uniform buffers
114 - Shader storage buffers
115 - Push constants (VS and FS only)
116 - Color, depth and stencil attachments
117 - 1D, 2D, 3D textures, texture arrays
118 - Memory barrier
119 - Optionally integrates with LunarGs loader
120 - WSI extension for X11
121 - Fences
122 - Most copy/blit commands for color and depth buffers,
123 vkCmdCopyImageToBuffer for stencil buffers
124 - Occlution query and timestamps
125 - VkkSemaphore and VkEvent
126
127 Unsupported Features:
128 - Shader specialization
129 - Storage images
130 - Tesselation shaders
131 - Push constants in GS and CS (and VS on HSW and prior)
132 - Sparse resources
133 - MSAA
134 - vkCmdClear commands
135 - Input attachments