Mesa3D Graphics Library (Bleeding edge ray tracing branches)
Go to file
Jason Ekstrand fbb9e1f008 spirv/alu: Add support for the NoContraction decoration 2016-03-25 21:35:41 -07:00
bin mesa; add get-extra-pick-list.sh script into bin/ 2016-02-29 11:25:35 +00:00
docs docs: use latest libDRM version 2016-03-23 12:56:32 -06:00
doxygen doxygen: Remove doxygen_sqlite3.db with 'make clean' 2015-07-11 20:48:25 +01:00
include Update to the latest Vulkan header from Khronos 2016-03-22 16:06:53 -07:00
m4 mesa/build: add OpenSWR to build 2016-03-02 18:38:42 -06:00
scons scons: Eliminate MSVC2008 compatibility. 2016-02-11 21:36:00 +00:00
src spirv/alu: Add support for the NoContraction decoration 2016-03-25 21:35:41 -07:00
.dir-locals.el dir-locals.el: set case-label offset to 0 2016-02-03 15:44:51 -05:00
.gitattributes
.gitignore opencl: fix .gitignore for .install-gallium-links 2016-03-09 17:16:52 +00:00
.travis.yml travis: Add a test build with scons. 2015-12-01 15:09:56 -08:00
Android.common.mk Android: remove headers from LOCAL_SRC_FILES 2016-02-29 10:51:44 +00:00
Android.mk Android: clean-up and fix DRI module path handling 2016-02-29 10:51:44 +00:00
CleanSpec.mk android: Depend on gallium_dri from EGL, instead of linking in gallium. 2015-06-09 11:38:45 -07:00
Makefile.am automake: explicitly set distcheck configure flags 2016-02-29 10:51:45 +00:00
README.intel-vulkan.txt anv: Pull Khronos stuff from the README 2016-02-16 07:43:21 -08:00
SConstruct scons: Don't use bundled C99 headers for VS 2013. 2014-05-02 22:04:46 +01:00
VERSION mesa: bump version 2016-02-22 10:38:37 -05:00
appveyor.yml appveyor: Bump shallow clone depth. 2016-02-03 19:37:19 +00:00
autogen.sh autogen.sh: pass --force to autoreconf, quote ORIGDIR 2015-03-11 23:28:26 +00:00
common.py common.py: Fix PEP 8 issues. 2015-03-16 22:55:08 -07:00
configure.ac Merge remote-tracking branch 'public/master' into vulkan 2016-03-24 17:30:14 -07:00
install-gallium-links.mk install-gallium-links: port changes from install-lib-links 2016-02-29 10:51:45 +00:00
install-lib-links.mk install-lib-links: remove the .install-lib-links file 2015-02-24 15:33:25 +00:00

README.intel-vulkan.txt

Intel's Open Source Vulkan Driver
Vulkan API Version: 1.0.2
SPIR-V Version: 1.0

Intro
=====
The Open Source Technology Center 3D graphics team at Intel has
been working on a Vulkan implementation based on the Mesa open source
OpenGL implementation.

The Mesa project source and our driver implementation is under the MIT
license [1], but is also covered by the Khronos IP framework as it
pertains to a specification under construction [2].

We welcome all feedback and contibutions, as long as the contributions
are MIT licensed and can be open sourced with the driver.

[1] https://opensource.org/licenses/MIT
[2] https://www.khronos.org/members/ip-framework


Maintainers
===========
Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
Jason Ekstrand <jason.ekstrand@intel.com>
Chad Versace <chad.versace@intel.com>


Supported Hardware
==================
- Broadwell & Sky Lake, main development focus
- Ivybridge
- Haswell
- Bay Trail
- Cherryview
- Broxton


Conformance
===========
First-wave conformance has been submitted for Broadwell, Sky Lake, and
Cherryview.  They all pass 100% of the mustpass tests as of January 30,
2016.


Supported OS Platforms
======================
 - Linux, tested on Fedora 22 with kernel >= 4.1
     - X11 with DRI3
     - Wayland
 - Android
     - TODO


Building and Installing
=======================
This driver is intended to be used directly from the build tree. Installing the
driver into a system location is not yet fully supported. If you require support
for system-wide installation, please contact a maintainer.

Throughout the instructions, MESA_TOP refers to the top of the Mesa repository.

First, install the usual dependencies needed to build Mesa.

        Fedora:
            $ sudo yum builddep mesa
        Ubunutu:
            $ FINISHME

Next, configure and build. The below commands will build Mesa in release mode.
If you wish to build Mesa in debug mode, add option '--enable-debug' to the
configure command.

        $ cd $MESA_TOP
        $ autoreconf -vfi
        $ ./configure --with-dri-drivers=i965 --with-gallium-drivers=
        $ make

To use the driver's libvulkan.so directly, without LunarG's loader, you must set
an environment variable before running your Vulkan application:

        $ export LD_LIBRARY_PATH="$MESA_TOP/lib"
        $ your-vk-app

Alternatively, to use the driver with LunarG's loader:

        $ export VK_ICD_FILENAMES="$MESA_TOP/src/vulkan/anv_icd.json"
        $ your-vk-app


File Structure and Naming
=========================
The core code of Intel's Mesa Vulkan driver lives in src/vulkan. Files prefixed
with "gen8" support Broadwell; files prefixed with "gen7" support Ivybridge;
files prefixed with "anv" are common to all hardware generations.

Mesa is an umbrella open source project containing many drivers for multiple
APIs. The codename for Intel's Mesa Vulkan driver is "Anvil", hence the filename
prefix "anv".


Feature Status
==============
The driver is still a work-in-progress. We do our best to keep the below list of
features up-to-date.

Supported Features:
  - Index buffers, instanced draw, indirect draw
  - Nested command buffers
  - Consumes SPIR-V (no GLSL "backdoor")
  - Fragment, vertex, geometry, and compute shaders
  - Uniform buffers, sampled images, dynamic uniform buffers
  - Shader storage buffers
  - Push constants
  - Color, depth and stencil attachments
  - 1D, 2D, 3D textures, texture arrays
  - Memory barrier
  - Optionally integrates with LunarGs loader
  - WSI extension for X11
  - Fences
  - Most copy/blit commands for color and depth buffers,
    vkCmdCopyImageToBuffer for stencil buffers
  - Occlution query and timestamps
  - VkkSemaphore and VkEvent
  - Shader specialization
  - Storage images
  - MSAA

Unsupported Features:
   - Tesselation shaders
   - Push constants in GS and VS on HSW and prior
   - Sparse resources
   - Input attachments