drisw: use getImageShm() if available
[mesa.git] / docs / intro.html
index 58c39dabc2d5f6715399e7f4e6be0fd865625d3a..be164c883dd59be2bc9f6a22c49bcf31024ba633 100644 (file)
@@ -1,41 +1,60 @@
-<HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <title>Mesa Introduction</title>
+  <link rel="stylesheet" type="text/css" href="mesa.css">
+</head>
+<body>
 
-<TITLE>Mesa Introduction</TITLE>
+<div class="header">
+  <h1>The Mesa 3D Graphics Library</h1>
+</div>
 
-<BODY text="#000000" bgcolor="#55bbff">
+<iframe src="contents.html"></iframe>
+<div class="content">
 
-<H1>Introduction</H1>
+<h1>Introduction</h1>
 
 <p>
-Mesa is a 3-D graphics library with an API which is very similar to
-that of <a href="http://www.opengl.org/" target="_parent">OpenGL</a>.*
-To the extent that Mesa utilizes the OpenGL command syntax or state
-machine, it is being used with authorization from <a
-href="http://www.sgi.com/" target="_parent">Silicon Graphics,
-Inc.</a>(SGI). However, the author does not possess an OpenGL license
-from SGI, and makes no claim that Mesa is in any way a compatible
-replacement for OpenGL or associated with SGI. Those who want a
-licensed implementation of OpenGL should contact a licensed
-vendor.
+The Mesa project began as an open-source implementation of the
+<a href="https://www.opengl.org/">OpenGL</a> specification -
+a system for rendering interactive 3D graphics.
 </p>
 
 <p>
-Please do not refer to the library as <em>MesaGL</em> (for legal
-reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
-library</em>. <br>
+Over the years the project has grown to implement more graphics APIs,
+including
+<a href="https://www.khronos.org/opengles/">OpenGL ES</a> (versions 1, 2, 3),
+<a href="https://www.khronos.org/opencl/">OpenCL</a>,
+<a href="https://www.khronos.org/openmax/">OpenMAX</a>,
+<a href="https://en.wikipedia.org/wiki/VDPAU">VDPAU</a>,
+<a href="https://en.wikipedia.org/wiki/Video_Acceleration_API">VA API</a>,
+<a href="https://en.wikipedia.org/wiki/X-Video_Motion_Compensation">XvMC</a> and
+<a href="https://www.khronos.org/vulkan/">Vulkan</a>.
 </p>
 
 <p>
-* OpenGL is a trademark of <a href="http://www.sgi.com/"
-target="_parent">Silicon Graphics Incorporated</a>.
+A variety of device drivers allows the Mesa libraries to be used in many
+different environments ranging from software emulation to complete hardware
+acceleration for modern GPUs.
 </p>
 
+<p>
+Mesa ties into several other open-source projects: the
+<a href="https://dri.freedesktop.org/">Direct Rendering
+Infrastructure</a> and <a href="https://x.org">X.org</a> to
+provide OpenGL support on Linux, FreeBSD and other operating
+systems.
+</p>
+
+
 
-<H1>Project History</H1>
+<h1>Project History</h1>
 
 <p>
-The Mesa project was founded by me, Brian Paul.  Here's a short history
-of the project.
+The Mesa project was originally started by Brian Paul.
+Here's a short history of the project.
 </p>
 
 <p>
@@ -78,9 +97,9 @@ the OpenGL API, so they didn't feel threatened by the project.
 1995-1996: I continue working on Mesa both during my spare time and during
 my work hours at the Space Science and Engineering Center at the University
 of Wisconsin in Madison.  My supervisor, Bill Hibbard, lets me do this because
-Mesa is now being using for the <a href="http://www.ssec.wisc.edu/%7Ebillh/vis.html" target="_parent">Vis5D</a> project.
+Mesa is now being using for the <a href="https://www.ssec.wisc.edu/%7Ebillh/vis.html">Vis5D</a> project.
 </p><p>
-October 1996: Mesa 2.0 is released.  It implementes the OpenGL 1.1 specification.
+October 1996: Mesa 2.0 is released.  It implements the OpenGL 1.1 specification.
 </p>
 
 <p>
@@ -112,11 +131,9 @@ It implements the OpenGL 1.3 specification.
 
 
 <p>
-November 2001: I cofound <a href="http://www.tungstengraphics.com" target="_parent">
-Tungsten Graphics, Inc.</a> with Keith Whitwell, Jens Owen, David Dawes and
-Frank LaMonica.
-I continue to develop Mesa as part of my resposibilities with Tungsten
-Graphics and as a spare-time project.
+November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell,
+Jens Owen, David Dawes and Frank LaMonica.
+Tungsten Graphics was acquired by VMware in December 2008.
 </p>
 
 <p>
@@ -125,23 +142,154 @@ It implements the OpenGL 1.4 specification.
 </p>
 
 <p>
-Ongoing: Mesa is used as the core of many hardware OpenGL drivers for XFree86
-within the
-<A href="http://dri.sourceforge.net/" target="_parent">DRI project</A>.
-I continue to enhance Mesa with new extensions and features.
+January 2003: Mesa 6.0 is released.  It implements the OpenGL 1.5
+specification as well as the GL_ARB_vertex_program and
+GL_ARB_fragment_program extensions.
+</p>
+
+<p>
+June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
+and OpenGL Shading Language.
+</p>
+
+<p>
+2008: Keith Whitwell and other Tungsten Graphics employees develop
+<a href="https://en.wikipedia.org/wiki/Gallium3D">Gallium</a>
+- a new GPU abstraction layer.  The latest Mesa drivers are based on
+Gallium and other APIs such as OpenVG are implemented on top of Gallium.
+</p>
+
+<p>
+February 2012: Mesa 8.0 is released, implementing the OpenGL 3.0 specification
+and version 1.30 of the OpenGL Shading Language.
+</p>
+
+<p>
+July 2016: Mesa 12.0 is released, including OpenGL 4.3 support and initial
+support for Vulkan for Intel GPUs.  Plus, there's another gallium software
+driver ("swr") based on LLVM and developed by Intel.
+</p>
+
+<p>
+Ongoing: Mesa is the OpenGL implementation for devices designed by
+Intel, AMD, NVIDIA, Qualcomm, Broadcom, Vivante, plus the VMware and
+VirGL virtual GPUs.
+There's also several software-based renderers: swrast (the legacy
+Mesa rasterizer), softpipe (a gallium reference driver), llvmpipe
+(LLVM/JIT-based high-speed rasterizer) and swr (another LLVM-based driver).
+</p>
+<p>
+Work continues on the drivers and core Mesa to implement newer versions
+of the OpenGL, OpenGL ES and Vulkan specifications.
+</p>
+
+
+
+<h1>Major Versions</h1>
+
+<p>
+This is a summary of the major versions of Mesa.
+Mesa's major version number has been incremented whenever a new version
+of the OpenGL specification is implemented.
+</p>
+
+
+<h2>Version 12.x features</h2>
+<p>
+Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
+support OpenGL 4.3.
+</p>
+<p>
+Initial support for Vulkan is also included.
+</p>
+
+
+<h2>Version 11.x features</h2>
+<p>
+Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
+support OpenGL 4.1.
+</p>
+
+
+<h2>Version 10.x features</h2>
+<p>
+Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
+support OpenGL 3.3.
 </p>
 
 
+<h2>Version 9.x features</h2>
+<p>
+Version 9.x of Mesa implements the OpenGL 3.1 API.
+While the driver for Intel Sandy Bridge and Ivy Bridge is the only
+driver to support OpenGL 3.1, many developers across the open-source
+community contributed features required for OpenGL 3.1.  The primary
+features added since the Mesa 8.0 release are
+GL_ARB_texture_buffer_object and GL_ARB_uniform_buffer_object.
+</p>
+<p>
+Version 9.0 of Mesa also included the first release of the Clover state
+tracker for OpenCL.
+</p>
 
-<H1>Major Versions</H1>
 
+<h2>Version 8.x features</h2>
 <p>
-This is a summary of the major versions of Mesa.  Note that Mesa's major
-version number tracks OpenGL's minor version number.
+Version 8.x of Mesa implements the OpenGL 3.0 API.
+The developers at Intel deserve a lot of credit for implementing most
+of the OpenGL 3.0 features in core Mesa, the GLSL compiler as well as
+the i965 driver.
 </p>
 
 
-<H2>Version 5.x features</H2>
+<h2>Version 7.x features</h2>
+<p>
+Version 7.x of Mesa implements the OpenGL 2.1 API.  The main feature
+of OpenGL 2.x is the OpenGL Shading Language.
+</p>
+
+
+<h2>Version 6.x features</h2>
+<p>
+Version 6.x of Mesa implements the OpenGL 1.5 API with the following
+extensions incorporated as standard features:
+</p>
+<ul>
+<li>GL_ARB_occlusion_query
+<li>GL_ARB_vertex_buffer_object
+<li>GL_EXT_shadow_funcs
+</ul>
+<p>
+Also note that several OpenGL tokens were renamed in OpenGL 1.5
+for the sake of consistency.
+The old tokens are still available.
+</p>
+<pre>
+New Token                   Old Token
+------------------------------------------------------------
+GL_FOG_COORD_SRC            GL_FOG_COORDINATE_SOURCE
+GL_FOG_COORD                GL_FOG_COORDINATE
+GL_CURRENT_FOG_COORD        GL_CURRENT_FOG_COORDINATE
+GL_FOG_COORD_ARRAY_TYPE     GL_FOG_COORDINATE_ARRAY_TYPE
+GL_FOG_COORD_ARRAY_STRIDE   GL_FOG_COORDINATE_ARRAY_STRIDE
+GL_FOG_COORD_ARRAY_POINTER  GL_FOG_COORDINATE_ARRAY_POINTER
+GL_FOG_COORD_ARRAY          GL_FOG_COORDINATE_ARRAY
+GL_SRC0_RGB                 GL_SOURCE0_RGB
+GL_SRC1_RGB                 GL_SOURCE1_RGB
+GL_SRC2_RGB                 GL_SOURCE2_RGB
+GL_SRC0_ALPHA               GL_SOURCE0_ALPHA
+GL_SRC1_ALPHA               GL_SOURCE1_ALPHA
+GL_SRC2_ALPHA               GL_SOURCE2_ALPHA
+</pre>
+<p>
+See the
+<a href="https://www.opengl.org/documentation/spec.html">
+OpenGL specification</a> for more details.
+</p>
+
+
+
+<h2>Version 5.x features</h2>
 <p>
 Version 5.x of Mesa implements the OpenGL 1.4 API with the following
 extensions incorporated as standard features:
@@ -162,11 +310,12 @@ extensions incorporated as standard features:
 <li>GL_EXT_point_parameters
 <li>GL_EXT_secondary_color
 <li>GL_EXT_stencil_wrap
+<li>GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter)
 <li>GL_SGIS_generate_mipmap
 </ul>
 
 
-<H2>Version 4.x features</H2>
+<h2>Version 4.x features</h2>
 
 <p>
 Version 4.x of Mesa implements the OpenGL 1.3 API with the following
@@ -185,7 +334,7 @@ extensions incorporated as standard features:
 <li>GL_ARB_transpose_matrix
 </ul>
 
-<H2>Version 3.x features</H2>
+<h2>Version 3.x features</h2>
 
 <p>
 Version 3.x of Mesa implements the OpenGL 1.2 API with the following
@@ -201,7 +350,7 @@ features:
 </ul>
 
 
-<H2>Version 2.x features</H2>
+<h2>Version 2.x features</h2>
 <p>
 Version 2.x of Mesa implements the OpenGL 1.1 API with the following
 features.
@@ -250,6 +399,6 @@ features.
        </ul>
 </ul>
 
-
+</div>
 </body>
 </html>