<div dir="ltr">The Intel mesa team is pleased to announce a brand-new open-source Vulkan<br>driver for Intel hardware.  We've been working hard on this over the course<br>of the past year or so and are excited to finally share it with the<br>community.  We will work on up-streaming the driver in the next few weeks<br>and hope to have it all in place in time for mesa 11.3 (mesa 12?).  In the<br>mean time, the driver can be found in the "vulkan" branch of the mesa git<br>repo on <a href="http://freedesktop.org">freedesktop.org</a>:<br><br><a href="https://cgit.freedesktop.org/mesa/mesa/log/?h=vulkan">https://cgit.freedesktop.org/mesa/mesa/log/?h=vulkan</a><br><br>More information on building the driver and running a few simple apps can<br>be found on the <a href="http://01.org">01.org</a> web site:<br><br><a href="https://01.org/linuxgraphics/blogs/jekstrand/2016/open-source-vulkan-drivers-intel-hardware">https://01.org/linuxgraphics/blogs/jekstrand/2016/open-source-vulkan-drivers-intel-hardware</a><br><br>We have talked to people at Red Hat and Cannonical and binaries should be<br>available for Fedora and Ubuntu soon.  We will update the page on <a href="http://01.org">01.org</a><br>with links as soon as they are available.<br><br>We have also created a small test suite called crucible which contains a<br>few hundred tests (mostly for miptrees) that we created when bringing up<br>the driver.  This isn't really intended to be the piglit of vulkan.  With<br>the CTS being publicly available, most cross-platform tests should go<br>there.  We mostly made crucible so that we could write a few tests early on<br>to get us going and for tests that were targetted specifically at our<br>implementation.  None the less, they may prove useful to someone and we are<br>happy to share them.  The crucible source code can be found at<br><br><a href="https://cgit.freedesktop.org/mesa/crucible/">https://cgit.freedesktop.org/mesa/crucible/</a><br><br>Frequently Asked Questions:<br><br>What all hardware does it support?<br><br>   The driver currently supports Sky Lake all the way back to Ivy Bridge.<br>   The driver is Vulkan 1.0 conformant for 64-bit builds on Sky Lake,<br>   Broadwell, and Braswell.  We are still having a couple of 32-bit issues<br>   and support for Haswell, Ivy Bridge, and Bay Trail should be considered<br>   experimental.<br><br>How much code is shared between the Vulkan and GL drivers?<br><br>   For shaders, we're using a SPIR-V to NIR pass which is new, and a few<br>   new NIR lowering passes for things that we previously depended on GLSL<br>   IR to handle.  Beyond that, we're using the same core NIR and the same<br>   back-end compiler that we have for GL.  We're carrying a few patches<br>   against the back-end compiler, but the delta is very small and it's all<br>   stuff that we eventually want to do for GL anyway.<br><br>   The main API handling and state setup code is all new and written from<br>   the ground-up for Vulkan.  For actually packing hardware packets, we are<br>   using a codegen system that Kristian developed early on in the project<br>   that's based on an XML description of the hardware packets.  The result<br>   is state setup code that's both easier to work with and maybe even a<br>   little more efficient than what we have in mesa today.<br><br>   We also have a brand-new surface layout library called ISL that handles<br>   all of the surface layout calculations.  ISL should have most of the<br>   code required to do surface layout all the way back to gen4.  Once we<br>   get aux surface support in ISL (required for HiZ, MSAA compression, and<br>   CCMS/fast clears), we hope to start using it in the GL driver as well.<br><br>How much code could be shared with other Vulkan drivers?<br><br>   Not as much as you would think.  The SPIR-V to NIR translator and the<br>   rest of the NIR compiler stack could obviously be re-used by anyone<br>   willing to tie NIR into their back-end.  The rest of the driver is, and<br>   will probably stay, Intel-specific.  Vulkan is a very low-level API,<br>   possibly even lower-level than gallium.  A lot of the things that we<br>   share between drivers in mesa today: the front-end compiler, state<br>   tracking, error-handling, etc. is pushed off to either the application<br>   or third-party layers in the Vulkan world.  That said, anyone wishing to<br>   write their own Vulkan driver, is more than welcome to use ours as a<br>   reference and steal whatever they'd like from it.<br><br>What are your up-streaming plans?<br><br>   Before we can land the SPIR-V to NIR layer, there are a number of core<br>   NIR changes that need to land first.  All of that code needs to be<br>   reviewed as it interacts with the GL driver and we don't want any<br>   regressions.  We are also still carrying a few patches against the i965<br>   back-end compiler that need a little more testing and proper review.  It<br>   will take some time to get all of that up-stream.<br><br>   Once that is completed and all of the NIR and i965 back-end bits are in<br>   place, SPIR-V, ISL, and the Vulkan driver itself can probably be merged<br>   without further review since they are fairly self-contained and are new<br>   functionality.  We should easily be able to get the driver up-stream in<br>   time for the 11.3 (or 12.0) release.<br><br>What window-systems are supported?<br><br>   The driver already has window system integration (WSI) support for X11<br>   with DRI3 and Wayland.  The Vulkan WSI extensions don't mesh well with<br>   DRI2 so supporting that isn't really an option.  If you want to Vulkan<br>   applications under X, you'll need to enable DRI3.<br><br>Will it run X Vulkan application/demo?<br><br>   Hopefully.  Our driver does pass the conformance suite which means the<br>   chances are pretty good that any given app will at least work.  However,<br>   no test suite is perfect and our driver and the Vulkan ecosystem are<br>   still young, so there may be bugs.  If you do run into problems with an<br>   application, please file a bug against mesa at <a href="http://bugs.freedesktop.org">bugs.freedesktop.org</a> and<br>   we will get to it as quickly as we can.<br><br>Where did Kristian, Jason and Chad go?<br><br>   Well, now you know. :-)<br><br>We hope you have as much fun hacking on and playing with this driver as we<br>did writing it.  As always, questions, comments, and bug reports are more<br>than welcome.  Happy hacking!<br><br>Best Regards,<br>Jason Ekstrand,<br>Kristian Høgsberg Kristensen,<br>Chad Versace,<br>and the rest of the Intel mesa team<br><br></div>