docs: convert articles to reructuredtext

This uses the previously added scripts to convert the documentation to
reStructuredText, which is both easier to read offline, and can be used
to generate modern HTML for online documentation.

No modification to the generated results have been done.

Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4630>
This commit is contained in:
Erik Faye-Lund 2020-06-12 20:09:42 +02:00 committed by Marge Bot
parent 1df5dbf516
commit 4d066836e3
626 changed files with 69177 additions and 77922 deletions

View File

@ -1,85 +0,0 @@
<!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>Application Issues</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Application Issues</h1>
<p>
This page documents known issues with some OpenGL applications.
</p>
<h2>Topogun</h2>
<p>
<a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least)
creates a GLX visual without requesting a depth buffer.
This causes bad rendering if the OpenGL driver happens to choose a visual
without a depth buffer.
</p>
<p>
Mesa 9.1.2 and later (will) support a DRI configuration option to work around
this issue.
Using the <a href="https://dri.freedesktop.org/wiki/DriConf">driconf</a> tool,
set the "Create all visuals with a depth buffer" option before running Topogun.
Then, all GLX visuals will be created with a depth buffer.
</p>
<h2>Old OpenGL games</h2>
<p>
Some old OpenGL games (approx. ten years or older) may crash during
start-up because of an extension string buffer-overflow problem.
</p>
<p>
The problem is a modern OpenGL driver will return a very long string
for the <code>glGetString(GL_EXTENSIONS)</code> query and if the application
naively copies the string into a fixed-size buffer it can overflow the
buffer and crash the application.
</p>
<p>
The work-around is to set the <code>MESA_EXTENSION_MAX_YEAR</code>
environment variable to the approximate release year of the game.
This will cause the <code>glGetString(GL_EXTENSIONS)</code> query to only report
extensions older than the given year.
</p>
<p>
For example, if the game was released in 2001, do
</p>
<pre>
export MESA_EXTENSION_MAX_YEAR=2001
</pre>
<p>
before running the game.
</p>
<h2>Viewperf</h2>
<p>
See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list
of Viewperf issues.
</p>
</div>
</body>
</html>

View File

@ -0,0 +1,48 @@
Application Issues
==================
This page documents known issues with some OpenGL applications.
Topogun
-------
`Topogun <http://www.topogun.com/>`__ for Linux (version 2, at least)
creates a GLX visual without requesting a depth buffer. This causes bad
rendering if the OpenGL driver happens to choose a visual without a
depth buffer.
Mesa 9.1.2 and later (will) support a DRI configuration option to work
around this issue. Using the
`driconf <https://dri.freedesktop.org/wiki/DriConf>`__ tool, set the
"Create all visuals with a depth buffer" option before running Topogun.
Then, all GLX visuals will be created with a depth buffer.
Old OpenGL games
----------------
Some old OpenGL games (approx. ten years or older) may crash during
start-up because of an extension string buffer-overflow problem.
The problem is a modern OpenGL driver will return a very long string for
the ``glGetString(GL_EXTENSIONS)`` query and if the application naively
copies the string into a fixed-size buffer it can overflow the buffer
and crash the application.
The work-around is to set the ``MESA_EXTENSION_MAX_YEAR`` environment
variable to the approximate release year of the game. This will cause
the ``glGetString(GL_EXTENSIONS)`` query to only report extensions older
than the given year.
For example, if the game was released in 2001, do
::
export MESA_EXTENSION_MAX_YEAR=2001
before running the game.
Viewperf
--------
See the `Viewperf issues <viewperf.html>`__ page for a detailed list of
Viewperf issues.

View File

@ -1,59 +0,0 @@
<!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>Report a Bug</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Report a Bug</h1>
<p>
The Mesa bug database is hosted on
<a href="https://freedesktop.org">freedesktop.org</a>.
The old bug database on SourceForge is no longer used.
</p>
<p>
To file a Mesa bug, go to
<a href="https://gitlab.freedesktop.org/mesa/mesa/-/issues">
GitLab on freedesktop.org</a>
</p>
<p>
Please follow these bug reporting guidelines:
</p>
<ul>
<li>Check if a new version of Mesa is available which might have fixed
the problem.
<li>Check if your bug is already reported in the database.
<li>Monitor your bug report for requests for additional information, etc.
<li>Attach the output of running glxinfo or wglinfo.
This will tell us the Mesa version, which device driver you're using, etc.
<li>If you're reporting a crash, try to use your debugger (gdb) to get a stack
trace. Also, recompile Mesa in debug mode to get more detailed information.
<li>Describe in detail how to reproduce the bug, especially with games
and applications that the Mesa developers might not be familiar with.
<li>Provide an <a href="https://github.com/apitrace/apitrace">apitrace</a>
or simple GLUT-based test program if possible.
</ul>
<p>
The easier a bug is to reproduce, the sooner it will be fixed.
Please do everything you can to facilitate quickly fixing bugs.
If your bug report is vague or your test program doesn't compile
easily, the problem may not be fixed very quickly.
</p>
</div>
</body>
</html>

30
docs/bugs.rst Normal file
View File

@ -0,0 +1,30 @@
Report a Bug
============
The Mesa bug database is hosted on
`freedesktop.org <https://freedesktop.org>`__. The old bug database on
SourceForge is no longer used.
To file a Mesa bug, go to `GitLab on
freedesktop.org <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__
Please follow these bug reporting guidelines:
- Check if a new version of Mesa is available which might have fixed
the problem.
- Check if your bug is already reported in the database.
- Monitor your bug report for requests for additional information, etc.
- Attach the output of running glxinfo or wglinfo. This will tell us
the Mesa version, which device driver you're using, etc.
- If you're reporting a crash, try to use your debugger (gdb) to get a
stack trace. Also, recompile Mesa in debug mode to get more detailed
information.
- Describe in detail how to reproduce the bug, especially with games
and applications that the Mesa developers might not be familiar with.
- Provide an `apitrace <https://github.com/apitrace/apitrace>`__ or
simple GLUT-based test program if possible.
The easier a bug is to reproduce, the sooner it will be fixed. Please do
everything you can to facilitate quickly fixing bugs. If your bug report
is vague or your test program doesn't compile easily, the problem may
not be fixed very quickly.

View File

@ -1,143 +0,0 @@
<!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>Coding Style</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Coding Style</h1>
<p>
Mesa is over 20 years old and the coding style has evolved over time.
Some old parts use a style that's a bit out of date.
Different sections of mesa can use different coding style as set in the local
EditorConfig (.editorconfig) and/or Emacs (.dir-locals.el) file.
Alternatively the following is applicable.
If the guidelines below don't cover something, try following the format of
existing, neighboring code.
</p>
<p>
Basic formatting guidelines
</p>
<ul>
<li>3-space indentation, no tabs.
<li>Limit lines to 78 or fewer characters. The idea is to prevent line
wrapping in 80-column editors and terminals. There are exceptions, such
as if you're defining a large, static table of information.
<li>Opening braces go on the same line as the if/for/while statement.
For example:
<pre>
if (condition) {
foo;
} else {
bar;
}
</pre>
<li>Put a space before/after operators. For example, <code>a = b + c;</code>
and not <code>a=b+c;</code>
<li>This GNU indent command generally does the right thing for formatting:
<pre>
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
</pre>
<li>
<p>Use comments wherever you think it would be helpful for other developers.
Several specific cases and style examples follow. Note that we roughly
follow <a href="http://www.doxygen.nl">Doxygen</a> conventions.
</p>
Single-line comments:
<pre>
/* null-out pointer to prevent dangling reference below */
bufferObj = NULL;
</pre>
Or,
<pre>
bufferObj = NULL; /* prevent dangling reference below */
</pre>
Multi-line comment:
<pre>
/* If this is a new buffer object id, or one which was generated but
* never used before, allocate a buffer object now.
*/
</pre>
We try to quote the OpenGL specification where prudent:
<pre>
/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
*
* "An INVALID_OPERATION error is generated for any of the following
* conditions:
*
* * &lt;length&gt; is zero."
*
* Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
* (30.10.2014) also says this, so it's no longer allowed for desktop GL,
* either.
*/
</pre>
Function comment example:
<pre>
/**
* Create and initialize a new buffer object. Called via the
* ctx-&gt;Driver.CreateObject() driver callback function.
* \param name integer name of the object
* \param type one of GL_FOO, GL_BAR, etc.
* \return pointer to new object or NULL if error
*/
struct gl_object *
_mesa_create_object(GLuint name, GLenum type)
{
/* function body */
}
</pre>
<li>Put the function return type and qualifiers on one line and the function
name and parameters on the next, as seen above. This makes it easy to use
<code>grep ^function_name dir/*</code> to find function definitions. Also,
the opening brace goes on the next line by itself (see above.)
<li>Function names follow various conventions depending on the type of function:
<pre>
glFooBar() - a public GL entry point (in glapi_dispatch.c)
_mesa_FooBar() - the internal immediate mode function
save_FooBar() - retained mode (display list) function in dlist.c
foo_bar() - a static (private) function
_mesa_foo_bar() - an internal non-static Mesa function
</pre>
<li>Constants, macros and enum names are <code>ALL_UPPERCASE</code>, with _
between words.
<li>Mesa usually uses camel case for local variables (Ex:
<code>localVarname</code>) while gallium typically uses underscores (Ex:
<code>local_var_name</code>).
<li>Global variables are almost never used because Mesa should be thread-safe.
<li>Booleans. Places that are not directly visible to the GL API
should prefer the use of <code>bool</code>, <code>true</code>, and
<code>false</code> over <code>GLboolean</code>, <code>GL_TRUE</code>, and
<code>GL_FALSE</code>. In C code, this may mean that
<code>#include &lt;stdbool.h&gt;</code> needs to be added. The
<code>try_emit_*</code> methods in <code>src/mesa/program/ir_to_mesa.cpp</code>
and <code>src/mesa/state_tracker/st_glsl_to_tgsi.cpp</code> can serve as
examples.
</ul>
</div>
</body>
</html>

124
docs/codingstyle.rst Normal file
View File

@ -0,0 +1,124 @@
Coding Style
============
Mesa is over 20 years old and the coding style has evolved over time.
Some old parts use a style that's a bit out of date. Different sections
of mesa can use different coding style as set in the local EditorConfig
(.editorconfig) and/or Emacs (.dir-locals.el) file. Alternatively the
following is applicable. If the guidelines below don't cover something,
try following the format of existing, neighboring code.
Basic formatting guidelines
- 3-space indentation, no tabs.
- Limit lines to 78 or fewer characters. The idea is to prevent line
wrapping in 80-column editors and terminals. There are exceptions,
such as if you're defining a large, static table of information.
- Opening braces go on the same line as the if/for/while statement. For
example:
::
if (condition) {
foo;
} else {
bar;
}
- Put a space before/after operators. For example, ``a = b + c;`` and
not ``a=b+c;``
- This GNU indent command generally does the right thing for
formatting:
::
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
- Use comments wherever you think it would be helpful for other
developers. Several specific cases and style examples follow. Note
that we roughly follow `Doxygen <http://www.doxygen.nl>`__
conventions.
Single-line comments:
::
/* null-out pointer to prevent dangling reference below */
bufferObj = NULL;
Or,
::
bufferObj = NULL; /* prevent dangling reference below */
Multi-line comment:
::
/* If this is a new buffer object id, or one which was generated but
* never used before, allocate a buffer object now.
*/
We try to quote the OpenGL specification where prudent:
::
/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
*
* "An INVALID_OPERATION error is generated for any of the following
* conditions:
*
* * <length> is zero."
*
* Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
* (30.10.2014) also says this, so it's no longer allowed for desktop GL,
* either.
*/
Function comment example:
::
/**
* Create and initialize a new buffer object. Called via the
* ctx->Driver.CreateObject() driver callback function.
* \param name integer name of the object
* \param type one of GL_FOO, GL_BAR, etc.
* \return pointer to new object or NULL if error
*/
struct gl_object *
_mesa_create_object(GLuint name, GLenum type)
{
/* function body */
}
- Put the function return type and qualifiers on one line and the
function name and parameters on the next, as seen above. This makes
it easy to use ``grep ^function_name dir/*`` to find function
definitions. Also, the opening brace goes on the next line by itself
(see above.)
- Function names follow various conventions depending on the type of
function:
::
glFooBar() - a public GL entry point (in glapi_dispatch.c)
_mesa_FooBar() - the internal immediate mode function
save_FooBar() - retained mode (display list) function in dlist.c
foo_bar() - a static (private) function
_mesa_foo_bar() - an internal non-static Mesa function
- Constants, macros and enum names are ``ALL_UPPERCASE``, with \_
between words.
- Mesa usually uses camel case for local variables (Ex:
``localVarname``) while gallium typically uses underscores (Ex:
``local_var_name``).
- Global variables are almost never used because Mesa should be
thread-safe.
- Booleans. Places that are not directly visible to the GL API should
prefer the use of ``bool``, ``true``, and ``false`` over
``GLboolean``, ``GL_TRUE``, and ``GL_FALSE``. In C code, this may
mean that ``#include <stdbool.h>`` needs to be added. The
``try_emit_*`` methods in ``src/mesa/program/ir_to_mesa.cpp`` and
``src/mesa/state_tracker/st_glsl_to_tgsi.cpp`` can serve as examples.

View File

@ -1,703 +0,0 @@
<!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>Conformance Testing</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Conformance Testing</h1>
<p>
The SGI OpenGL conformance tests verify correct operation of OpenGL
implementations. I, Brian Paul, have been given a copy of the tests
for testing Mesa. The tests are not publicly available.
</p>
<p>
This file has the latest results of testing Mesa with the OpenGL 1.2
conformance tests. Testing with the preliminary OpenGL 1.3 tests has
also been done. Mesa passes all the 1.3 tests.
</p>
<p>
The tests were run using the software X11 device driver on 24-bpp
and 16-bpp displays.
</p>
<p>
Mesa 4.0 and later pass all conformance tests at all path levels.
Note that this says nothing about the conformance of hardware drivers
based upon Mesa.
</p>
<pre>
COVERAGE TESTS
--------------
Test that all API functions accept the legal parameters and reject
illegal parameters. The result of each test is either pass or fail.
% covgl
OpenGL Coverage Test.
Version 1.2
covgl passed.
covgl passed at 1.1 level.
covgl passed at 1.2 level.
covgl passed for ARB_multitexture.
% covglu
OpenGL GLU Coverage Test.
Version 1.3
covglu passed.
covglu passed at 1.1 level.
% covglx
OpenGL X Coverage Test.
Version 1.1.1
covglx passed.
% primtest -v
Open GL Primitives Test.
Version 1.2
[lots of output deleted]
292159 Combinations.
primtest passed.
GL CONFORMANCE TEST
===================
Render test images, read them back, then test for expected results.
----------------------------------------------------------------------
% conform -v 2
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path inactive.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 1
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 1.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 2
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 2.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 3
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 3.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 4
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 4.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
GLX CONFORMANCE TEST
====================
% conformx -v 2
OpenGL X Conformance Test
Version 1.1.1
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path inactive.
Visual Report.
Display ID = 34. Direct Rendering.
Double Buffered.
RGBA (8, 8, 8, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
glReadPixels() test passed.
Font test passed.
Conformx passed.
</pre>
NOTE: conformx passes for all machine path levels (-p option).
</div>
</body>
</html>

675
docs/conform.rst Normal file
View File

@ -0,0 +1,675 @@
Conformance Testing
===================
The SGI OpenGL conformance tests verify correct operation of OpenGL
implementations. I, Brian Paul, have been given a copy of the tests for
testing Mesa. The tests are not publicly available.
This file has the latest results of testing Mesa with the OpenGL 1.2
conformance tests. Testing with the preliminary OpenGL 1.3 tests has
also been done. Mesa passes all the 1.3 tests.
The tests were run using the software X11 device driver on 24-bpp and
16-bpp displays.
Mesa 4.0 and later pass all conformance tests at all path levels. Note
that this says nothing about the conformance of hardware drivers based
upon Mesa.
::
COVERAGE TESTS
--------------
Test that all API functions accept the legal parameters and reject
illegal parameters. The result of each test is either pass or fail.
% covgl
OpenGL Coverage Test.
Version 1.2
covgl passed.
covgl passed at 1.1 level.
covgl passed at 1.2 level.
covgl passed for ARB_multitexture.
% covglu
OpenGL GLU Coverage Test.
Version 1.3
covglu passed.
covglu passed at 1.1 level.
% covglx
OpenGL X Coverage Test.
Version 1.1.1
covglx passed.
% primtest -v
Open GL Primitives Test.
Version 1.2
[lots of output deleted]
292159 Combinations.
primtest passed.
GL CONFORMANCE TEST
===================
Render test images, read them back, then test for expected results.
----------------------------------------------------------------------
% conform -v 2
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path inactive.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 1
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 1.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 2
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 2.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 3
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 3.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
----------------------------------------------------------------------
% conform -v 2 -p 4
OpenGL Conformance Test
Version 1.2
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path level = 4.
Visual Report.
Display ID = 35. Indirect Rendering.
Double Buffered.
RGBA (5, 6, 5, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
Must Pass test passed.
Divide By Zero test passed.
Viewport Clamp test passed.
Matrix Stack test passed.
Matrix Stack Mixing test passed.
Vertex Order test passed.
Transformations test passed.
Transformation Normal test passed.
Viewport Transformation test passed.
Buffer Clear test passed.
Buffer Corners test passed.
Buffer Color test passed.
Color Ramp test passed.
Mask test passed.
Buffer Invariance test passed.
Accumulation Buffer test passed.
Select test passed.
Feedback test passed.
Scissor test passed.
Alpha Plane Function test passed.
Stencil Plane Clear test passed.
Stencil Plane Corners test passed.
Stencil Plane Operation test passed.
Stencil Plane Function test passed.
Depth Buffer Clear test passed.
Depth Buffer Function test passed.
Blend test passed.
Dither test passed.
LogicOp Function test does not exist for an RGB visual.
DrawPixels test passed.
CopyPixels test passed.
Bitmap Rasterization test passed.
Point Rasterization test passed.
Anti-aliased Point test passed.
Line Rasterization test passed.
Line Stipple test passed.
Anti-aliased Line test passed.
Horizontal and Vertical Line test passed.
Triangle Rasterization test passed.
Triangle Tile test passed.
Triangle Stipple test passed.
Anti-aliased Triangles test passed.
Quad Rasterization test passed.
Polygon Face test passed.
Polygon Cull test passed.
Polygon Stipple test passed.
Polygon Edge test passed.
Ambient Material test passed.
Ambient Scene test passed.
Attenuation Position test passed.
Diffuse Light test passed.
Diffuse Material test passed.
Diffuse Material Normal test passed.
Diffuse Material Positioning test passed.
Emissive Material test passed.
Specular Exponent test passed.
Specular Exponent Normal test passed.
Specular Local Eye Half Angle test passed.
Specular Light test passed.
Specular Material test passed.
Specular Normal test passed.
Spot Positioning test passed.
Spot Exponent and Positioning test passed.
Spot Exponent and Direction test passed.
Fog Exponential test passed.
Fog Linear test passed.
Texture Decal test passed.
Texture Border test passed.
Mipmaps Selection test passed.
Mipmaps Interpolation test passed.
Display Lists test passed.
Evaluator test passed.
Evaluator Color test passed.
Texture Edge Clamp test passed.
Packed Pixels test passed.
Texture LOD test passed.
Rescale Normal test passed.
Color Table test passed.
Convolution test passed.
Convolution Border test passed.
Histogram test passed.
MinMax test passed.
MultiTexture test passed.
Conform passed.
GLX CONFORMANCE TEST
====================
% conformx -v 2
OpenGL X Conformance Test
Version 1.1.1
Setup Report.
Verbose level = 2.
Random number seed = 1.
Path inactive.
Visual Report.
Display ID = 34. Direct Rendering.
Double Buffered.
RGBA (8, 8, 8, 0).
Stencil (8).
Depth (16).
Accumulation (16, 16, 16, 16).
Epsilon Report.
zero error epsilon = 0.000122.
RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
Depth buffer error epsilon = 0.000137.
Stencil plane error epsilon = 0.00404.
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
Default State test passed.
glReadPixels() test passed.
Font test passed.
Conformx passed.
NOTE: conformx passes for all machine path levels (-p option).

View File

@ -1,108 +0,0 @@
<!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>Contents</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
<!--Override a few values from the style sheet: -->
<style type="text/css">
<!--
body {
background-color: #cccccc;
color: black;
}
h2 {
font-size: inherit;
font-weight: bold;
}
a:link {
color: #000;
}
a:visited {
color: #000;
}
-->
</style>
</head>
<body>
<h2>Documentation</h2>
<ul>
<li><a href="intro.html" target="_parent">Introduction</a>
<li><a href="index.html" target="_parent">News</a>
<li><a href="developers.html" target="_parent">Developers</a>
<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
<li><a href="license.html" target="_parent">License and Copyright</a>
<li><a href="faq.html" target="_parent">Frequently Asked Questions</a>
<li><a href="relnotes.html" target="_parent">Release Notes</a>
<li><a href="thanks.html" target="_parent">Acknowledgements</a>
<li><a href="conform.html" target="_parent">Conformance Testing</a>
</ul>
<h2>Download and Install</h2>
<ul>
<li><a href="download.html" target="_parent">Downloading and Unpacking</a>
<li><a href="install.html" target="_parent">Compiling and Installing</a>
<ul>
<li><a href="meson.html" target="_parent">Meson</a></li>
</ul>
</li>
<li><a href="precompiled.html" target="_parent">Precompiled Libraries</a>
</ul>
<h2>Need help?</h2>
<ul>
<li><a href="lists.html" target="_parent">Mailing Lists</a>
<li><a href="bugs.html" target="_parent">Report a bug</a>
<li><a href="webmaster.html" target="_parent">Webmaster</a>
<li><a href="https://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
</ul>
<h2>User Topics</h2>
<ul>
<li><a href="shading.html" target="_parent">Shading Language</a>
<li><a href="egl.html" target="_parent">EGL</a>
<li><a href="opengles.html" target="_parent">OpenGL ES</a>
<li><a href="envvars.html" target="_parent">Environment Variables</a>
<li><a href="osmesa.html" target="_parent">Off-screen Rendering</a>
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
<li><a href="perf.html" target="_parent">Performance Tips</a>
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
<li><a href="llvmpipe.html" target="_parent">Gallium LLVMpipe Driver</a>
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D Guest Driver</a>
<li><a href="postprocess.html" target="_parent">Gallium Post-processing</a>
<li><a href="application-issues.html" target="_parent">Application Issues</a>
<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
</ul>
<h2>Developer Topics</h2>
<ul>
<li><a href="repository.html" target="_parent">Source Code Repository</a>
<li><a href="sourcetree.html" target="_parent">Source Code Tree</a>
<li><a href="utilities.html" target="_parent">Utilities</a>
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
<li><a href="devinfo.html" target="_parent">Development Notes</a>
<li><a href="codingstyle.html" target="_parent">Coding Style</a>
<li><a href="submittingpatches.html" target="_parent">Submitting Patches</a>
<li><a href="releasing.html" target="_parent">Releasing Process</a>
<li><a href="release-calendar.html" target="_parent">Release Calendar</a>
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
</ul>
<h2>Links</h2>
<ul>
<li><a href="https://www.opengl.org" target="_parent">OpenGL Website</a>
<li><a href="https://dri.freedesktop.org" target="_parent">DRI Website</a>
<li><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
<li><a href="https://planet.freedesktop.org" target="_parent">Developer Blogs</a>
</ul>
<h2>Hosted by:</h2>
<dl>
<dd><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
</dl>
</body>
</html>

86
docs/contents.rst Normal file
View File

@ -0,0 +1,86 @@
.. toctree::
:maxdepth: 1
:caption: Documentation
:hidden:
intro
self
developers
systems
license
faq
relnotes
thanks
conform
.. toctree::
:maxdepth: 1
:caption: Download and Install
:hidden:
download
install
precompiled
.. toctree::
:maxdepth: 1
:caption: Need help?
:hidden:
lists
bugs
webmaster
Mesa/DRI Wiki <https://dri.freedesktop.org/>
.. toctree::
:maxdepth: 1
:caption: User Topics
:hidden:
shading
egl
opengles
envvars
osmesa
debugging
perf
extensions
llvmpipe
vmware-guest
postprocess
application-issues
viewperf
.. toctree::
:maxdepth: 1
:caption: Developer Topics
:hidden:
repository
sourcetree
utilities
helpwanted
devinfo
codingstyle
submittingpatches
releasing
release-calendar
sourcedocs
dispatch
.. toctree::
:maxdepth: 1
:caption: Links
:hidden:
OpenGL Website <https://www.opengl.org>
DRI Website <https://dri.freedesktop.org>
freedesktop.org <https://www.freedesktop.org>
Developer Blogs <https://planet.freedesktop.org>
.. toctree::
:maxdepth: 1
:caption: Hosted by:
:hidden:
freedesktop.org <https://planet.freedesktop.org>

View File

@ -1,43 +0,0 @@
<!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>Debugging Tips</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Debugging Tips</h1>
<p>
Normally Mesa (and OpenGL) records but does not notify the user of
errors. It is up to the application to call
<code>glGetError</code> to check for errors. Mesa supports an
environment variable, <code>MESA_DEBUG</code>, to help with debugging. If
<code>MESA_DEBUG</code> is defined, a message will be printed to stdout
whenever an error occurs.
</p>
<p>
More extensive error checking is done in DEBUG builds
(<code>--buildtype debug</code> for meson, <code>build=debug</code> for scons).
</p>
<p>
In your debugger you can set a breakpoint in <code>_mesa_error()</code> to trap
Mesa errors.
</p>
<p>
There is a display list printing/debugging facility. See the end of
<code>src/dlist.c</code> for details.
</p>
</div>
</body>
</html>

17
docs/debugging.rst Normal file
View File

@ -0,0 +1,17 @@
Debugging Tips
==============
Normally Mesa (and OpenGL) records but does not notify the user of
errors. It is up to the application to call ``glGetError`` to check for
errors. Mesa supports an environment variable, ``MESA_DEBUG``, to help
with debugging. If ``MESA_DEBUG`` is defined, a message will be printed
to stdout whenever an error occurs.
More extensive error checking is done in DEBUG builds
(``--buildtype debug`` for meson, ``build=debug`` for scons).
In your debugger you can set a breakpoint in ``_mesa_error()`` to trap
Mesa errors.
There is a display list printing/debugging facility. See the end of
``src/dlist.c`` for details.

View File

@ -1,58 +0,0 @@
<!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>Developers</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Developers</h1>
<p>
Both professional and volunteer developers contribute to Mesa.
</p>
<p>
<a href="https://www.vmware.com/">VMware</a>
employs several of the main Mesa developers including Brian Paul
and Keith Whitwell.
</p>
<p>
In the past, Tungsten Graphics contracts implemented many Mesa features
including:
</p>
<ul>
<li>DRI drivers for Intel i965, i945, i915 and other chips
<li>Advanced memory manager and framebuffer object support
<li>Shading language compiler and OpenGL 2.0 support
<li>MiniGLX environment
</ul>
<p>
Other companies including
<a href="https://01.org/linuxgraphics">Intel</a>
and RedHat also actively contribute to the project.
Intel has recently contributed the new GLSL compiler in Mesa 7.9.
</p>
<p>
<a href="https://www.lunarg.com/">LunarG</a> can be contacted
for custom Mesa / 3D graphics development.
</p>
<p>
Volunteers have made significant contributions to all parts of Mesa, including
complete device drivers.
</p>
</div>
</body>
</html>

25
docs/developers.rst Normal file
View File

@ -0,0 +1,25 @@
Developers
==========
Both professional and volunteer developers contribute to Mesa.
`VMware <https://www.vmware.com/>`__ employs several of the main Mesa
developers including Brian Paul and Keith Whitwell.
In the past, Tungsten Graphics contracts implemented many Mesa features
including:
- DRI drivers for Intel i965, i945, i915 and other chips
- Advanced memory manager and framebuffer object support
- Shading language compiler and OpenGL 2.0 support
- MiniGLX environment
Other companies including `Intel <https://01.org/linuxgraphics>`__ and
RedHat also actively contribute to the project. Intel has recently
contributed the new GLSL compiler in Mesa 7.9.
`LunarG <https://www.lunarg.com/>`__ can be contacted for custom Mesa /
3D graphics development.
Volunteers have made significant contributions to all parts of Mesa,
including complete device drivers.

View File

@ -1,82 +0,0 @@
<!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>Development Notes</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Development Notes</h1>
<ul>
<li><a href="#extensions">Adding Extensions</a>
</ul>
<h2 id="extensions">Adding Extensions</h2>
<p>
To add a new GL extension to Mesa you have to do at least the following.
</p>
<ul>
<li>
If <code>glext.h</code> doesn't define the extension, edit
<code>include/GL/gl.h</code> and add code like this:
<pre>
#ifndef GL_EXT_the_extension_name
#define GL_EXT_the_extension_name 1
/* declare the new enum tokens */
/* prototype the new functions */
/* TYPEDEFS for the new functions */
#endif
</pre>
</li>
<li>
In the <code>src/mapi/glapi/gen/</code> directory, add the new extension
functions and enums to the <code>gl_API.xml</code> file.
Then, a bunch of source files must be regenerated by executing the
corresponding Python scripts.
</li>
<li>
Add a new entry to the <code>gl_extensions</code> struct in
<code>mtypes.h</code> if the extension requires driver capabilities not
already exposed by another extension.
</li>
<li>
Add a new entry to the <code>src/mesa/main/extensions_table.h</code> file.
</li>
<li>
From this point, the best way to proceed is to find another extension,
similar to the new one, that's already implemented in Mesa and use it
as an example.
</li>
<li>
If the new extension adds new GL state, the functions in
<code>get.c</code>, <code>enable.c</code> and <code>attrib.c</code>
will most likely require new code.
</li>
<li>
To determine if the new extension is active in the current context,
use the auto-generated <code>_mesa_has_##name_str()</code> function
defined in <code>src/mesa/main/extensions.h</code>.
</li>
<li>
The dispatch tests <code>check_table.cpp</code> and
<code>dispatch_sanity.cpp</code> should be updated with details about
the new extensions functions. These tests are run using
<code>meson test</code>.
</li>
</ul>
</div>
</body>
</html>

44
docs/devinfo.rst Normal file
View File

@ -0,0 +1,44 @@
Development Notes
=================
- `Adding Extensions <#extensions>`__
.. _extensions:
Adding Extensions
-----------------
To add a new GL extension to Mesa you have to do at least the following.
- If ``glext.h`` doesn't define the extension, edit ``include/GL/gl.h``
and add code like this:
::
#ifndef GL_EXT_the_extension_name
#define GL_EXT_the_extension_name 1
/* declare the new enum tokens */
/* prototype the new functions */
/* TYPEDEFS for the new functions */
#endif
- In the ``src/mapi/glapi/gen/`` directory, add the new extension
functions and enums to the ``gl_API.xml`` file. Then, a bunch of
source files must be regenerated by executing the corresponding
Python scripts.
- Add a new entry to the ``gl_extensions`` struct in ``mtypes.h`` if
the extension requires driver capabilities not already exposed by
another extension.
- Add a new entry to the ``src/mesa/main/extensions_table.h`` file.
- From this point, the best way to proceed is to find another
extension, similar to the new one, that's already implemented in Mesa
and use it as an example.
- If the new extension adds new GL state, the functions in ``get.c``,
``enable.c`` and ``attrib.c`` will most likely require new code.
- To determine if the new extension is active in the current context,
use the auto-generated ``_mesa_has_##name_str()`` function defined in
``src/mesa/main/extensions.h``.
- The dispatch tests ``check_table.cpp`` and ``dispatch_sanity.cpp``
should be updated with details about the new extensions functions.
These tests are run using ``meson test``.

View File

@ -1,273 +0,0 @@
<!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>GL Dispatch</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>GL Dispatch</h1>
<p>Several factors combine to make efficient dispatch of OpenGL functions
fairly complicated. This document attempts to explain some of the issues
and introduce the reader to Mesa's implementation. Readers already familiar
with the issues around GL dispatch can safely skip ahead to the <a
href="#overview">overview of Mesa's implementation</a>.</p>
<h2>1. Complexity of GL Dispatch</h2>
<p>Every GL application has at least one object called a GL <em>context</em>.
This object, which is an implicit parameter to every GL function, stores all
of the GL related state for the application. Every texture, every buffer
object, every enable, and much, much more is stored in the context. Since
an application can have more than one context, the context to be used is
selected by a window-system dependent function such as
<code>glXMakeContextCurrent</code>.</p>
<p>In environments that implement OpenGL with X-Windows using GLX, every GL
function, including the pointers returned by <code>glXGetProcAddress</code>, are
<em>context independent</em>. This means that no matter what context is
currently active, the same <code>glVertex3fv</code> function is used.</p>
<p>This creates the first bit of dispatch complexity. An application can
have two GL contexts. One context is a direct rendering context where
function calls are routed directly to a driver loaded within the
application's address space. The other context is an indirect rendering
context where function calls are converted to GLX protocol and sent to a
server. The same <code>glVertex3fv</code> has to do the right thing depending
on which context is current.</p>
<p>Highly optimized drivers or GLX protocol implementations may want to
change the behavior of GL functions depending on current state. For
example, <code>glFogCoordf</code> may operate differently depending on whether
or not fog is enabled.</p>
<p>In multi-threaded environments, it is possible for each thread to have a
different GL context current. This means that poor old <code>glVertex3fv</code>
has to know which GL context is current in the thread where it is being
called.</p>
<h2 id="overview">2. Overview of Mesa's Implementation</h2>
<p>Mesa uses two per-thread pointers. The first pointer stores the address
of the context current in the thread, and the second pointer stores the
address of the <em>dispatch table</em> associated with that context. The
dispatch table stores pointers to functions that actually implement
specific GL functions. Each time a new context is made current in a thread,
these pointers a updated.</p>
<p>The implementation of functions such as <code>glVertex3fv</code> becomes
conceptually simple:</p>
<ul>
<li>Fetch the current dispatch table pointer.</li>
<li>Fetch the pointer to the real <code>glVertex3fv</code> function from the
table.</li>
<li>Call the real function.</li>
</ul>
<p>This can be implemented in just a few lines of C code. The file
<code>src/mesa/glapi/glapitemp.h</code> contains code very similar to this.</p>
<figure>
<pre>
void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
{
const struct _glapi_table * const dispatch = GET_DISPATCH();
(*dispatch-&gt;Vertex3f)(x, y, z);
}
</pre>
<figcaption>Sample dispatch function</figcaption>
</figure>
<p>The problem with this simple implementation is the large amount of
overhead that it adds to every GL function call.</p>
<p>In a multithreaded environment, a naive implementation of
<code>GET_DISPATCH</code> involves a call to <code>pthread_getspecific</code> or a
similar function. Mesa provides a wrapper function called
<code>_glapi_get_dispatch</code> that is used by default.</p>
<h2>3. Optimizations</h2>
<p>A number of optimizations have been made over the years to diminish the
performance hit imposed by GL dispatch. This section describes these
optimizations. The benefits of each optimization and the situations where
each can or cannot be used are listed.</p>
<h3>3.1. Dual dispatch table pointers</h3>
<p>The vast majority of OpenGL applications use the API in a single threaded
manner. That is, the application has only one thread that makes calls into
the GL. In these cases, not only do the calls to
<code>pthread_getspecific</code> hurt performance, but they are completely
unnecessary! It is possible to detect this common case and avoid these
calls.</p>
<p>Each time a new dispatch table is set, Mesa examines and records the ID
of the executing thread. If the same thread ID is always seen, Mesa knows
that the application is, from OpenGL's point of view, single threaded.</p>
<p>As long as an application is single threaded, Mesa stores a pointer to
the dispatch table in a global variable called <code>_glapi_Dispatch</code>.
The pointer is also stored in a per-thread location via
<code>pthread_setspecific</code>. When Mesa detects that an application has
become multithreaded, <code>NULL</code> is stored in <code>_glapi_Dispatch</code>.</p>
<p>Using this simple mechanism the dispatch functions can detect the
multithreaded case by comparing <code>_glapi_Dispatch</code> to <code>NULL</code>.
The resulting implementation of <code>GET_DISPATCH</code> is slightly more
complex, but it avoids the expensive <code>pthread_getspecific</code> call in
the common case.</p>
<figure>
<pre>
#define GET_DISPATCH() \
(_glapi_Dispatch != NULL) \
? _glapi_Dispatch : pthread_getspecific(&amp;_glapi_Dispatch_key)
</pre>
<figcaption>Improved <code>GET_DISPATCH</code> Implementation</figcaption>
</figure>
<h3>3.2. ELF TLS</h3>
<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
of per-thread, global storage. Variables can be put in this area using some
extensions to GCC. By storing the dispatch table pointer in this area, the
expensive call to <code>pthread_getspecific</code> and the test of
<code>_glapi_Dispatch</code> can be avoided.</p>
<p>The dispatch table pointer is stored in a new variable called
<code>_glapi_tls_Dispatch</code>. A new variable name is used so that a single
libGL can implement both interfaces. This allows the libGL to operate with
direct rendering drivers that use either interface. Once the pointer is
properly declared, <code>GET_DISPACH</code> becomes a simple variable
reference.</p>
<figure>
<pre>
extern __thread struct _glapi_table *_glapi_tls_Dispatch
__attribute__((tls_model("initial-exec")));
#define GET_DISPATCH() _glapi_tls_Dispatch
</pre>
<figcaption>TLS <code>GET_DISPATCH</code> Implementation</figcaption>
</figure>
<p>Use of this path is controlled by the preprocessor define
<code>USE_ELF_TLS</code>. Any platform capable of using ELF TLS should use this
as the default dispatch method.</p>
<h3>3.3. Assembly Language Dispatch Stubs</h3>
<p>Many platforms has difficulty properly optimizing the tail-call in the
dispatch stubs. Platforms like x86 that pass parameters on the stack seem
to have even more difficulty optimizing these routines. All of the dispatch
routines are very short, and it is trivial to create optimal assembly
language versions. The amount of optimization provided by using assembly
stubs varies from platform to platform and application to application.
However, by using the assembly stubs, many platforms can use an additional
space optimization (see <a href="#fixedsize">below</a>).</p>
<p>The biggest hurdle to creating assembly stubs is handling the various
ways that the dispatch table pointer can be accessed. There are four
different methods that can be used:</p>
<ol>
<li>Using <code>_glapi_Dispatch</code> directly in builds for non-multithreaded
environments.</li>
<li>Using <code>_glapi_Dispatch</code> and <code>_glapi_get_dispatch</code> in
multithreaded environments.</li>
<li>Using <code>_glapi_Dispatch</code> and <code>pthread_getspecific</code> in
multithreaded environments.</li>
<li>Using <code>_glapi_tls_Dispatch</code> directly in TLS enabled
multithreaded environments.</li>
</ol>
<p>People wishing to implement assembly stubs for new platforms should focus
on #4 if the new platform supports TLS. Otherwise, implement #2 followed by
#3. Environments that do not support multithreading are uncommon and not
terribly relevant.</p>
<p>Selection of the dispatch table pointer access method is controlled by a
few preprocessor defines.</p>
<ul>
<li>If <code>USE_ELF_TLS</code> is defined, method #3 is used.</li>
<li>If <code>HAVE_PTHREAD</code> is defined, method #2 is used.</li>
<li>If none of the preceding are defined, method #1 is used.</li>
</ul>
<p>Two different techniques are used to handle the various different cases.
On x86 and SPARC, a macro called <code>GL_STUB</code> is used. In the preamble
of the assembly source file different implementations of the macro are
selected based on the defined preprocessor variables. The assembly code
then consists of a series of invocations of the macros such as:
<figure>
<pre>
GL_STUB(Color3fv, _gloffset_Color3fv)
</pre>
<figcaption>SPARC Assembly Implementation of <code>glColor3fv</code></figcaption>
</figure>
<p>The benefit of this technique is that changes to the calling pattern
(i.e., addition of a new dispatch table pointer access method) require fewer
changed lines in the assembly code.</p>
<p>However, this technique can only be used on platforms where the function
implementation does not change based on the parameters passed to the
function. For example, since x86 passes all parameters on the stack, no
additional code is needed to save and restore function parameters around a
call to <code>pthread_getspecific</code>. Since x86-64 passes parameters in
registers, varying amounts of code needs to be inserted around the call to
<code>pthread_getspecific</code> to save and restore the GL function's
parameters.</p>
<p>The other technique, used by platforms like x86-64 that cannot use the
first technique, is to insert <code>#ifdef</code> within the assembly
implementation of each function. This makes the assembly file considerably
larger (e.g., 29,332 lines for <code>glapi_x86-64.S</code> versus 1,155 lines for
<code>glapi_x86.S</code>) and causes simple changes to the function
implementation to generate many lines of diffs. Since the assembly files
are typically generated by scripts (see <a href="#autogen">below</a>), this
isn't a significant problem.</p>
<p>Once a new assembly file is created, it must be inserted in the build
system. There are two steps to this. The file must first be added to
<code>src/mesa/sources</code>. That gets the file built and linked. The second
step is to add the correct <code>#ifdef</code> magic to
<code>src/mesa/glapi/glapi_dispatch.c</code> to prevent the C version of the
dispatch functions from being built.</p>
<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
<p>To implement <code>glXGetProcAddress</code>, Mesa stores a table that
associates function names with pointers to those functions. This table is
stored in <code>src/mesa/glapi/glprocs.h</code>. For different reasons on
different platforms, storing all of those pointers is inefficient. On most
platforms, including all known platforms that support TLS, we can avoid this
added overhead.</p>
<p>If the assembly stubs are all the same size, the pointer need not be
stored for every function. The location of the function can instead be
calculated by multiplying the size of the dispatch stub by the offset of the
function in the table. This value is then added to the address of the first
dispatch stub.</p>
<p>This path is activated by adding the correct <code>#ifdef</code> magic to
<code>src/mesa/glapi/glapi.c</code> just before <code>glprocs.h</code> is
included.</p>
</div>
</body>
</html>

255
docs/dispatch.rst Normal file
View File

@ -0,0 +1,255 @@
GL Dispatch
===========
Several factors combine to make efficient dispatch of OpenGL functions
fairly complicated. This document attempts to explain some of the issues
and introduce the reader to Mesa's implementation. Readers already
familiar with the issues around GL dispatch can safely skip ahead to the
`overview of Mesa's implementation <#overview>`__.
1. Complexity of GL Dispatch
----------------------------
Every GL application has at least one object called a GL *context*. This
object, which is an implicit parameter to every GL function, stores all
of the GL related state for the application. Every texture, every buffer
object, every enable, and much, much more is stored in the context.
Since an application can have more than one context, the context to be
used is selected by a window-system dependent function such as
``glXMakeContextCurrent``.
In environments that implement OpenGL with X-Windows using GLX, every GL
function, including the pointers returned by ``glXGetProcAddress``, are
*context independent*. This means that no matter what context is
currently active, the same ``glVertex3fv`` function is used.
This creates the first bit of dispatch complexity. An application can
have two GL contexts. One context is a direct rendering context where
function calls are routed directly to a driver loaded within the
application's address space. The other context is an indirect rendering
context where function calls are converted to GLX protocol and sent to a
server. The same ``glVertex3fv`` has to do the right thing depending on
which context is current.
Highly optimized drivers or GLX protocol implementations may want to
change the behavior of GL functions depending on current state. For
example, ``glFogCoordf`` may operate differently depending on whether or
not fog is enabled.
In multi-threaded environments, it is possible for each thread to have a
different GL context current. This means that poor old ``glVertex3fv``
has to know which GL context is current in the thread where it is being
called.
.. _overview:
2. Overview of Mesa's Implementation
------------------------------------
Mesa uses two per-thread pointers. The first pointer stores the address
of the context current in the thread, and the second pointer stores the
address of the *dispatch table* associated with that context. The
dispatch table stores pointers to functions that actually implement
specific GL functions. Each time a new context is made current in a
thread, these pointers a updated.
The implementation of functions such as ``glVertex3fv`` becomes
conceptually simple:
- Fetch the current dispatch table pointer.
- Fetch the pointer to the real ``glVertex3fv`` function from the
table.
- Call the real function.
This can be implemented in just a few lines of C code. The file
``src/mesa/glapi/glapitemp.h`` contains code very similar to this.
::
void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
{
const struct _glapi_table * const dispatch = GET_DISPATCH();
(*dispatch->Vertex3f)(x, y, z);
}
Sample dispatch function
The problem with this simple implementation is the large amount of
overhead that it adds to every GL function call.
In a multithreaded environment, a naive implementation of
``GET_DISPATCH`` involves a call to ``pthread_getspecific`` or a similar
function. Mesa provides a wrapper function called
``_glapi_get_dispatch`` that is used by default.
3. Optimizations
----------------
A number of optimizations have been made over the years to diminish the
performance hit imposed by GL dispatch. This section describes these
optimizations. The benefits of each optimization and the situations
where each can or cannot be used are listed.
3.1. Dual dispatch table pointers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The vast majority of OpenGL applications use the API in a single
threaded manner. That is, the application has only one thread that makes
calls into the GL. In these cases, not only do the calls to
``pthread_getspecific`` hurt performance, but they are completely
unnecessary! It is possible to detect this common case and avoid these
calls.
Each time a new dispatch table is set, Mesa examines and records the ID
of the executing thread. If the same thread ID is always seen, Mesa
knows that the application is, from OpenGL's point of view, single
threaded.
As long as an application is single threaded, Mesa stores a pointer to
the dispatch table in a global variable called ``_glapi_Dispatch``. The
pointer is also stored in a per-thread location via
``pthread_setspecific``. When Mesa detects that an application has
become multithreaded, ``NULL`` is stored in ``_glapi_Dispatch``.
Using this simple mechanism the dispatch functions can detect the
multithreaded case by comparing ``_glapi_Dispatch`` to ``NULL``. The
resulting implementation of ``GET_DISPATCH`` is slightly more complex,
but it avoids the expensive ``pthread_getspecific`` call in the common
case.
::
#define GET_DISPATCH() \
(_glapi_Dispatch != NULL) \
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
Improved ``GET_DISPATCH`` Implementation
3.2. ELF TLS
~~~~~~~~~~~~
Starting with the 2.4.20 Linux kernel, each thread is allocated an area
of per-thread, global storage. Variables can be put in this area using
some extensions to GCC. By storing the dispatch table pointer in this
area, the expensive call to ``pthread_getspecific`` and the test of
``_glapi_Dispatch`` can be avoided.
The dispatch table pointer is stored in a new variable called
``_glapi_tls_Dispatch``. A new variable name is used so that a single
libGL can implement both interfaces. This allows the libGL to operate
with direct rendering drivers that use either interface. Once the
pointer is properly declared, ``GET_DISPACH`` becomes a simple variable
reference.
::
extern __thread struct _glapi_table *_glapi_tls_Dispatch
__attribute__((tls_model("initial-exec")));
#define GET_DISPATCH() _glapi_tls_Dispatch
TLS ``GET_DISPATCH`` Implementation
Use of this path is controlled by the preprocessor define
``USE_ELF_TLS``. Any platform capable of using ELF TLS should use this
as the default dispatch method.
3.3. Assembly Language Dispatch Stubs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many platforms has difficulty properly optimizing the tail-call in the
dispatch stubs. Platforms like x86 that pass parameters on the stack
seem to have even more difficulty optimizing these routines. All of the
dispatch routines are very short, and it is trivial to create optimal
assembly language versions. The amount of optimization provided by using
assembly stubs varies from platform to platform and application to
application. However, by using the assembly stubs, many platforms can
use an additional space optimization (see `below <#fixedsize>`__).
The biggest hurdle to creating assembly stubs is handling the various
ways that the dispatch table pointer can be accessed. There are four
different methods that can be used:
#. Using ``_glapi_Dispatch`` directly in builds for non-multithreaded
environments.
#. Using ``_glapi_Dispatch`` and ``_glapi_get_dispatch`` in
multithreaded environments.
#. Using ``_glapi_Dispatch`` and ``pthread_getspecific`` in
multithreaded environments.
#. Using ``_glapi_tls_Dispatch`` directly in TLS enabled multithreaded
environments.
People wishing to implement assembly stubs for new platforms should
focus on #4 if the new platform supports TLS. Otherwise, implement #2
followed by #3. Environments that do not support multithreading are
uncommon and not terribly relevant.
Selection of the dispatch table pointer access method is controlled by a
few preprocessor defines.
- If ``USE_ELF_TLS`` is defined, method #3 is used.
- If ``HAVE_PTHREAD`` is defined, method #2 is used.
- If none of the preceding are defined, method #1 is used.
Two different techniques are used to handle the various different cases.
On x86 and SPARC, a macro called ``GL_STUB`` is used. In the preamble of
the assembly source file different implementations of the macro are
selected based on the defined preprocessor variables. The assembly code
then consists of a series of invocations of the macros such as:
::
GL_STUB(Color3fv, _gloffset_Color3fv)
SPARC Assembly Implementation of ``glColor3fv``
The benefit of this technique is that changes to the calling pattern
(i.e., addition of a new dispatch table pointer access method) require
fewer changed lines in the assembly code.
However, this technique can only be used on platforms where the function
implementation does not change based on the parameters passed to the
function. For example, since x86 passes all parameters on the stack, no
additional code is needed to save and restore function parameters around
a call to ``pthread_getspecific``. Since x86-64 passes parameters in
registers, varying amounts of code needs to be inserted around the call
to ``pthread_getspecific`` to save and restore the GL function's
parameters.
The other technique, used by platforms like x86-64 that cannot use the
first technique, is to insert ``#ifdef`` within the assembly
implementation of each function. This makes the assembly file
considerably larger (e.g., 29,332 lines for ``glapi_x86-64.S`` versus
1,155 lines for ``glapi_x86.S``) and causes simple changes to the
function implementation to generate many lines of diffs. Since the
assembly files are typically generated by scripts (see
`below <#autogen>`__), this isn't a significant problem.
Once a new assembly file is created, it must be inserted in the build
system. There are two steps to this. The file must first be added to
``src/mesa/sources``. That gets the file built and linked. The second
step is to add the correct ``#ifdef`` magic to
``src/mesa/glapi/glapi_dispatch.c`` to prevent the C version of the
dispatch functions from being built.
.. _fixedsize:
3.4. Fixed-Length Dispatch Stubs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To implement ``glXGetProcAddress``, Mesa stores a table that associates
function names with pointers to those functions. This table is stored in
``src/mesa/glapi/glprocs.h``. For different reasons on different
platforms, storing all of those pointers is inefficient. On most
platforms, including all known platforms that support TLS, we can avoid
this added overhead.
If the assembly stubs are all the same size, the pointer need not be
stored for every function. The location of the function can instead be
calculated by multiplying the size of the dispatch stub by the offset of
the function in the table. This value is then added to the address of
the first dispatch stub.
This path is activated by adding the correct ``#ifdef`` magic to
``src/mesa/glapi/glapi.c`` just before ``glprocs.h`` is included.

View File

@ -1,98 +0,0 @@
<!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>Downloading and Unpacking</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Downloading and Unpacking</h1>
<h2>Downloading</h2>
<p>
You can download the released versions of Mesa via
<a href="https://mesa.freedesktop.org/archive/">HTTPS</a>
or
<a href="ftp://ftp.freedesktop.org/pub/mesa/">FTP</a>.
</p>
<p>
Starting with the first release of 2017, Mesa's version scheme is
year-based. Filenames are in the form <code>mesa-Y.N.P.tar.gz</code>, where
<code>Y</code> is the year (two digits), <code>N</code> is an incremental number
(starting at 0) and <code>P</code> is the patch number (0 for the first
release, 1 for the first patch after that).
</p>
<p>
When a new release is coming, release candidates (betas) may be found
in the same directory, and are recognisable by the
<code>mesa-Y.N.P-<b>rc</b>X.tar.gz</code> filename.
</p>
<h2>Unpacking</h2>
<p>
Mesa releases are available in two formats: <code>.tar.xz</code> and <code>.tar.gz</code>.
</p>
<p>
To unpack the tarball:
</p>
<pre>
tar xf mesa-Y.N.P.tar.xz
</pre>
<p>or</p>
<pre>
tar xf mesa-Y.N.P.tar.gz
</pre>
<h2>Contents</h2>
<p>
Proceed to the <a href="install.html">compilation and installation
instructions</a>.
</p>
<h2>Demos, GLUT, and GLU</h2>
<p>
A package of SGI's GLU library is available
<a href="ftp://ftp.freedesktop.org/pub/mesa/glu/">here</a>
</p>
<p>
A package of Mark Kilgard's GLUT library is available
<a href="ftp://ftp.freedesktop.org/pub/mesa/glut/">here</a>
</p>
<p>
The Mesa demos collection is available
<a href="ftp://ftp.freedesktop.org/pub/mesa/demos/">here</a>
</p>
<p>
In the past, GLUT, GLU and the Mesa demos were released in conjunction with
Mesa releases. But since GLUT, GLU and the demos change infrequently, they
were split off into their own git repositories:
<a href="https://gitlab.freedesktop.org/mesa/glut">GLUT</a>,
<a href="https://gitlab.freedesktop.org/mesa/glu">GLU</a> and
<a href="https://gitlab.freedesktop.org/mesa/demos">Demos</a>,
</p>
</div>
</body>
</html>

61
docs/download.rst Normal file
View File

@ -0,0 +1,61 @@
Downloading and Unpacking
=========================
Downloading
-----------
You can download the released versions of Mesa via
`HTTPS <https://mesa.freedesktop.org/archive/>`__ or
`FTP <ftp://ftp.freedesktop.org/pub/mesa/>`__.
Starting with the first release of 2017, Mesa's version scheme is
year-based. Filenames are in the form ``mesa-Y.N.P.tar.gz``, where ``Y``
is the year (two digits), ``N`` is an incremental number (starting at 0)
and ``P`` is the patch number (0 for the first release, 1 for the first
patch after that).
When a new release is coming, release candidates (betas) may be found in
the same directory, and are recognisable by the
``mesa-Y.N.P-rcX.tar.gz`` filename.
Unpacking
---------
Mesa releases are available in two formats: ``.tar.xz`` and ``.tar.gz``.
To unpack the tarball:
::
tar xf mesa-Y.N.P.tar.xz
or
::
tar xf mesa-Y.N.P.tar.gz
Contents
--------
Proceed to the `compilation and installation
instructions <install.html>`__.
Demos, GLUT, and GLU
--------------------
A package of SGI's GLU library is available
`here <ftp://ftp.freedesktop.org/pub/mesa/glu/>`__
A package of Mark Kilgard's GLUT library is available
`here <ftp://ftp.freedesktop.org/pub/mesa/glut/>`__
The Mesa demos collection is available
`here <ftp://ftp.freedesktop.org/pub/mesa/demos/>`__
In the past, GLUT, GLU and the Mesa demos were released in conjunction
with Mesa releases. But since GLUT, GLU and the demos change
infrequently, they were split off into their own git repositories:
`GLUT <https://gitlab.freedesktop.org/mesa/glut>`__,
`GLU <https://gitlab.freedesktop.org/mesa/glu>`__ and
`Demos <https://gitlab.freedesktop.org/mesa/demos>`__,

View File

@ -1,252 +0,0 @@
<!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>EGL</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>EGL</h1>
<p>The current version of EGL in Mesa implements EGL 1.4. More information
about EGL can be found at
<a href="https://www.khronos.org/egl/">
https://www.khronos.org/egl/</a>.</p>
<p>The Mesa's implementation of EGL uses a driver architecture. The main
library (<code>libEGL</code>) is window system neutral. It provides the EGL
API entry points and helper functions for use by the drivers. Drivers are
dynamically loaded by the main library and most of the EGL API calls are
directly dispatched to the drivers.</p>
<p>The driver in use decides the window system to support.</p>
<h2>Build EGL</h2>
<ol>
<li>
<p>Configure your build with the desired client APIs and enable
the driver for your hardware. For example:</p>
<pre>
$ meson configure \
-D egl=true \
-D gles1=true \
-D gles2=true \
-D dri-drivers=... \
-D gallium-drivers=...
</pre>
<p>The main library and OpenGL is enabled by default. The first two options
above enables <a href="opengles.html">OpenGL ES 1.x and 2.x</a>. The last two
options enables the listed classic and Gallium drivers respectively.</p>
</li>
<li>Build and install Mesa as usual.</li>
</ol>
<p>In the given example, it will build and install <code>libEGL</code>,
<code>libGL</code>, <code>libGLESv1_CM</code>, <code>libGLESv2</code>, and one
or more EGL drivers.</p>
<h3>Configure Options</h3>
<p>There are several options that control the build of EGL at configuration
time</p>
<dl>
<dt><code>-D egl=true</code></dt>
<dd>
<p>By default, EGL is enabled. When disabled, the main library and the drivers
will not be built.</p>
</dd>
<dt><code>-D platforms=...</code></dt>
<dd>
<p>List the platforms (window systems) to support. Its argument is a comma
separated string such as <code>-D platforms=x11,drm</code>. It decides
the platforms a driver may support. The first listed platform is also used by
the main library to decide the native platform.</p>
<p>The available platforms are <code>x11</code>, <code>drm</code>,
<code>wayland</code>, <code>surfaceless</code>, <code>android</code>,
and <code>haiku</code>.
The <code>android</code> platform can either be built as a system
component, part of AOSP, using <code>Android.mk</code> files, or
cross-compiled using appropriate options.
Unless for special needs, the build system should
select the right platforms automatically.</p>
</dd>
<dt><code>-D gles1=true</code> and <code>-D gles2=true</code></dt>
<dd>
<p>These options enable OpenGL ES support in OpenGL. The result is one big
internal library that supports multiple APIs.</p>
</dd>
<dt><code>-D shared-glapi=true</code></dt>
<dd>
<p>By default, <code>libGL</code> has its own copy of <code>libglapi</code>.
This options makes <code>libGL</code> use the shared <code>libglapi</code>. This
is required if applications mix OpenGL and OpenGL ES.</p>
</dd>
</dl>
<h2>Use EGL</h2>
<h3>Demos</h3>
<p>There are demos for the client APIs supported by EGL. They can be found in
mesa/demos repository.</p>
<h3>Environment Variables</h3>
<p>There are several environment variables that control the behavior of EGL at
runtime</p>
<dl>
<dt><code>EGL_PLATFORM</code></dt>
<dd>
<p>This variable specifies the native platform. The valid values are the same
as those for <code>-D platforms=...</code>. When the variable is not set,
the main library uses the first platform listed in
<code>-D platforms=...</code> as the native platform.</p>
<p>Extensions like <code>EGL_MESA_drm_display</code> define new functions to
create displays for non-native platforms. These extensions are usually used by
applications that support non-native platforms. Setting this variable is
probably required only for some of the demos found in mesa/demo repository.</p>
</dd>
<dt><code>EGL_LOG_LEVEL</code></dt>
<dd>
<p>This changes the log level of the main library and the drivers. The valid
values are: <code>debug</code>, <code>info</code>, <code>warning</code>, and
<code>fatal</code>.</p>
</dd>
</dl>
<h2>EGL Drivers</h2>
<dl>
<dt><code>egl_dri2</code></dt>
<dd>
<p>This driver supports both <code>x11</code> and <code>drm</code> platforms.
It functions as a DRI driver loader. For <code>x11</code> support, it talks to
the X server directly using (XCB-)DRI2 protocol.</p>
<p>This driver can share DRI drivers with <code>libGL</code>.</p>
</dd>
</dl>
<h2>Packaging</h2>
<p>The ABI between the main library and its drivers are not stable. Nor is
there a plan to stabilize it at the moment.</p>
<h2>Developers</h2>
<p>The sources of the main library and drivers can be found at
<code>src/egl/</code>.</p>
<h3>Lifetime of Display Resources</h3>
<p>Contexts and surfaces are examples of display resources. They might live
longer than the display that creates them.</p>
<p>In EGL, when a display is terminated through <code>eglTerminate</code>, all
display resources should be destroyed. Similarly, when a thread is released
through <code>eglReleaseThread</code>, all current display resources should be
released. Another way to destroy or release resources is through functions
such as <code>eglDestroySurface</code> or <code>eglMakeCurrent</code>.</p>
<p>When a resource that is current to some thread is destroyed, the resource
should not be destroyed immediately. EGL requires the resource to live until
it is no longer current. A driver usually calls
<code>eglIs&lt;Resource&gt;Bound</code> to check if a resource is bound
(current) to any thread in the destroy callbacks. If it is still bound, the
resource is not destroyed.</p>
<p>The main library will mark destroyed current resources as unlinked. In a
driver's <code>MakeCurrent</code> callback,
<code>eglIs&lt;Resource&gt;Linked</code> can then be called to check if a newly
released resource is linked to a display. If it is not, the last reference to
the resource is removed and the driver should destroy the resource. But it
should be careful here because <code>MakeCurrent</code> might be called with an
uninitialized display.</p>
<p>This is the only mechanism provided by the main library to help manage the
resources. The drivers are responsible to the correct behavior as defined by
EGL.</p>
<h3><code>EGL_RENDER_BUFFER</code></h3>
<p>In EGL, the color buffer a context should try to render to is decided by the
binding surface. It should try to render to the front buffer if the binding
surface has <code>EGL_RENDER_BUFFER</code> set to
<code>EGL_SINGLE_BUFFER</code>; If the same context is later bound to a
surface with <code>EGL_RENDER_BUFFER</code> set to
<code>EGL_BACK_BUFFER</code>, the context should try to render to the back
buffer. However, the context is allowed to make the final decision as to which
color buffer it wants to or is able to render to.</p>
<p>For pbuffer surfaces, the render buffer is always
<code>EGL_BACK_BUFFER</code>. And for pixmap surfaces, the render buffer is
always <code>EGL_SINGLE_BUFFER</code>. Unlike window surfaces, EGL spec
requires their <code>EGL_RENDER_BUFFER</code> values to be honored. As a
result, a driver should never set <code>EGL_PIXMAP_BIT</code> or
<code>EGL_PBUFFER_BIT</code> bits of a config if the contexts created with the
config won't be able to honor the <code>EGL_RENDER_BUFFER</code> of pixmap or
pbuffer surfaces.</p>
<p>It should also be noted that pixmap and pbuffer surfaces are assumed to be
single-buffered, in that <code>eglSwapBuffers</code> has no effect on them. It
is desirable that a driver allocates a private color buffer for each pbuffer
surface created. If the window system the driver supports has native pbuffers,
or if the native pixmaps have more than one color buffers, the driver should
carefully attach the native color buffers to the EGL surfaces, re-route them if
required.</p>
<p>There is no defined behavior as to, for example, how
<code>glDrawBuffer</code> interacts with <code>EGL_RENDER_BUFFER</code>. Right
now, it is desired that the draw buffer in a client API be fixed for pixmap and
pbuffer surfaces. Therefore, the driver is responsible to guarantee that the
client API renders to the specified render buffer for pixmap and pbuffer
surfaces.</p>
<h3><code>EGLDisplay</code> Mutex</h3>
The <code>EGLDisplay</code> will be locked before calling any of the dispatch
functions (well, except for GetProcAddress which does not take an
<code>EGLDisplay</code>). This guarantees that the same dispatch function will
not be called with the sample display at the same time. If a driver has access
to an <code>EGLDisplay</code> without going through the EGL APIs, the driver
should as well lock the display before using it.
</div>
</body>
</html>

197
docs/egl.rst Normal file
View File

@ -0,0 +1,197 @@
EGL
===
The current version of EGL in Mesa implements EGL 1.4. More information
about EGL can be found at https://www.khronos.org/egl/.
The Mesa's implementation of EGL uses a driver architecture. The main
library (``libEGL``) is window system neutral. It provides the EGL API
entry points and helper functions for use by the drivers. Drivers are
dynamically loaded by the main library and most of the EGL API calls are
directly dispatched to the drivers.
The driver in use decides the window system to support.
Build EGL
---------
#. Configure your build with the desired client APIs and enable the
driver for your hardware. For example:
::
$ meson configure \
-D egl=true \
-D gles1=true \
-D gles2=true \
-D dri-drivers=... \
-D gallium-drivers=...
The main library and OpenGL is enabled by default. The first two
options above enables `OpenGL ES 1.x and 2.x <opengles.html>`__. The
last two options enables the listed classic and Gallium drivers
respectively.
#. Build and install Mesa as usual.
In the given example, it will build and install ``libEGL``, ``libGL``,
``libGLESv1_CM``, ``libGLESv2``, and one or more EGL drivers.
Configure Options
~~~~~~~~~~~~~~~~~
There are several options that control the build of EGL at configuration
time
``-D egl=true``
By default, EGL is enabled. When disabled, the main library and the
drivers will not be built.
``-D platforms=...``
List the platforms (window systems) to support. Its argument is a
comma separated string such as ``-D platforms=x11,drm``. It decides
the platforms a driver may support. The first listed platform is also
used by the main library to decide the native platform.
The available platforms are ``x11``, ``drm``, ``wayland``,
``surfaceless``, ``android``, and ``haiku``. The ``android`` platform
can either be built as a system component, part of AOSP, using
``Android.mk`` files, or cross-compiled using appropriate options.
Unless for special needs, the build system should select the right
platforms automatically.
``-D gles1=true`` and ``-D gles2=true``
These options enable OpenGL ES support in OpenGL. The result is one
big internal library that supports multiple APIs.
``-D shared-glapi=true``
By default, ``libGL`` has its own copy of ``libglapi``. This options
makes ``libGL`` use the shared ``libglapi``. This is required if
applications mix OpenGL and OpenGL ES.
Use EGL
-------
Demos
~~~~~
There are demos for the client APIs supported by EGL. They can be found
in mesa/demos repository.
Environment Variables
~~~~~~~~~~~~~~~~~~~~~
There are several environment variables that control the behavior of EGL
at runtime
``EGL_PLATFORM``
This variable specifies the native platform. The valid values are the
same as those for ``-D platforms=...``. When the variable is not set,
the main library uses the first platform listed in
``-D platforms=...`` as the native platform.
Extensions like ``EGL_MESA_drm_display`` define new functions to
create displays for non-native platforms. These extensions are
usually used by applications that support non-native platforms.
Setting this variable is probably required only for some of the demos
found in mesa/demo repository.
``EGL_LOG_LEVEL``
This changes the log level of the main library and the drivers. The
valid values are: ``debug``, ``info``, ``warning``, and ``fatal``.
EGL Drivers
-----------
``egl_dri2``
This driver supports both ``x11`` and ``drm`` platforms. It functions
as a DRI driver loader. For ``x11`` support, it talks to the X server
directly using (XCB-)DRI2 protocol.
This driver can share DRI drivers with ``libGL``.
Packaging
---------
The ABI between the main library and its drivers are not stable. Nor is
there a plan to stabilize it at the moment.
Developers
----------
The sources of the main library and drivers can be found at
``src/egl/``.
Lifetime of Display Resources
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Contexts and surfaces are examples of display resources. They might live
longer than the display that creates them.
In EGL, when a display is terminated through ``eglTerminate``, all
display resources should be destroyed. Similarly, when a thread is
released through ``eglReleaseThread``, all current display resources
should be released. Another way to destroy or release resources is
through functions such as ``eglDestroySurface`` or ``eglMakeCurrent``.
When a resource that is current to some thread is destroyed, the
resource should not be destroyed immediately. EGL requires the resource
to live until it is no longer current. A driver usually calls
``eglIs<Resource>Bound`` to check if a resource is bound (current) to
any thread in the destroy callbacks. If it is still bound, the resource
is not destroyed.
The main library will mark destroyed current resources as unlinked. In a
driver's ``MakeCurrent`` callback, ``eglIs<Resource>Linked`` can then be
called to check if a newly released resource is linked to a display. If
it is not, the last reference to the resource is removed and the driver
should destroy the resource. But it should be careful here because
``MakeCurrent`` might be called with an uninitialized display.
This is the only mechanism provided by the main library to help manage
the resources. The drivers are responsible to the correct behavior as
defined by EGL.
``EGL_RENDER_BUFFER``
~~~~~~~~~~~~~~~~~~~~~
In EGL, the color buffer a context should try to render to is decided by
the binding surface. It should try to render to the front buffer if the
binding surface has ``EGL_RENDER_BUFFER`` set to ``EGL_SINGLE_BUFFER``;
If the same context is later bound to a surface with
``EGL_RENDER_BUFFER`` set to ``EGL_BACK_BUFFER``, the context should try
to render to the back buffer. However, the context is allowed to make
the final decision as to which color buffer it wants to or is able to
render to.
For pbuffer surfaces, the render buffer is always ``EGL_BACK_BUFFER``.
And for pixmap surfaces, the render buffer is always
``EGL_SINGLE_BUFFER``. Unlike window surfaces, EGL spec requires their
``EGL_RENDER_BUFFER`` values to be honored. As a result, a driver should
never set ``EGL_PIXMAP_BIT`` or ``EGL_PBUFFER_BIT`` bits of a config if
the contexts created with the config won't be able to honor the
``EGL_RENDER_BUFFER`` of pixmap or pbuffer surfaces.
It should also be noted that pixmap and pbuffer surfaces are assumed to
be single-buffered, in that ``eglSwapBuffers`` has no effect on them. It
is desirable that a driver allocates a private color buffer for each
pbuffer surface created. If the window system the driver supports has
native pbuffers, or if the native pixmaps have more than one color
buffers, the driver should carefully attach the native color buffers to
the EGL surfaces, re-route them if required.
There is no defined behavior as to, for example, how ``glDrawBuffer``
interacts with ``EGL_RENDER_BUFFER``. Right now, it is desired that the
draw buffer in a client API be fixed for pixmap and pbuffer surfaces.
Therefore, the driver is responsible to guarantee that the client API
renders to the specified render buffer for pixmap and pbuffer surfaces.
``EGLDisplay`` Mutex
~~~~~~~~~~~~~~~~~~~~
The ``EGLDisplay`` will be locked before calling any of the dispatch
functions (well, except for GetProcAddress which does not take an
``EGLDisplay``). This guarantees that the same dispatch function will
not be called with the sample display at the same time. If a driver has
access to an ``EGLDisplay`` without going through the EGL APIs, the
driver should as well lock the display before using it.

View File

@ -1,786 +0,0 @@
<!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>Environment Variables</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Environment Variables</h1>
<p>
Normally, no environment variables need to be set. Most of the environment
variables used by Mesa/Gallium are for debugging purposes, but they can
sometimes be useful for debugging end-user issues.
</p>
<h2>LibGL environment variables</h2>
<dl>
<dt><code>LIBGL_DEBUG</code></dt>
<dd>If defined debug information will be printed to stderr.
If set to <code>verbose</code> additional information will be
printed.</dd>
<dt><code>LIBGL_DRIVERS_PATH</code></dt>
<dd>colon-separated list of paths to search for DRI drivers</dd>
<dt><code>LIBGL_ALWAYS_INDIRECT</code></dt>
<dd>if set to <code>true</code>, forces an indirect rendering
context/connection.</dd>
<dt><code>LIBGL_ALWAYS_SOFTWARE</code></dt>
<dd>if set to <code>true</code>, always use software rendering</dd>
<dt><code>LIBGL_NO_DRAWARRAYS</code></dt>
<dd>if set to <code>true</code>, do not use DrawArrays GLX protocol
(for debugging)</dd>
<dt><code>LIBGL_SHOW_FPS</code></dt>
<dd>print framerate to stdout based on the number of
<code>glXSwapBuffers</code> calls per second.</dd>
<dt><code>LIBGL_DRI3_DISABLE</code></dt>
<dd>disable DRI3 if set to <code>true</code>.</dd>
</dl>
<h2>Core Mesa environment variables</h2>
<dl>
<dt><code>MESA_NO_ASM</code></dt>
<dd>if set, disables all assembly language optimizations</dd>
<dt><code>MESA_NO_MMX</code></dt>
<dd>if set, disables Intel MMX optimizations</dd>
<dt><code>MESA_NO_3DNOW</code></dt>
<dd>if set, disables AMD 3DNow! optimizations</dd>
<dt><code>MESA_NO_SSE</code></dt>
<dd>if set, disables Intel SSE optimizations</dd>
<dt><code>MESA_NO_ERROR</code></dt>
<dd>if set to 1, error checking is disabled as per <code>KHR_no_error</code>.
This will result in undefined behaviour for invalid use of the api, but
can reduce CPU use for apps that are known to be error free.</dd>
<dt><code>MESA_DEBUG</code></dt>
<dd>if set, error messages are printed to stderr. For example,
if the application generates a <code>GL_INVALID_ENUM</code> error, a
corresponding error message indicating where the error occurred, and
possibly why, will be printed to stderr. For release builds,
<code>MESA_DEBUG</code> defaults to off (no debug output).
<code>MESA_DEBUG</code> accepts the following comma-separated list of
named flags, which adds extra behaviour to just set
<code>MESA_DEBUG=1</code>:
<dl>
<dt><code>silent</code></dt>
<dd>turn off debug messages. Only useful for debug builds.</dd>
<dt><code>flush</code></dt>
<dd>flush after each drawing command</dd>
<dt><code>incomplete_tex</code></dt>
<dd>extra debug messages when a texture is incomplete</dd>
<dt><code>incomplete_fbo</code></dt>
<dd>extra debug messages when a fbo is incomplete</dd>
<dt><code>context</code></dt>
<dd>create a debug context (see <code>GLX_CONTEXT_DEBUG_BIT_ARB</code>)
and print error and performance messages to stderr (or
<code>MESA_LOG_FILE</code>).</dd>
</dl>
</dd>
<dt><code>MESA_LOG_FILE</code></dt>
<dd>specifies a file name for logging all errors, warnings,
etc., rather than stderr</dd>
<dt><code>MESA_TEX_PROG</code></dt>
<dd>if set, implement conventional texture env modes with
fragment programs (intended for developers only)</dd>
<dt><code>MESA_TNL_PROG</code></dt>
<dd>if set, implement conventional vertex transformation operations with
vertex programs (intended for developers only). Setting this variable
automatically sets the <code>MESA_TEX_PROG</code> variable as well.</dd>
<dt><code>MESA_EXTENSION_OVERRIDE</code></dt>
<dd>can be used to enable/disable extensions. A value such as
<code>GL_EXT_foo -GL_EXT_bar</code> will enable the
<code>GL_EXT_foo</code> extension and disable the
<code>GL_EXT_bar</code> extension.</dd>
<dt><code>MESA_EXTENSION_MAX_YEAR</code></dt>
<dd>The <code>GL_EXTENSIONS</code> string returned by Mesa is sorted by
extension year. If this variable is set to year X, only extensions
defined on or before year X will be reported. This is to work-around a
bug in some games where the extension string is copied into a fixed-size
buffer without truncating. If the extension string is too long, the
buffer overrun can cause the game to crash. This is a work-around for
that.</dd>
<dt><code>MESA_GL_VERSION_OVERRIDE</code></dt>
<dd>changes the value returned by
<code>glGetString(GL_VERSION)</code> and possibly the GL API type.
<ul>
<li>The format should be <code>MAJOR.MINOR[FC|COMPAT]</code>
<li><code>FC</code> is an optional suffix that indicates a forward
compatible context. This is only valid for versions &gt;= 3.0.
<li><code>COMPAT</code> is an optional suffix that indicates a
compatibility context or <code>GL_ARB_compatibility</code> support.
This is only valid for versions &gt;= 3.1.
<li>GL versions &lt;= 3.0 are set to a compatibility (non-Core)
profile
<li>GL versions = 3.1, depending on the driver, it may or may not
have the <code>ARB_compatibility</code> extension enabled.
<li>GL versions &gt;= 3.2 are set to a Core profile
<li>Examples:
<dl>
<dt><code>2.1</code></dt>
<dd>select a compatibility (non-Core) profile with GL version 2.1.</dd>
<dt><code>3.0</code></dt>
<dd>select a compatibility (non-Core) profile with GL version 3.0.</dd>
<dt><code>3.0FC</code></dt>
<dd>select a Core+Forward Compatible profile with GL version 3.0.</dd>
<dt><code>3.1</code></dt>
<dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
enabled per the driver default.</dd>
<dt><code>3.1FC</code></dt>
<dd>select GL version 3.1 with forward compatibility and
<code>GL_ARB_compatibility</code> disabled.</dd>
<dt><code>3.1COMPAT</code></dt>
<dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
enabled.</dd>
<dt><code>X.Y</code></dt>
<dd>override GL version to X.Y without changing the profile.</dd>
<dt><code>X.YFC</code></dt>
<dd>select a Core+Forward Compatible profile with GL version X.Y.</dd>
<dt><code>X.YCOMPAT</code></dt>
<dd>select a Compatibility profile with GL version X.Y.</dd>
</dl>
<li>Mesa may not really implement all the features of the given
version. (for developers only)
</ul>
</dd>
<dt><code>MESA_GLES_VERSION_OVERRIDE</code></dt>
<dd>changes the value returned by <code>glGetString(GL_VERSION)</code>
for OpenGL ES.
<ul>
<li> The format should be <code>MAJOR.MINOR</code>
<li> Examples: <code>2.0</code>, <code>3.0</code>, <code>3.1</code>
<li> Mesa may not really implement all the features of the given version.
(for developers only)
</ul>
</dd>
<dt><code>MESA_GLSL_VERSION_OVERRIDE</code></dt>
<dd>changes the value returned by
<code>glGetString(GL_SHADING_LANGUAGE_VERSION)</code>.
Valid values are integers, such as <code>130</code>. Mesa will not
really implement all the features of the given language version if
it's higher than what's normally reported. (for developers only)
</dd>
<dt><code>MESA_GLSL_CACHE_DISABLE</code></dt>
<dd>if set to <code>true</code>, disables the GLSL shader cache</dd>
<dt><code>MESA_GLSL_CACHE_MAX_SIZE</code></dt>
<dd>if set, determines the maximum size of the on-disk cache of compiled GLSL
programs. Should be set to a number optionally followed by <code>K</code>,
<code>M</code>, or <code>G</code> to specify a size in kilobytes,
megabytes, or gigabytes. By default, gigabytes will be assumed. And if
unset, a maximum size of 1GB will be used. Note: A separate cache might
be created for each architecture that Mesa is installed for on your
system. For example under the default settings you may end up with a 1GB
cache for x86_64 and another 1GB cache for i386.</dd>
<dt><code>MESA_GLSL_CACHE_DIR</code></dt>
<dd>if set, determines the directory to be used for the on-disk cache of
compiled GLSL programs. If this variable is not set, then the cache will
be stored in <code>$XDG_CACHE_HOME/mesa_shader_cache</code> (if that
variable is set), or else within <code>.cache/mesa_shader_cache</code>
within the user's home directory.
</dd>
<dt><code>MESA_GLSL</code></dt>
<dd><a href="shading.html#envvars">shading language compiler options</a></dd>
<dt><code>MESA_NO_MINMAX_CACHE</code></dt>
<dd>when set, the minmax index cache is globally disabled.</dd>
<dt><code>MESA_SHADER_CAPTURE_PATH</code></dt>
<dd>see <a href="shading.html#capture">Capturing Shaders</a></dd>
<dt><code>MESA_SHADER_DUMP_PATH</code> and <code>MESA_SHADER_READ_PATH</code></dt>
<dd>see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></dd>
<dt><code>MESA_VK_VERSION_OVERRIDE</code></dt>
<dd>changes the Vulkan physical device version
as returned in <code>VkPhysicalDeviceProperties::apiVersion</code>.
<ul>
<li>The format should be <code>MAJOR.MINOR[.PATCH]</code></li>
<li>This will not let you force a version higher than the driver's
instance version as advertised by
<code>vkEnumerateInstanceVersion</code></li>
<li>This can be very useful for debugging but some features may not be
implemented correctly. (For developers only)</li>
</ul>
</dd>
</dl>
<h2>NIR passes enviroment variables</h2>
<p>
The following are only applicable for drivers that uses NIR, as they
modify the behaviour for the common NIR_PASS and NIR_PASS_V macros,
that wrap calls to NIR lowering/optimizations.
</p>
<dl>
<dt><code>NIR_PRINT</code></dt>
<dd>If defined, the resulting NIR shader will be printed out at each succesful NIR lowering/optimization call.</dd>
<dt><code>NIR_TEST_CLONE</code></dt>
<dd>If defined, cloning a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
<dt><code>NIR_TEST_SERIALIZE</code></dt>
<dd>If defined, serialize and deserialize a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
</dl>
<h2>Mesa Xlib driver environment variables</h2>
<p>
The following are only applicable to the Mesa Xlib software driver.
See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
</p>
<dl>
<dt><code>MESA_RGB_VISUAL</code></dt>
<dd>specifies the X visual and depth for RGB mode</dd>
<dt><code>MESA_CI_VISUAL</code></dt>
<dd>specifies the X visual and depth for CI mode</dd>
<dt><code>MESA_BACK_BUFFER</code></dt>
<dd>specifies how to implement the back color buffer, either
<code>pixmap</code> or <code>ximage</code></dd>
<dt><code>MESA_GAMMA</code></dt>
<dd>gamma correction coefficients for red, green, blue channels</dd>
<dt><code>MESA_XSYNC</code></dt>
<dd>enable synchronous X behavior (for debugging only)</dd>
<dt><code>MESA_GLX_FORCE_CI</code></dt>
<dd>if set, force GLX to treat 8bpp visuals as CI visuals</dd>
<dt><code>MESA_GLX_FORCE_ALPHA</code></dt>
<dd>if set, forces RGB windows to have an alpha channel.</dd>
<dt><code>MESA_GLX_DEPTH_BITS</code></dt>
<dd>specifies default number of bits for depth buffer.</dd>
<dt><code>MESA_GLX_ALPHA_BITS</code></dt>
<dd>specifies default number of bits for alpha channel.</dd>
</dl>
<h2>i945/i965 driver environment variables (non-Gallium)</h2>
<dl>
<dt><code>INTEL_NO_HW</code></dt>
<dd>if set to 1, prevents batches from being submitted to the hardware.
This is useful for debugging hangs, etc.</dd>
<dt><code>INTEL_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
<dt><code>ann</code></dt>
<dd>annotate IR in assembly dumps</dd>
<dt><code>aub</code></dt>
<dd>dump batches into an AUB trace for use with simulation tools</dd>
<dt><code>bat</code></dt>
<dd>emit batch information</dd>
<dt><code>blit</code></dt>
<dd>emit messages about blit operations</dd>
<dt><code>blorp</code></dt>
<dd>emit messages about the blorp operations (blits &amp; clears)</dd>
<dt><code>buf</code></dt>
<dd>emit messages about buffer objects</dd>
<dt><code>clip</code></dt>
<dd>emit messages about the clip unit (for old gens, includes the CLIP program)</dd>
<dt><code>color</code></dt>
<dd>use color in output</dd>
<dt><code>cs</code></dt>
<dd>dump shader assembly for compute shaders</dd>
<dt><code>do32</code></dt>
<dd>generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</dd>
<dt><code>dri</code></dt>
<dd>emit messages about the DRI interface</dd>
<dt><code>fbo</code></dt>
<dd>emit messages about framebuffers</dd>
<dt><code>fs</code></dt>
<dd>dump shader assembly for fragment shaders</dd>
<dt><code>gs</code></dt>
<dd>dump shader assembly for geometry shaders</dd>
<dt><code>hex</code></dt>
<dd>print instruction hex dump with the disassembly</dd>
<dt><code>l3</code></dt>
<dd>emit messages about the new L3 state during transitions</dd>
<dt><code>miptree</code></dt>
<dd>emit messages about miptrees</dd>
<dt><code>no8</code></dt>
<dd>don't generate SIMD8 fragment shader</dd>
<dt><code>no16</code></dt>
<dd>suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</dd>
<dt><code>nocompact</code></dt>
<dd>disable instruction compaction</dd>
<dt><code>nodualobj</code></dt>
<dd>suppress generation of dual-object geometry shader code</dd>
<dt><code>nofc</code></dt>
<dd>disable fast clears</dd>
<dt><code>norbc</code></dt>
<dd>disable single sampled render buffer compression</dd>
<dt><code>optimizer</code></dt>
<dd>dump shader assembly to files at each optimization pass and iteration that make progress</dd>
<dt><code>perf</code></dt>
<dd>emit messages about performance issues</dd>
<dt><code>perfmon</code></dt>
<dd>emit messages about <code>AMD_performance_monitor</code></dd>
<dt><code>pix</code></dt>
<dd>emit messages about pixel operations</dd>
<dt><code>prim</code></dt>
<dd>emit messages about drawing primitives</dd>
<dt><code>reemit</code></dt>
<dd>mark all state dirty on each draw call</dd>
<dt><code>sf</code></dt>
<dd>emit messages about the strips &amp; fans unit (for old gens, includes the SF program)</dd>
<dt><code>shader_time</code></dt>
<dd>record how much GPU time is spent in each shader</dd>
<dt><code>spill_fs</code></dt>
<dd>force spilling of all registers in the scalar backend (useful to debug spilling code)</dd>
<dt><code>spill_vec4</code></dt>
<dd>force spilling of all registers in the vec4 backend (useful to debug spilling code)</dd>
<dt><code>state</code></dt>
<dd>emit messages about state flag tracking</dd>
<dt><code>submit</code></dt>
<dd>emit batchbuffer usage statistics</dd>
<dt><code>sync</code></dt>
<dd>after sending each batch, emit a message and wait for that batch to finish rendering</dd>
<dt><code>tcs</code></dt>
<dd>dump shader assembly for tessellation control shaders</dd>
<dt><code>tes</code></dt>
<dd>dump shader assembly for tessellation evaluation shaders</dd>
<dt><code>tex</code></dt>
<dd>emit messages about textures.</dd>
<dt><code>urb</code></dt>
<dd>emit messages about URB setup</dd>
<dt><code>vert</code></dt>
<dd>emit messages about vertex assembly</dd>
<dt><code>vs</code></dt>
<dd>dump shader assembly for vertex shaders</dd>
</dl>
</dd>
<dt><code>INTEL_SCALAR_VS</code> (or <code>TCS</code>, <code>TES</code>,
<code>GS</code>)</dt>
<dd>force scalar/vec4 mode for a shader stage (Gen8-9 only)</dd>
<dt><code>INTEL_PRECISE_TRIG</code></dt>
<dd>if set to 1, true or yes, then the driver prefers accuracy over
performance in trig functions.</dd>
</dl>
<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
<dl>
<dt><code>RADEON_NO_TCL</code></dt>
<dd>if set, disable hardware-accelerated Transform/Clip/Lighting.</dd>
</dl>
<h2>EGL environment variables</h2>
<p>
Mesa EGL supports different sets of environment variables. See the
<a href="egl.html">Mesa EGL</a> page for the details.
</p>
<h2>Gallium environment variables</h2>
<dl>
<dt><code>GALLIUM_HUD</code></dt>
<dd>draws various information on the screen, like framerate,
cpu load, driver statistics, performance counters, etc.
Set <code>GALLIUM_HUD=help</code> and run e.g.
<code>glxgears</code> for more info.</dd>
<dt><code>GALLIUM_HUD_PERIOD</code></dt>
<dd>sets the hud update rate in seconds (float). Use zero
to update every frame. The default period is 1/2 second.</dd>
<dt><code>GALLIUM_HUD_VISIBLE</code></dt>
<dd>control default visibility, defaults to true.</dd>
<dt><code>GALLIUM_HUD_TOGGLE_SIGNAL</code></dt>
<dd>toggle visibility via user specified signal.
Especially useful to toggle hud at specific points of application and
disable for unencumbered viewing the rest of the time. For example, set
<code>GALLIUM_HUD_VISIBLE</code> to <code>false</code> and
<code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
(<code>SIGUSR1</code>).
Use <code>kill -10 &lt;pid&gt;</code> to toggle the hud as desired.</dd>
<dt><code>GALLIUM_HUD_SCALE</code></dt>
<dd>Scale hud by an integer factor, for high DPI displays. Default is 1.</dd>
<dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
<dd>specifies a directory for writing the displayed hud values into files.</dd>
<dt><code>GALLIUM_DRIVER</code></dt>
<dd>useful in combination with <code>LIBGL_ALWAYS_SOFTWARE=true</code> for
choosing one of the software renderers <code>softpipe</code>,
<code>llvmpipe</code> or <code>swr</code>.</dd>
<dt><code>GALLIUM_LOG_FILE</code></dt>
<dd>specifies a file for logging all errors, warnings, etc.
rather than stderr.</dd>
<dt><code>GALLIUM_PRINT_OPTIONS</code></dt>
<dd>if non-zero, print all the Gallium environment variables which are
used, and their current values.</dd>
<dt><code>GALLIUM_DUMP_CPU</code></dt>
<dd>if non-zero, print information about the CPU on start-up</dd>
<dt><code>TGSI_PRINT_SANITY</code></dt>
<dd>if set, do extra sanity checking on TGSI shaders and
print any errors to stderr.</dd>
<dt><code>DRAW_FSE</code></dt>
<dd>???</dd>
<dt><code>DRAW_NO_FSE</code></dt>
<dd>???</dd>
<dt><code>DRAW_USE_LLVM</code></dt>
<dd>if set to zero, the draw module will not use LLVM to execute
shaders, vertex fetch, etc.</dd>
<dt><code>ST_DEBUG</code></dt>
<dd>controls debug output from the Mesa/Gallium state tracker.
Setting to <code>tgsi</code>, for example, will print all the TGSI
shaders. See <code>src/mesa/state_tracker/st_debug.c</code> for other
options.</dd>
</dl>
<h3>Clover environment variables</h3>
<dl>
<dt><code>CLOVER_EXTRA_BUILD_OPTIONS</code></dt>
<dd>allows specifying additional compiler and linker
options. Specified options are appended after the options set by the OpenCL
program in <code>clBuildProgram</code>.</dd>
<dt><code>CLOVER_EXTRA_COMPILE_OPTIONS</code></dt>
<dd>allows specifying additional compiler
options. Specified options are appended after the options set by the OpenCL
program in <code>clCompileProgram</code>.</dd>
<dt><code>CLOVER_EXTRA_LINK_OPTIONS</code></dt>
<dd>allows specifying additional linker
options. Specified options are appended after the options set by the OpenCL
program in <code>clLinkProgram</code>.</dd>
</dl>
<h3>Softpipe driver environment variables</h3>
<dl>
<dt><code>SOFTPIPE_DUMP_FS</code></dt>
<dd>if set, the softpipe driver will print fragment shaders to stderr</dd>
<dt><code>SOFTPIPE_DUMP_GS</code></dt>
<dd>if set, the softpipe driver will print geometry shaders to stderr</dd>
<dt><code>SOFTPIPE_NO_RAST</code></dt>
<dd>if set, rasterization is no-op'd. For profiling purposes.</dd>
<dt><code>SOFTPIPE_USE_LLVM</code></dt>
<dd>if set, the softpipe driver will try to use LLVM JIT for
vertex shading processing.</dd>
</dl>
<h3>LLVMpipe driver environment variables</h3>
<dl>
<dt><code>LP_NO_RAST</code></dt>
<dd>if set LLVMpipe will no-op rasterization</dd>
<dt><code>LP_DEBUG</code></dt>
<dd>a comma-separated list of debug options is accepted. See the
source code for details.</dd>
<dt><code>LP_PERF</code></dt>
<dd>a comma-separated list of options to selectively no-op various
parts of the driver. See the source code for details.</dd>
<dt><code>LP_NUM_THREADS</code></dt>
<dd>an integer indicating how many threads to use for rendering.
Zero turns off threading completely. The default value is the number of CPU
cores present.</dd>
</dl>
<h3>VMware SVGA driver environment variables</h3>
<dl>
<dt><code>SVGA_FORCE_SWTNL</code></dt>
<dd>force use of software vertex transformation</dd>
<dt><code>SVGA_NO_SWTNL</code></dt>
<dd>don't allow software vertex transformation fallbacks (will often result
in incorrect rendering).</dd>
<dt><code>SVGA_DEBUG</code></dt>
<dd>for dumping shaders, constant buffers, etc. See the code for
details.</dd>
<dt><code>SVGA_EXTRA_LOGGING</code></dt>
<dd>if set, enables extra logging to the <code>vmware.log</code> file,
such as the OpenGL program's name and command line arguments.</dd>
<dt><code>SVGA_NO_LOGGING</code></dt>
<dd>if set, disables logging to the <code>vmware.log</code> file. This is
useful when using Valgrind because it otherwise crashes when
initializing the host log feature.</dd>
</dl>
<p>See the driver code for other, lesser-used variables.</p>
<h3>WGL environment variables</h3>
<dl>
<dt><code>WGL_SWAP_INTERVAL</code></dt>
<dd>to set a swap interval, equivalent to calling
<code>wglSwapIntervalEXT()</code> in an application. If this
environment variable is set, application calls to
<code>wglSwapIntervalEXT()</code> will have no effect.</dd>
</dl>
<h3>VA-API environment variables</h3>
<dl>
<dt><code>VAAPI_MPEG4_ENABLED</code></dt>
<dd>enable MPEG4 for VA-API, disabled by default.</dd>
</dl>
<h3>VC4 driver environment variables</h3>
<dl>
<dt><code>VC4_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
<dt><code>cl</code></dt>
<dd>dump command list during creation</dd>
<dt><code>qpu</code></dt>
<dd>dump generated QPU instructions</dd>
<dt><code>qir</code></dt>
<dd>dump QPU IR during program compile</dd>
<dt><code>nir</code></dt>
<dd>dump NIR during program compile</dd>
<dt><code>tgsi</code></dt>
<dd>dump TGSI during program compile</dd>
<dt><code>shaderdb</code></dt>
<dd>dump program compile information for shader-db analysis</dd>
<dt><code>perf</code></dt>
<dd>print during performance-related events</dd>
<dt><code>norast</code></dt>
<dd>skip actual hardware execution of commands</dd>
<dt><code>always_flush</code></dt>
<dd>flush after each draw call</dd>
<dt><code>always_sync</code></dt>
<dd>wait for finish after each flush</dd>
<dt><code>dump</code></dt>
<dd>write a GPU command stream trace file (VC4 simulator only)</dd>
</dl>
</dd>
</dl>
<h3>RADV driver environment variables</h3>
<dl>
<dt><code>RADV_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
<dt><code>allbos</code></dt>
<dd>force all allocated buffers to be referenced in submissions</dd>
<dt><code>allentrypoints</code></dt>
<dd>enable all device/instance entrypoints</dd>
<dt><code>checkir</code></dt>
<dd>validate the LLVM IR before LLVM compiles the shader</dd>
<dt><code>errors</code></dt>
<dd>display more info about errors</dd>
<dt><code>info</code></dt>
<dd>show GPU-related information</dd>
<dt><code>metashaders</code></dt>
<dd>dump internal meta shaders</dd>
<dt><code>nobinning</code></dt>
<dd>disable primitive binning</dd>
<dt><code>nocache</code></dt>
<dd>disable shaders cache</dd>
<dt><code>nocompute</code></dt>
<dd>disable compute queue</dd>
<dt><code>nodcc</code></dt>
<dd>disable Delta Color Compression (DCC) on images</dd>
<dt><code>nodynamicbounds</code></dt>
<dd>do not check OOB access for dynamic descriptors</dd>
<dt><code>nofastclears</code></dt>
<dd>disable fast color/depthstencil clears</dd>
<dt><code>nohiz</code></dt>
<dd>disable HIZ for depthstencil images</dd>
<dt><code>noibs</code></dt>
<dd>disable directly recording command buffers in GPU-visible memory</dd>
<dt><code>noloadstoreopt</code></dt>
<dd>disable LLVM SILoadStoreOptimizer pass</dd>
<dt><code>nomemorycache</code></dt>
<dd>disable memory shaders cache</dd>
<dt><code>nongg</code></dt>
<dd>disable NGG for GFX10+</dd>
<dt><code>nooutoforder</code></dt>
<dd>disable out-of-order rasterization</dd>
<dt><code>noshaderballot</code></dt>
<dd>disable shader ballot</dd>
<dt><code>nothreadllvm</code></dt>
<dd>disable LLVM threaded compilation</dd>
<dt><code>preoptir</code></dt>
<dd>dump LLVM IR before any optimizations</dd>
<dt><code>shaders</code></dt>
<dd>dump shaders</dd>
<dt><code>shaderstats</code></dt>
<dd>dump shader statistics</dd>
<dt><code>spirv</code></dt>
<dd>dump SPIR-V</dd>
<dt><code>startup</code></dt>
<dd>display info at startup</dd>
<dt><code>syncshaders</code></dt>
<dd>synchronize shaders after all draws/dispatches</dd>
<dt><code>vmfaults</code></dt>
<dd>check for VM memory faults via dmesg</dd>
<dt><code>zerovram</code></dt>
<dd>initialize all memory allocated in VRAM as zero</dd>
</dl>
</dd>
<dt><code>RADV_FORCE_FAMILY</code></dt>
<dd>create a null device to compile shaders without a AMD GPU (eg. gfx900)</dd>
<dt><code>RADV_PERFTEST</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
<dt><code>aco</code></dt>
<dd>enable ACO experimental compiler</dd>
<dt><code>bolist</code></dt>
<dd>enable the global BO list</dd>
<dt><code>cswave32</code></dt>
<dd>enable wave32 for compute shaders (GFX10+)</dd>
<dt><code>dccmsaa</code></dt>
<dd>enable DCC for MSAA images</dd>
<dt><code>dfsm</code></dt>
<dd>enable dfsm</dd>
<dt><code>gewave32</code></dt>
<dd>enable wave32 for vertex/tess/geometry shaders (GFX10+)</dd>
<dt><code>localbos</code></dt>
<dd>enable local BOs</dd>
<dt><code>pswave32</code></dt>
<dd>enable wave32 for pixel shaders (GFX10+)</dd>
<dt><code>shader_ballot</code></dt>
<dd>enable shader ballot</dd>
<dt><code>tccompatcmask</code></dt>
<dd>enable TC-compat cmask for MSAA images</dd>
</dl>
</dd>
<dt><code>RADV_SECURE_COMPILE_THREADS</code></dt>
<dd>maximum number of secure compile threads (up to 32)</dd>
<dt><code>RADV_TEX_ANISO</code></dt>
<dd>force anisotropy filter (up to 16)</dd>
<dt><code>RADV_TRACE_FILE</code></dt>
<dd>generate cmdbuffer tracefiles when a GPU hang is detected</dd>
<dt><code>ACO_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
<dt><code>validateir</code></dt>
<dd>validate the ACO IR at various points of compilation (enabled by default for debug/debugoptimized builds)</dd>
<dt><code>validatera</code></dt>
<dd>validate register assignment of ACO IR and catches many RA bugs</dd>
<dt><code>perfwarn</code></dt>
<dd>abort on some suboptimal code generation</dd>
</dl>
</dd>
</dl>
<h3>radeonsi driver environment variables</h3>
<dl>
<dt><code>AMD_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:</dd>
<dl>
<dd></dd>
<h4>Disable features / workaround flags (useful to diagnose an issue):</h4>
<dt><code>nodma</code></dt>
<dd>Disable SDMA</dd>
<dt><code>nodmaclear</code></dt>
<dd>Disable SDMA clears</dd>
<dt><code>nodmacopyimage</code></dt>
<dd>Disable SDMA image copies</dd>
<dt><code>zerovram</code></dt>
<dd>Clear VRAM allocations.</dd>
<dt><code>nodcc</code></dt>
<dd>Disable DCC.</dd>
<dt><code>nodccclear</code></dt>
<dd>Disable DCC fast clear.</dd>
<dt><code>nodccfb</code></dt>
<dd>Disable separate DCC on the main framebuffer</dd>
<dt><code>nodccmsaa</code></dt>
<dd>Disable DCC for MSAA</dd>
<dt><code>nodpbb</code></dt>
<dd>Disable DPBB.</dd>
<dt><code>nodfsm</code></dt>
<dd>Disable DFSM.</dd>
<dt><code>notiling</code></dt>
<dd>Disable tiling</dd>
<dt><code>nofmask</code></dt>
<dd>Disable MSAA compression</dd>
<dt><code>nohyperz</code></dt>
<dd>Disable Hyper-Z</dd>
<dt><code>norbplus</code></dt>
<dd>Disable RB+.</dd>
<dt><code>no2d</code></dt>
<dd>Disable 2D tiling</dd>
<h4>Info flags:</h4>
<dt><code>info</code></dt>
<dd>Print driver information</dd>
<dt><code>tex</code></dt>
<dd>Print texture info</dd>
<dt><code>compute</code></dt>
<dd>Print compute info</dd>
<dt><code>vm</code></dt>
<dd>Print virtual addresses when creating resources</dd>
<h4>Print shaders flags:</h4>
<dt><code>vs</code></dt>
<dd>Print vertex shaders</dd>
<dt><code>ps</code></dt>
<dd>Print pixel shaders</dd>
<dt><code>gs</code></dt>
<dd>Print geometry shaders</dd>
<dt><code>tcs</code></dt>
<dd>Print tessellation control shaders</dd>
<dt><code>tes</code></dt>
<dd>Print tessellation evaluation shaders</dd>
<dt><code>cs</code></dt>
<dd>Print compute shaders</dd>
<dt><code>noir</code></dt>
<dd>Don't print the LLVM IR</dd>
<dt><code>nonir</code></dt>
<dd>Don't print NIR when printing shaders</dd>
<dt><code>noasm</code></dt>
<dd>Don't print disassembled shaders</dd>
<dt><code>preoptir</code></dt>
<dd>Print the LLVM IR before initial optimizations</dd>
<h4>Shader compilation tuning flags:</h4>
<dt><code>gisel</code></dt>
<dd>Enable LLVM global instruction selector.</dd>
<dt><code>w32ge</code></dt>
<dd>Use Wave32 for vertex, tessellation, and geometry shaders.</dd>
<dt><code>w32ps</code></dt>
<dd>Use Wave32 for pixel shaders.</dd>
<dt><code>w32cs</code></dt>
<dd>Use Wave32 for computes shaders.</dd>
<dt><code>w64ge</code></dt>
<dd>Use Wave64 for vertex, tessellation, and geometry shaders.</dd>
<dt><code>w64ps</code></dt>
<dd>Use Wave64 for pixel shaders.</dd>
<dt><code>w64cs</code></dt>
<dd>Use Wave64 for computes shaders.</dd>
<dt><code>checkir</code></dt>
<dd>Enable additional sanity checks on shader IR</dd>
<dt><code>mono</code></dt>
<dd>Use old-style monolithic shaders compiled on demand</dd>
<dt><code>nooptvariant</code></dt>
<dd>Disable compiling optimized shader variants.</dd>
<h4>Advanced usage flags:</h4>
<dt><code>forcedma</code></dt>
<dd>Use SDMA for all operations when possible.</dd>
<dt><code>nowc</code></dt>
<dd>Disable GTT write combining</dd>
<dt><code>check_vm</code></dt>
<dd>Check VM faults and dump debug info.</dd>
<dt><code>reserve_vmid</code></dt>
<dd>Force VMID reservation per context.</dd>
<dt><code>nogfx</code></dt>
<dd>Disable graphics. Only multimedia compute paths can be used.</dd>
<dt><code>nongg</code></dt>
<dd>Disable NGG and use the legacy pipeline.</dd>
<dt><code>nggc</code></dt>
<dd>Always use NGG culling even when it can hurt.</dd>
<dt><code>nonggc</code></dt>
<dd>Disable NGG culling.</dd>
<dt><code>alwayspd</code></dt>
<dd>Always enable the primitive discard compute shader.</dd>
<dt><code>pd</code></dt>
<dd>Enable the primitive discard compute shader for large draw calls.</dd>
<dt><code>nopd</code></dt>
<dd>Disable the primitive discard compute shader.</dd>
<dt><code>switch_on_eop</code></dt>
<dd>Program WD/IA to switch on end-of-packet.</dd>
<dt><code>nooutoforder</code></dt>
<dd>Disable out-of-order rasterization</dd>
<dt><code>dpbb</code></dt>
<dd>Enable DPBB.</dd>
<dt><code>dfsm</code></dt>
<dd>Enable DFSM.</dd>
</dl>
<p>
Other Gallium drivers have their own environment variables. These may change
frequently so the source code should be consulted for details.
</p>
</div>
</body>
</html>

724
docs/envvars.rst Normal file
View File

@ -0,0 +1,724 @@
Environment Variables
=====================
Normally, no environment variables need to be set. Most of the
environment variables used by Mesa/Gallium are for debugging purposes,
but they can sometimes be useful for debugging end-user issues.
LibGL environment variables
---------------------------
``LIBGL_DEBUG``
If defined debug information will be printed to stderr. If set to
``verbose`` additional information will be printed.
``LIBGL_DRIVERS_PATH``
colon-separated list of paths to search for DRI drivers
``LIBGL_ALWAYS_INDIRECT``
if set to ``true``, forces an indirect rendering context/connection.
``LIBGL_ALWAYS_SOFTWARE``
if set to ``true``, always use software rendering
``LIBGL_NO_DRAWARRAYS``
if set to ``true``, do not use DrawArrays GLX protocol (for
debugging)
``LIBGL_SHOW_FPS``
print framerate to stdout based on the number of ``glXSwapBuffers``
calls per second.
``LIBGL_DRI3_DISABLE``
disable DRI3 if set to ``true``.
Core Mesa environment variables
-------------------------------
``MESA_NO_ASM``
if set, disables all assembly language optimizations
``MESA_NO_MMX``
if set, disables Intel MMX optimizations
``MESA_NO_3DNOW``
if set, disables AMD 3DNow! optimizations
``MESA_NO_SSE``
if set, disables Intel SSE optimizations
``MESA_NO_ERROR``
if set to 1, error checking is disabled as per ``KHR_no_error``. This
will result in undefined behaviour for invalid use of the api, but
can reduce CPU use for apps that are known to be error free.
``MESA_DEBUG``
if set, error messages are printed to stderr. For example, if the
application generates a ``GL_INVALID_ENUM`` error, a corresponding
error message indicating where the error occurred, and possibly why,
will be printed to stderr. For release builds, ``MESA_DEBUG``
defaults to off (no debug output). ``MESA_DEBUG`` accepts the
following comma-separated list of named flags, which adds extra
behaviour to just set ``MESA_DEBUG=1``:
``silent``
turn off debug messages. Only useful for debug builds.
``flush``
flush after each drawing command
``incomplete_tex``
extra debug messages when a texture is incomplete
``incomplete_fbo``
extra debug messages when a fbo is incomplete
``context``
create a debug context (see ``GLX_CONTEXT_DEBUG_BIT_ARB``) and
print error and performance messages to stderr (or
``MESA_LOG_FILE``).
``MESA_LOG_FILE``
specifies a file name for logging all errors, warnings, etc., rather
than stderr
``MESA_TEX_PROG``
if set, implement conventional texture env modes with fragment
programs (intended for developers only)
``MESA_TNL_PROG``
if set, implement conventional vertex transformation operations with
vertex programs (intended for developers only). Setting this variable
automatically sets the ``MESA_TEX_PROG`` variable as well.
``MESA_EXTENSION_OVERRIDE``
can be used to enable/disable extensions. A value such as
``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension
and disable the ``GL_EXT_bar`` extension.
``MESA_EXTENSION_MAX_YEAR``
The ``GL_EXTENSIONS`` string returned by Mesa is sorted by extension
year. If this variable is set to year X, only extensions defined on
or before year X will be reported. This is to work-around a bug in
some games where the extension string is copied into a fixed-size
buffer without truncating. If the extension string is too long, the
buffer overrun can cause the game to crash. This is a work-around for
that.
``MESA_GL_VERSION_OVERRIDE``
changes the value returned by ``glGetString(GL_VERSION)`` and
possibly the GL API type.
- The format should be ``MAJOR.MINOR[FC|COMPAT]``
- ``FC`` is an optional suffix that indicates a forward compatible
context. This is only valid for versions >= 3.0.
- ``COMPAT`` is an optional suffix that indicates a compatibility
context or ``GL_ARB_compatibility`` support. This is only valid
for versions >= 3.1.
- GL versions <= 3.0 are set to a compatibility (non-Core) profile
- GL versions = 3.1, depending on the driver, it may or may not have
the ``ARB_compatibility`` extension enabled.
- GL versions >= 3.2 are set to a Core profile
- Examples:
``2.1``
select a compatibility (non-Core) profile with GL version 2.1.
``3.0``
select a compatibility (non-Core) profile with GL version 3.0.
``3.0FC``
select a Core+Forward Compatible profile with GL version 3.0.
``3.1``
select GL version 3.1 with ``GL_ARB_compatibility`` enabled per
the driver default.
``3.1FC``
select GL version 3.1 with forward compatibility and
``GL_ARB_compatibility`` disabled.
``3.1COMPAT``
select GL version 3.1 with ``GL_ARB_compatibility`` enabled.
``X.Y``
override GL version to X.Y without changing the profile.
``X.YFC``
select a Core+Forward Compatible profile with GL version X.Y.
``X.YCOMPAT``
select a Compatibility profile with GL version X.Y.
- Mesa may not really implement all the features of the given
version. (for developers only)
``MESA_GLES_VERSION_OVERRIDE``
changes the value returned by ``glGetString(GL_VERSION)`` for OpenGL
ES.
- The format should be ``MAJOR.MINOR``
- Examples: ``2.0``, ``3.0``, ``3.1``
- Mesa may not really implement all the features of the given
version. (for developers only)
``MESA_GLSL_VERSION_OVERRIDE``
changes the value returned by
``glGetString(GL_SHADING_LANGUAGE_VERSION)``. Valid values are
integers, such as ``130``. Mesa will not really implement all the
features of the given language version if it's higher than what's
normally reported. (for developers only)
``MESA_GLSL_CACHE_DISABLE``
if set to ``true``, disables the GLSL shader cache
``MESA_GLSL_CACHE_MAX_SIZE``
if set, determines the maximum size of the on-disk cache of compiled
GLSL programs. Should be set to a number optionally followed by
``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
gigabytes. By default, gigabytes will be assumed. And if unset, a
maximum size of 1GB will be used. Note: A separate cache might be
created for each architecture that Mesa is installed for on your
system. For example under the default settings you may end up with a
1GB cache for x86_64 and another 1GB cache for i386.
``MESA_GLSL_CACHE_DIR``
if set, determines the directory to be used for the on-disk cache of
compiled GLSL programs. If this variable is not set, then the cache
will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that
variable is set), or else within ``.cache/mesa_shader_cache`` within
the user's home directory.
``MESA_GLSL``
`shading language compiler options <shading.html#envvars>`__
``MESA_NO_MINMAX_CACHE``
when set, the minmax index cache is globally disabled.
``MESA_SHADER_CAPTURE_PATH``
see `Capturing Shaders <shading.html#capture>`__
``MESA_SHADER_DUMP_PATH`` and ``MESA_SHADER_READ_PATH``
see `Experimenting with Shader
Replacements <shading.html#replacement>`__
``MESA_VK_VERSION_OVERRIDE``
changes the Vulkan physical device version as returned in
``VkPhysicalDeviceProperties::apiVersion``.
- The format should be ``MAJOR.MINOR[.PATCH]``
- This will not let you force a version higher than the driver's
instance version as advertised by ``vkEnumerateInstanceVersion``
- This can be very useful for debugging but some features may not be
implemented correctly. (For developers only)
NIR passes enviroment variables
-------------------------------
The following are only applicable for drivers that uses NIR, as they
modify the behaviour for the common NIR_PASS and NIR_PASS_V macros, that
wrap calls to NIR lowering/optimizations.
``NIR_PRINT``
If defined, the resulting NIR shader will be printed out at each
succesful NIR lowering/optimization call.
``NIR_TEST_CLONE``
If defined, cloning a NIR shader would be tested at each succesful
NIR lowering/optimization call.
``NIR_TEST_SERIALIZE``
If defined, serialize and deserialize a NIR shader would be tested at
each succesful NIR lowering/optimization call.
Mesa Xlib driver environment variables
--------------------------------------
The following are only applicable to the Mesa Xlib software driver. See
the `Xlib software driver page <xlibdriver.html>`__ for details.
``MESA_RGB_VISUAL``
specifies the X visual and depth for RGB mode
``MESA_CI_VISUAL``
specifies the X visual and depth for CI mode
``MESA_BACK_BUFFER``
specifies how to implement the back color buffer, either ``pixmap``
or ``ximage``
``MESA_GAMMA``
gamma correction coefficients for red, green, blue channels
``MESA_XSYNC``
enable synchronous X behavior (for debugging only)
``MESA_GLX_FORCE_CI``
if set, force GLX to treat 8bpp visuals as CI visuals
``MESA_GLX_FORCE_ALPHA``
if set, forces RGB windows to have an alpha channel.
``MESA_GLX_DEPTH_BITS``
specifies default number of bits for depth buffer.
``MESA_GLX_ALPHA_BITS``
specifies default number of bits for alpha channel.
i945/i965 driver environment variables (non-Gallium)
----------------------------------------------------
``INTEL_NO_HW``
if set to 1, prevents batches from being submitted to the hardware.
This is useful for debugging hangs, etc.
``INTEL_DEBUG``
a comma-separated list of named flags, which do various things:
``ann``
annotate IR in assembly dumps
``aub``
dump batches into an AUB trace for use with simulation tools
``bat``
emit batch information
``blit``
emit messages about blit operations
``blorp``
emit messages about the blorp operations (blits & clears)
``buf``
emit messages about buffer objects
``clip``
emit messages about the clip unit (for old gens, includes the CLIP
program)
``color``
use color in output
``cs``
dump shader assembly for compute shaders
``do32``
generate compute shader SIMD32 programs even if workgroup size
doesn't exceed the SIMD16 limit
``dri``
emit messages about the DRI interface
``fbo``
emit messages about framebuffers
``fs``
dump shader assembly for fragment shaders
``gs``
dump shader assembly for geometry shaders
``hex``
print instruction hex dump with the disassembly
``l3``
emit messages about the new L3 state during transitions
``miptree``
emit messages about miptrees
``no8``
don't generate SIMD8 fragment shader
``no16``
suppress generation of 16-wide fragment shaders. useful for
debugging broken shaders
``nocompact``
disable instruction compaction
``nodualobj``
suppress generation of dual-object geometry shader code
``nofc``
disable fast clears
``norbc``
disable single sampled render buffer compression
``optimizer``
dump shader assembly to files at each optimization pass and
iteration that make progress
``perf``
emit messages about performance issues
``perfmon``
emit messages about ``AMD_performance_monitor``
``pix``
emit messages about pixel operations
``prim``
emit messages about drawing primitives
``reemit``
mark all state dirty on each draw call
``sf``
emit messages about the strips & fans unit (for old gens, includes
the SF program)
``shader_time``
record how much GPU time is spent in each shader
``spill_fs``
force spilling of all registers in the scalar backend (useful to
debug spilling code)
``spill_vec4``
force spilling of all registers in the vec4 backend (useful to
debug spilling code)
``state``
emit messages about state flag tracking
``submit``
emit batchbuffer usage statistics
``sync``
after sending each batch, emit a message and wait for that batch
to finish rendering
``tcs``
dump shader assembly for tessellation control shaders
``tes``
dump shader assembly for tessellation evaluation shaders
``tex``
emit messages about textures.
``urb``
emit messages about URB setup
``vert``
emit messages about vertex assembly
``vs``
dump shader assembly for vertex shaders
``INTEL_SCALAR_VS`` (or ``TCS``, ``TES``, ``GS``)
force scalar/vec4 mode for a shader stage (Gen8-9 only)
``INTEL_PRECISE_TRIG``
if set to 1, true or yes, then the driver prefers accuracy over
performance in trig functions.
Radeon driver environment variables (radeon, r200, and r300g)
-------------------------------------------------------------
``RADEON_NO_TCL``
if set, disable hardware-accelerated Transform/Clip/Lighting.
EGL environment variables
-------------------------
Mesa EGL supports different sets of environment variables. See the `Mesa
EGL <egl.html>`__ page for the details.
Gallium environment variables
-----------------------------
``GALLIUM_HUD``
draws various information on the screen, like framerate, cpu load,
driver statistics, performance counters, etc. Set
``GALLIUM_HUD=help`` and run e.g. ``glxgears`` for more info.
``GALLIUM_HUD_PERIOD``
sets the hud update rate in seconds (float). Use zero to update every
frame. The default period is 1/2 second.
``GALLIUM_HUD_VISIBLE``
control default visibility, defaults to true.
``GALLIUM_HUD_TOGGLE_SIGNAL``
toggle visibility via user specified signal. Especially useful to
toggle hud at specific points of application and disable for
unencumbered viewing the rest of the time. For example, set
``GALLIUM_HUD_VISIBLE`` to ``false`` and
``GALLIUM_HUD_TOGGLE_SIGNAL`` to ``10`` (``SIGUSR1``). Use
``kill -10 <pid>`` to toggle the hud as desired.
``GALLIUM_HUD_SCALE``
Scale hud by an integer factor, for high DPI displays. Default is 1.
``GALLIUM_HUD_DUMP_DIR``
specifies a directory for writing the displayed hud values into
files.
``GALLIUM_DRIVER``
useful in combination with ``LIBGL_ALWAYS_SOFTWARE=true`` for
choosing one of the software renderers ``softpipe``, ``llvmpipe`` or
``swr``.
``GALLIUM_LOG_FILE``
specifies a file for logging all errors, warnings, etc. rather than
stderr.
``GALLIUM_PRINT_OPTIONS``
if non-zero, print all the Gallium environment variables which are
used, and their current values.
``GALLIUM_DUMP_CPU``
if non-zero, print information about the CPU on start-up
``TGSI_PRINT_SANITY``
if set, do extra sanity checking on TGSI shaders and print any errors
to stderr.
``DRAW_FSE``
???
``DRAW_NO_FSE``
???
``DRAW_USE_LLVM``
if set to zero, the draw module will not use LLVM to execute shaders,
vertex fetch, etc.
``ST_DEBUG``
controls debug output from the Mesa/Gallium state tracker. Setting to
``tgsi``, for example, will print all the TGSI shaders. See
``src/mesa/state_tracker/st_debug.c`` for other options.
Clover environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``CLOVER_EXTRA_BUILD_OPTIONS``
allows specifying additional compiler and linker options. Specified
options are appended after the options set by the OpenCL program in
``clBuildProgram``.
``CLOVER_EXTRA_COMPILE_OPTIONS``
allows specifying additional compiler options. Specified options are
appended after the options set by the OpenCL program in
``clCompileProgram``.
``CLOVER_EXTRA_LINK_OPTIONS``
allows specifying additional linker options. Specified options are
appended after the options set by the OpenCL program in
``clLinkProgram``.
Softpipe driver environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``SOFTPIPE_DUMP_FS``
if set, the softpipe driver will print fragment shaders to stderr
``SOFTPIPE_DUMP_GS``
if set, the softpipe driver will print geometry shaders to stderr
``SOFTPIPE_NO_RAST``
if set, rasterization is no-op'd. For profiling purposes.
``SOFTPIPE_USE_LLVM``
if set, the softpipe driver will try to use LLVM JIT for vertex
shading processing.
LLVMpipe driver environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``LP_NO_RAST``
if set LLVMpipe will no-op rasterization
``LP_DEBUG``
a comma-separated list of debug options is accepted. See the source
code for details.
``LP_PERF``
a comma-separated list of options to selectively no-op various parts
of the driver. See the source code for details.
``LP_NUM_THREADS``
an integer indicating how many threads to use for rendering. Zero
turns off threading completely. The default value is the number of
CPU cores present.
VMware SVGA driver environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``SVGA_FORCE_SWTNL``
force use of software vertex transformation
``SVGA_NO_SWTNL``
don't allow software vertex transformation fallbacks (will often
result in incorrect rendering).
``SVGA_DEBUG``
for dumping shaders, constant buffers, etc. See the code for details.
``SVGA_EXTRA_LOGGING``
if set, enables extra logging to the ``vmware.log`` file, such as the
OpenGL program's name and command line arguments.
``SVGA_NO_LOGGING``
if set, disables logging to the ``vmware.log`` file. This is useful
when using Valgrind because it otherwise crashes when initializing
the host log feature.
See the driver code for other, lesser-used variables.
WGL environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~
``WGL_SWAP_INTERVAL``
to set a swap interval, equivalent to calling
``wglSwapIntervalEXT()`` in an application. If this environment
variable is set, application calls to ``wglSwapIntervalEXT()`` will
have no effect.
VA-API environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``VAAPI_MPEG4_ENABLED``
enable MPEG4 for VA-API, disabled by default.
VC4 driver environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``VC4_DEBUG``
a comma-separated list of named flags, which do various things:
``cl``
dump command list during creation
``qpu``
dump generated QPU instructions
``qir``
dump QPU IR during program compile
``nir``
dump NIR during program compile
``tgsi``
dump TGSI during program compile
``shaderdb``
dump program compile information for shader-db analysis
``perf``
print during performance-related events
``norast``
skip actual hardware execution of commands
``always_flush``
flush after each draw call
``always_sync``
wait for finish after each flush
``dump``
write a GPU command stream trace file (VC4 simulator only)
RADV driver environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``RADV_DEBUG``
a comma-separated list of named flags, which do various things:
``allbos``
force all allocated buffers to be referenced in submissions
``allentrypoints``
enable all device/instance entrypoints
``checkir``
validate the LLVM IR before LLVM compiles the shader
``errors``
display more info about errors
``info``
show GPU-related information
``metashaders``
dump internal meta shaders
``nobinning``
disable primitive binning
``nocache``
disable shaders cache
``nocompute``
disable compute queue
``nodcc``
disable Delta Color Compression (DCC) on images
``nodynamicbounds``
do not check OOB access for dynamic descriptors
``nofastclears``
disable fast color/depthstencil clears
``nohiz``
disable HIZ for depthstencil images
``noibs``
disable directly recording command buffers in GPU-visible memory
``noloadstoreopt``
disable LLVM SILoadStoreOptimizer pass
``nomemorycache``
disable memory shaders cache
``nongg``
disable NGG for GFX10+
``nooutoforder``
disable out-of-order rasterization
``noshaderballot``
disable shader ballot
``nothreadllvm``
disable LLVM threaded compilation
``preoptir``
dump LLVM IR before any optimizations
``shaders``
dump shaders
``shaderstats``
dump shader statistics
``spirv``
dump SPIR-V
``startup``
display info at startup
``syncshaders``
synchronize shaders after all draws/dispatches
``vmfaults``
check for VM memory faults via dmesg
``zerovram``
initialize all memory allocated in VRAM as zero
``RADV_FORCE_FAMILY``
create a null device to compile shaders without a AMD GPU (eg.
gfx900)
``RADV_PERFTEST``
a comma-separated list of named flags, which do various things:
``aco``
enable ACO experimental compiler
``bolist``
enable the global BO list
``cswave32``
enable wave32 for compute shaders (GFX10+)
``dccmsaa``
enable DCC for MSAA images
``dfsm``
enable dfsm
``gewave32``
enable wave32 for vertex/tess/geometry shaders (GFX10+)
``localbos``
enable local BOs
``pswave32``
enable wave32 for pixel shaders (GFX10+)
``shader_ballot``
enable shader ballot
``tccompatcmask``
enable TC-compat cmask for MSAA images
``RADV_SECURE_COMPILE_THREADS``
maximum number of secure compile threads (up to 32)
``RADV_TEX_ANISO``
force anisotropy filter (up to 16)
``RADV_TRACE_FILE``
generate cmdbuffer tracefiles when a GPU hang is detected
``ACO_DEBUG``
a comma-separated list of named flags, which do various things:
``validateir``
validate the ACO IR at various points of compilation (enabled by
default for debug/debugoptimized builds)
``validatera``
validate register assignment of ACO IR and catches many RA bugs
``perfwarn``
abort on some suboptimal code generation
radeonsi driver environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``AMD_DEBUG``
a comma-separated list of named flags, which do various things:
``nodma``
Disable SDMA
``nodmaclear``
Disable SDMA clears
``nodmacopyimage``
Disable SDMA image copies
``zerovram``
Clear VRAM allocations.
``nodcc``
Disable DCC.
``nodccclear``
Disable DCC fast clear.
``nodccfb``
Disable separate DCC on the main framebuffer
``nodccmsaa``
Disable DCC for MSAA
``nodpbb``
Disable DPBB.
``nodfsm``
Disable DFSM.
``notiling``
Disable tiling
``nofmask``
Disable MSAA compression
``nohyperz``
Disable Hyper-Z
``norbplus``
Disable RB+.
``no2d``
Disable 2D tiling
``info``
Print driver information
``tex``
Print texture info
``compute``
Print compute info
``vm``
Print virtual addresses when creating resources
``vs``
Print vertex shaders
``ps``
Print pixel shaders
``gs``
Print geometry shaders
``tcs``
Print tessellation control shaders
``tes``
Print tessellation evaluation shaders
``cs``
Print compute shaders
``noir``
Don't print the LLVM IR
``nonir``
Don't print NIR when printing shaders
``noasm``
Don't print disassembled shaders
``preoptir``
Print the LLVM IR before initial optimizations
``gisel``
Enable LLVM global instruction selector.
``w32ge``
Use Wave32 for vertex, tessellation, and geometry shaders.
``w32ps``
Use Wave32 for pixel shaders.
``w32cs``
Use Wave32 for computes shaders.
``w64ge``
Use Wave64 for vertex, tessellation, and geometry shaders.
``w64ps``
Use Wave64 for pixel shaders.
``w64cs``
Use Wave64 for computes shaders.
``checkir``
Enable additional sanity checks on shader IR
``mono``
Use old-style monolithic shaders compiled on demand
``nooptvariant``
Disable compiling optimized shader variants.
``forcedma``
Use SDMA for all operations when possible.
``nowc``
Disable GTT write combining
``check_vm``
Check VM faults and dump debug info.
``reserve_vmid``
Force VMID reservation per context.
``nogfx``
Disable graphics. Only multimedia compute paths can be used.
``nongg``
Disable NGG and use the legacy pipeline.
``nggc``
Always use NGG culling even when it can hurt.
``nonggc``
Disable NGG culling.
``alwayspd``
Always enable the primitive discard compute shader.
``pd``
Enable the primitive discard compute shader for large draw calls.
``nopd``
Disable the primitive discard compute shader.
``switch_on_eop``
Program WD/IA to switch on end-of-packet.
``nooutoforder``
Disable out-of-order rasterization
``dpbb``
Enable DPBB.
``dfsm``
Enable DFSM.
Other Gallium drivers have their own environment variables. These may
change frequently so the source code should be consulted for details.

View File

@ -1,51 +0,0 @@
<!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 Extensions</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Mesa Extensions</h1>
<p>
A number of extensions have been developed especially for Mesa.
The specifications follow.
</p>
<ul>
<li><a href="specs/OLD/MESA_agp_offset.spec">MESA_agp_offset.spec</a>
<li><a href="specs/MESA_copy_sub_buffer.spec">MESA_copy_sub_buffer.spec</a>
<li><a href="specs/MESA_drm_image.spec">MESA_drm_image.spec</a>
<li><a href="specs/MESA_multithread_makecurrent.spec">MESA_multithread_makecurrent.spec</a>
<li><a href="specs/OLD/MESA_packed_depth_stencil.spec">MESA_packed_depth_stencil.spec</a> (obsolete)
<li><a href="specs/MESA_pack_invert.spec">MESA_pack_invert.spec</a>
<li><a href="specs/MESA_pixmap_colormap.spec">MESA_pixmap_colormap.spec</a>
<li><a href="specs/OLD/MESA_program_debug.spec">MESA_program_debug.spec</a> (obsolete)
<li><a href="specs/MESA_release_buffers.spec">MESA_release_buffers.spec</a>
<li><a href="specs/OLD/MESA_resize_buffers.spec">MESA_resize_buffers.spec</a> (obsolete)
<li><a href="specs/OLD/MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</a>
<li><a href="specs/MESA_shader_debug.spec">MESA_shader_debug.spec</a>
<li><a href="specs/OLD/MESA_sprite_point.spec">MESA_sprite_point.spec</a> (obsolete)
<li><a href="specs/MESA_swap_control.spec">MESA_swap_control.spec</a>
<li><a href="specs/MESA_swap_frame_usage.spec">MESA_swap_frame_usage.spec</a>
<li><a href="specs/MESA_texture_array.spec">MESA_texture_array.spec</a>
<li><a href="specs/MESA_texture_signed_rgba.spec">MESA_texture_signed_rgba.spec</a>
<li><a href="specs/OLD/MESA_trace.spec">MESA_trace.spec</a> (obsolete)
<li><a href="specs/MESA_window_pos.spec">MESA_window_pos.spec</a>
<li><a href="specs/MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</a>
<li><a href="specs/WL_bind_wayland_display.spec">WL_bind_wayland_display.spec</a>
</ul>
</div>
</body>
</html>

31
docs/extensions.rst Normal file
View File

@ -0,0 +1,31 @@
Mesa Extensions
===============
A number of extensions have been developed especially for Mesa. The
specifications follow.
- `MESA_agp_offset.spec <specs/OLD/MESA_agp_offset.spec>`__
- `MESA_copy_sub_buffer.spec <specs/MESA_copy_sub_buffer.spec>`__
- `MESA_drm_image.spec <specs/MESA_drm_image.spec>`__
- `MESA_multithread_makecurrent.spec <specs/MESA_multithread_makecurrent.spec>`__
- `MESA_packed_depth_stencil.spec <specs/OLD/MESA_packed_depth_stencil.spec>`__
(obsolete)
- `MESA_pack_invert.spec <specs/MESA_pack_invert.spec>`__
- `MESA_pixmap_colormap.spec <specs/MESA_pixmap_colormap.spec>`__
- `MESA_program_debug.spec <specs/OLD/MESA_program_debug.spec>`__
(obsolete)
- `MESA_release_buffers.spec <specs/MESA_release_buffers.spec>`__
- `MESA_resize_buffers.spec <specs/OLD/MESA_resize_buffers.spec>`__
(obsolete)
- `MESA_set_3dfx_mode.spec <specs/OLD/MESA_set_3dfx_mode.spec>`__
- `MESA_shader_debug.spec <specs/MESA_shader_debug.spec>`__
- `MESA_sprite_point.spec <specs/OLD/MESA_sprite_point.spec>`__
(obsolete)
- `MESA_swap_control.spec <specs/MESA_swap_control.spec>`__
- `MESA_swap_frame_usage.spec <specs/MESA_swap_frame_usage.spec>`__
- `MESA_texture_array.spec <specs/MESA_texture_array.spec>`__
- `MESA_texture_signed_rgba.spec <specs/MESA_texture_signed_rgba.spec>`__
- `MESA_trace.spec <specs/OLD/MESA_trace.spec>`__ (obsolete)
- `MESA_window_pos.spec <specs/MESA_window_pos.spec>`__
- `MESA_ycbcr_texture.spec <specs/MESA_ycbcr_texture.spec>`__
- `WL_bind_wayland_display.spec <specs/WL_bind_wayland_display.spec>`__

View File

@ -1,382 +0,0 @@
<!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>Frequently Asked Questions</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Frequently Asked Questions</h1>
Last updated: 19 September 2018
<h2>Index</h2>
<ol>
<li><a href="#part1">High-level Questions and Answers</a></li>
<li><a href="#part2">Compilation and Installation Problems</a></li>
<li><a href="#part3">Runtime / Rendering Problems</a></li>
<li><a href="#part4">Developer Questions</a></li>
</ol>
<h2 id="part1">1. High-level Questions and Answers</h2>
<h3>1.1 What is Mesa?</h3>
<p>
Mesa is an open-source implementation of the OpenGL specification.
OpenGL is a programming library for writing interactive 3D applications.
See the <a href="https://www.opengl.org/">OpenGL website</a> for more
information.
</p>
<p>
Mesa 9.x supports the OpenGL 3.1 specification.
</p>
<h2>1.2 Does Mesa support/use graphics hardware?</h2>
<p>
Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI
drivers for X.org.
</p>
<ul>
<li>See the <a href="https://dri.freedesktop.org/">DRI website</a>
for more information.</li>
<li>See <a href="https://01.org/linuxgraphics">01.org</a>
for more information about Intel drivers.</li>
<li>See <a href="https://nouveau.freedesktop.org">nouveau.freedesktop.org</a>
for more information about Nouveau drivers.</li>
<li>See <a href="https://www.x.org/wiki/RadeonFeature">www.x.org/wiki/RadeonFeature</a>
for more information about Radeon drivers.</li>
</ul>
<h2>1.3 What purpose does Mesa serve today?</h2>
<p>
Hardware-accelerated OpenGL implementations are available for most popular
operating systems today.
Still, Mesa serves at least these purposes:
</p>
<ul>
<li>Mesa is used as the core of the open-source X.org DRI
hardware drivers.
</li>
<li>Mesa is quite portable and allows OpenGL to be used on systems
that have no other OpenGL solution.
</li>
<li>Software rendering with Mesa serves as a reference for validating the
hardware drivers.
</li>
<li>A software implementation of OpenGL is useful for experimentation,
such as testing new rendering techniques.
</li>
<li>Mesa can render images with deep color channels: 16-bit integer
and 32-bit floating point color channels are supported.
This capability is only now appearing in hardware.
</li>
<li>Mesa's internal limits (max lights, clip planes, texture size, etc) can be
changed for special needs (hardware limits are hard to overcome).
</li>
</ul>
<h2>1.4 What's the difference between "Stand-Alone" Mesa and the DRI drivers?</h2>
<p>
<em>Stand-alone Mesa</em> is the original incarnation of Mesa.
On systems running the X Window System it does all its rendering through
the Xlib API:
</p>
<ul>
<li>The GLX API is supported, but it's really just an emulation of the
real thing.
<li>The GLX wire protocol is not supported and there's no OpenGL extension
loaded by the X server.
<li>There is no hardware acceleration.
<li>The OpenGL library, <code>libGL.so</code>, contains everything (the
programming API, the GLX functions and all the rendering code).
</ul>
<p>
Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
within the DRI (Direct Rendering Infrastructure):
<ul>
<li>The <code>libGL.so</code> library provides the GL and GLX API functions,
a GLX protocol encoder, and a device driver loader.
<li>The device driver modules (such as <code>r200_dri.so</code>) contain
a built-in copy of the core Mesa code.
<li>The X server loads the GLX module.
The GLX module decodes incoming GLX protocol and dispatches the commands
to a rendering module.
For the DRI, this module is basically a software Mesa renderer.
</ul>
<h2>1.5 How do I upgrade my DRI installation to use a new Mesa release?</h2>
<p>
This wasn't easy in the past.
Now, the DRI drivers are included in the Mesa tree and can be compiled
separately from the X server.
Just follow the Mesa <a href="install.html">compilation instructions</a>.
</p>
<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
<p>
Yes, SGI's <a href="http://web.archive.org/web/20171010115110_/http://oss.sgi.com/projects/ogl-sample/index.html">
OpenGL Sample Implementation (SI)</a> is available.
The SI was written during the time that OpenGL was originally designed.
Unfortunately, development of the SI has stagnated.
Mesa is much more up to date with modern features and extensions.
</p>
<p>
<a href="https://sourceforge.net/projects/ogl-es/">Vincent</a> is
an open-source implementation of OpenGL ES for mobile devices.
<p>
<a href="http://web.archive.org/web/20130830162848/http://www.dsbox.com/minigl.html">miniGL</a>
is a subset of OpenGL for PalmOS devices. The website is gone, but the source
code can still be found on <a href="https://sourceforge.net/projects/minigl/">sourceforge.net</a>.
<p>
<a href="http://bellard.org/TinyGL/">TinyGL</a>
is a subset of OpenGL.
</p>
<p>
<a href="https://sourceforge.net/projects/softgl/">SoftGL</a>
is an OpenGL subset for mobile devices.
</p>
<p>
<a href="http://chromium.sourceforge.net/">Chromium</a>
isn't a conventional OpenGL implementation (it's layered upon OpenGL),
but it does export the OpenGL API. It allows tiled rendering, sort-last
rendering, etc.
</p>
<p>
<a href="http://www.ticalc.org/archives/files/fileinfo/361/36173.html">ClosedGL</a>
is an OpenGL subset library for TI graphing calculators.
</p>
<p>
There may be other open OpenGL implementations, but Mesa is the most
popular and feature-complete.
</p>
<h2 id="part2">2. Compilation and Installation Problems</h2>
<h3>2.1 What's the easiest way to install Mesa?</h3>
<p>
If you're using a Linux-based system, your distro CD most likely already
has Mesa packages (like RPM or DEB) which you can easily install.
</p>
<h3>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h3>
<p>
You're application is written in IRIS GL, not OpenGL.
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
entirely.
Mesa's not the solution.
</p>
<h3>2.3 Where is the GLUT library?</h3>
<p>
GLUT (OpenGL Utility Toolkit) is no longer in the separate
<code>MesaGLUT-x.y.z.tar.gz</code> file.
If you don't already have GLUT installed, you should grab
<a href="http://freeglut.sourceforge.net/">freeglut</a>.
</p>
<h3>2.4 Where is the GLw library?</h3>
<p>
GLw (OpenGL widget library) is now available from a separate <a href="https://gitlab.freedesktop.org/mesa/glw">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
</p>
<h2>2.5 What's the proper place for the libraries and headers?</h2>
<p>
On Linux-based systems you'll want to follow the
<a href="https://www.khronos.org/registry/OpenGL/ABI/">Linux ABI</a> standard.
Basically you'll want the following:
</p>
<dl>
<dt><code>/usr/include/GL/gl.h</code></dt>
<dd>the main OpenGL header</dd>
<dt><code>/usr/include/GL/glu.h</code></dt>
<dd>the OpenGL GLU (utility) header</dd>
<dt><code>/usr/include/GL/glx.h</code></dt>
<dd>the OpenGL GLX header</dd>
<dt><code>/usr/include/GL/glext.h</code></dt>
<dd>the OpenGL extensions header</dd>
<dt><code>/usr/include/GL/glxext.h</code></dt>
<dd>the OpenGL GLX extensions header</dd>
<dt><code>/usr/include/GL/osmesa.h</code></dt>
<dd>the Mesa off-screen rendering header</dd>
<dt><code>/usr/lib/libGL.so</code></dt>
<dd>a symlink to <code>libGL.so.1</code></dd>
<dt><code>/usr/lib/libGL.so.1</code></dt>
<dd>a symlink to <code>libGL.so.1.xyz</code></dd>
<dt><code>/usr/lib/libGL.so.xyz</code></dt>
<dd>the actual OpenGL/Mesa library. xyz denotes the
Mesa version number.
</dd>
</dl>
<p>
When configuring Mesa, there are three meson options that affect the install
location that you should take care with: <code>--prefix</code>,
<code>--libdir</code>, and <code>-D dri-drivers-path</code>. To install Mesa
into the system location where it will be available for all programs to use, set
<code>--prefix=/usr</code>. Set <code>--libdir</code> to where your Linux
distribution installs system libraries, usually either <code>/usr/lib</code> or
<code>/usr/lib64</code>. Set <code>-D dri-drivers-path</code> to the directory
where your Linux distribution installs DRI drivers. To find your system's DRI
driver directory, try executing <code>find /usr -type d -name dri</code>. For
example, if the <code>find</code> command listed <code>/usr/lib64/dri</code>,
then set <code>-D dri-drivers-path=/usr/lib64/dri</code>.
</p>
<p>
After determining the correct values for the install location, configure Mesa
with <code>meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx</code>
and then install with <code>sudo ninja install</code>.
</p>
<h2 id="part3">3. Runtime / Rendering Problems</h2>
<h3>3.1 Rendering is slow / why isn't my graphics hardware being used?</h3>
<p>
If Mesa can't use its hardware accelerated drivers it falls back on one of its software renderers.
(eg. classic swrast, softpipe or llvmpipe)
</p>
<p>
You can run the <code>glxinfo</code> program to learn about your OpenGL
library.
Look for the <code>OpenGL vendor</code> and <code>OpenGL renderer</code> values.
That will identify who's OpenGL library with which driver you're using and what sort of
hardware it has detected.
</p>
<p>
If you're using a hardware accelerated driver you want <code>direct rendering: Yes</code>.
</p>
<p>
If your DRI-based driver isn't working, go to the
<a href="https://dri.freedesktop.org/">DRI website</a> for trouble-shooting information.
</p>
<h3>3.2 I'm seeing errors in depth (Z) buffering. Why?</h3>
<p>
Make sure the ratio of the far to near clipping planes isn't too great.
Look
<a href="https://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm#0040">here</a>
for details.
</p>
<p>
Mesa uses a 16-bit depth buffer by default which is smaller and faster
to clear than a 32-bit buffer but not as accurate.
If you need a deeper you can modify the parameters to
<code>glXChooseVisual</code> in your code.
</p>
<h3>3.3 Why Isn't depth buffering working at all?</h3>
<p>
Be sure you're requesting a depth buffered-visual. If you set the
<code>MESA_DEBUG</code> environment variable it will warn you about trying
to enable depth testing when you don't have a depth buffer.
</p>
<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
called with a non-zero value for <code>GLX_DEPTH_SIZE</code>.
</p>
<p>This discussion applies to stencil buffers, accumulation buffers and
alpha channels too.
</p>
<h3>3.4 Why does <code>glGetString()</code> always return <code>NULL</code>?</h3>
<p>
Be sure you have an active/current OpenGL rendering context before
calling <code>glGetString</code>.
</p>
<h3>3.5 <code>GL_POINTS</code> and <code>GL_LINES</code> don't touch the
right pixels</h3>
<p>
If you're trying to draw a filled region by using <code>GL_POINTS</code> or
<code>GL_LINES</code> and seeing holes or gaps it's because of a float-to-int
rounding problem. But this is not a bug. See Appendix H of the OpenGL
Programming Guide - "OpenGL Correctness Tips". Basically, applying a
translation of (0.375, 0.375, 0.0) to your coordinates will fix the problem.
</p>
<h2 id="part4">4. Developer Questions</h2>
<h3>4.1 How can I contribute?</h3>
<p>
First, join the <a href="lists.html">mesa-dev mailing list</a>.
That's where Mesa development is discussed.
</p>
<p>
The <a href="https://www.opengl.org/documentation">
OpenGL Specification</a> is the bible for OpenGL implementation work.
You should read it.
</p>
<p>Most of the Mesa development work involves implementing new OpenGL
extensions, writing hardware drivers (for the DRI), and code optimization.
</p>
<h3>4.2 How do I write a new device driver?</h3>
<p>
Unfortunately, writing a device driver isn't easy.
It requires detailed understanding of OpenGL, the Mesa code, and your
target hardware/operating system.
3D graphics are not simple.
</p>
<p>
The best way to get started is to use an existing driver as your starting
point.
For a classic hardware driver, the i965 driver is a good example.
For a Gallium3D hardware driver, the r300g, r600g and the i915g are good examples.
</p>
<p>The DRI website has more information about writing hardware drivers.
The process isn't well document because the Mesa driver interface changes
over time, and we seldom have spare time for writing documentation.
That being said, many people have managed to figure out the process.
</p>
<p>
Joining the appropriate mailing lists and asking questions (and searching
the archives) is a good way to get information.
</p>
<h3>4.3 Why isn't <code>GL_EXT_texture_compression_s3tc</code> implemented in
Mesa?</h3>
<p>
Oh but it is! Prior to 2nd October 2017, the Mesa project did not include s3tc
support due to intellectual property (IP) and/or patent issues around the s3tc
algorithm.
</p>
<p>
As of Mesa 17.3.0, Mesa now officially supports s3tc, as the patent has expired.
</p>
<p>
In versions prior to this, a 3rd party <a href="https://dri.freedesktop.org/wiki/S3TC">
plug-in library</a> was required.
</p>
</div>
</body>
</html>

322
docs/faq.rst Normal file
View File

@ -0,0 +1,322 @@
Frequently Asked Questions
==========================
Last updated: 19 September 2018
Index
-----
#. `High-level Questions and Answers <#part1>`__
#. `Compilation and Installation Problems <#part2>`__
#. `Runtime / Rendering Problems <#part3>`__
#. `Developer Questions <#part4>`__
.. _part1:
1. High-level Questions and Answers
-----------------------------------
1.1 What is Mesa?
~~~~~~~~~~~~~~~~~
Mesa is an open-source implementation of the OpenGL specification.
OpenGL is a programming library for writing interactive 3D applications.
See the `OpenGL website <https://www.opengl.org/>`__ for more
information.
Mesa 9.x supports the OpenGL 3.1 specification.
1.2 Does Mesa support/use graphics hardware?
--------------------------------------------
Yes. Specifically, Mesa serves as the OpenGL core for the open-source
DRI drivers for X.org.
- See the `DRI website <https://dri.freedesktop.org/>`__ for more
information.
- See `01.org <https://01.org/linuxgraphics>`__ for more information
about Intel drivers.
- See `nouveau.freedesktop.org <https://nouveau.freedesktop.org>`__ for
more information about Nouveau drivers.
- See
`www.x.org/wiki/RadeonFeature <https://www.x.org/wiki/RadeonFeature>`__
for more information about Radeon drivers.
1.3 What purpose does Mesa serve today?
---------------------------------------
Hardware-accelerated OpenGL implementations are available for most
popular operating systems today. Still, Mesa serves at least these
purposes:
- Mesa is used as the core of the open-source X.org DRI hardware
drivers.
- Mesa is quite portable and allows OpenGL to be used on systems that
have no other OpenGL solution.
- Software rendering with Mesa serves as a reference for validating the
hardware drivers.
- A software implementation of OpenGL is useful for experimentation,
such as testing new rendering techniques.
- Mesa can render images with deep color channels: 16-bit integer and
32-bit floating point color channels are supported. This capability
is only now appearing in hardware.
- Mesa's internal limits (max lights, clip planes, texture size, etc)
can be changed for special needs (hardware limits are hard to
overcome).
1.4 What's the difference between "Stand-Alone" Mesa and the DRI drivers?
-------------------------------------------------------------------------
*Stand-alone Mesa* is the original incarnation of Mesa. On systems
running the X Window System it does all its rendering through the Xlib
API:
- The GLX API is supported, but it's really just an emulation of the
real thing.
- The GLX wire protocol is not supported and there's no OpenGL
extension loaded by the X server.
- There is no hardware acceleration.
- The OpenGL library, ``libGL.so``, contains everything (the
programming API, the GLX functions and all the rendering code).
Alternately, Mesa acts as the core for a number of OpenGL hardware
drivers within the DRI (Direct Rendering Infrastructure):
- The ``libGL.so`` library provides the GL and GLX API functions, a GLX
protocol encoder, and a device driver loader.
- The device driver modules (such as ``r200_dri.so``) contain a
built-in copy of the core Mesa code.
- The X server loads the GLX module. The GLX module decodes incoming
GLX protocol and dispatches the commands to a rendering module. For
the DRI, this module is basically a software Mesa renderer.
1.5 How do I upgrade my DRI installation to use a new Mesa release?
-------------------------------------------------------------------
This wasn't easy in the past. Now, the DRI drivers are included in the
Mesa tree and can be compiled separately from the X server. Just follow
the Mesa `compilation instructions <install.html>`__.
1.6 Are there other open-source implementations of OpenGL?
----------------------------------------------------------
Yes, SGI's `OpenGL Sample Implementation
(SI) <http://web.archive.org/web/20171010115110_/http://oss.sgi.com/projects/ogl-sample/index.html>`__
is available. The SI was written during the time that OpenGL was
originally designed. Unfortunately, development of the SI has stagnated.
Mesa is much more up to date with modern features and extensions.
`Vincent <https://sourceforge.net/projects/ogl-es/>`__ is an open-source
implementation of OpenGL ES for mobile devices.
`miniGL <http://web.archive.org/web/20130830162848/http://www.dsbox.com/minigl.html>`__
is a subset of OpenGL for PalmOS devices. The website is gone, but the
source code can still be found on
`sourceforge.net <https://sourceforge.net/projects/minigl/>`__.
`TinyGL <http://bellard.org/TinyGL/>`__ is a subset of OpenGL.
`SoftGL <https://sourceforge.net/projects/softgl/>`__ is an OpenGL
subset for mobile devices.
`Chromium <http://chromium.sourceforge.net/>`__ isn't a conventional
OpenGL implementation (it's layered upon OpenGL), but it does export the
OpenGL API. It allows tiled rendering, sort-last rendering, etc.
`ClosedGL <http://www.ticalc.org/archives/files/fileinfo/361/36173.html>`__
is an OpenGL subset library for TI graphing calculators.
There may be other open OpenGL implementations, but Mesa is the most
popular and feature-complete.
.. _part2:
2. Compilation and Installation Problems
----------------------------------------
2.1 What's the easiest way to install Mesa?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you're using a Linux-based system, your distro CD most likely already
has Mesa packages (like RPM or DEB) which you can easily install.
2.2 I get undefined symbols such as bgnpolygon, v3f, etc...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You're application is written in IRIS GL, not OpenGL. IRIS GL was the
predecessor to OpenGL and is a different thing (almost) entirely. Mesa's
not the solution.
2.3 Where is the GLUT library?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GLUT (OpenGL Utility Toolkit) is no longer in the separate
``MesaGLUT-x.y.z.tar.gz`` file. If you don't already have GLUT
installed, you should grab
`freeglut <http://freeglut.sourceforge.net/>`__.
2.4 Where is the GLw library?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GLw (OpenGL widget library) is now available from a separate `git
repository <https://gitlab.freedesktop.org/mesa/glw>`__. Unless you're
using very old Xt/Motif applications with OpenGL, you shouldn't need it.
2.5 What's the proper place for the libraries and headers?
----------------------------------------------------------
On Linux-based systems you'll want to follow the `Linux
ABI <https://www.khronos.org/registry/OpenGL/ABI/>`__ standard.
Basically you'll want the following:
``/usr/include/GL/gl.h``
the main OpenGL header
``/usr/include/GL/glu.h``
the OpenGL GLU (utility) header
``/usr/include/GL/glx.h``
the OpenGL GLX header
``/usr/include/GL/glext.h``
the OpenGL extensions header
``/usr/include/GL/glxext.h``
the OpenGL GLX extensions header
``/usr/include/GL/osmesa.h``
the Mesa off-screen rendering header
``/usr/lib/libGL.so``
a symlink to ``libGL.so.1``
``/usr/lib/libGL.so.1``
a symlink to ``libGL.so.1.xyz``
``/usr/lib/libGL.so.xyz``
the actual OpenGL/Mesa library. xyz denotes the Mesa version number.
When configuring Mesa, there are three meson options that affect the
install location that you should take care with: ``--prefix``,
``--libdir``, and ``-D dri-drivers-path``. To install Mesa into the
system location where it will be available for all programs to use, set
``--prefix=/usr``. Set ``--libdir`` to where your Linux distribution
installs system libraries, usually either ``/usr/lib`` or
``/usr/lib64``. Set ``-D dri-drivers-path`` to the directory where your
Linux distribution installs DRI drivers. To find your system's DRI
driver directory, try executing ``find /usr -type d -name dri``. For
example, if the ``find`` command listed ``/usr/lib64/dri``, then set
``-D dri-drivers-path=/usr/lib64/dri``.
After determining the correct values for the install location, configure
Mesa with
``meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx``
and then install with ``sudo ninja install``.
.. _part3:
3. Runtime / Rendering Problems
-------------------------------
3.1 Rendering is slow / why isn't my graphics hardware being used?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If Mesa can't use its hardware accelerated drivers it falls back on one
of its software renderers. (eg. classic swrast, softpipe or llvmpipe)
You can run the ``glxinfo`` program to learn about your OpenGL library.
Look for the ``OpenGL vendor`` and ``OpenGL renderer`` values. That will
identify who's OpenGL library with which driver you're using and what
sort of hardware it has detected.
If you're using a hardware accelerated driver you want
``direct rendering: Yes``.
If your DRI-based driver isn't working, go to the `DRI
website <https://dri.freedesktop.org/>`__ for trouble-shooting
information.
3.2 I'm seeing errors in depth (Z) buffering. Why?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure the ratio of the far to near clipping planes isn't too great.
Look
`here <https://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm#0040>`__
for details.
Mesa uses a 16-bit depth buffer by default which is smaller and faster
to clear than a 32-bit buffer but not as accurate. If you need a deeper
you can modify the parameters to ``glXChooseVisual`` in your code.
3.3 Why Isn't depth buffering working at all?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Be sure you're requesting a depth buffered-visual. If you set the
``MESA_DEBUG`` environment variable it will warn you about trying to
enable depth testing when you don't have a depth buffer.
Specifically, make sure ``glutInitDisplayMode`` is being called with
``GLUT_DEPTH`` or ``glXChooseVisual`` is being called with a non-zero
value for ``GLX_DEPTH_SIZE``.
This discussion applies to stencil buffers, accumulation buffers and
alpha channels too.
3.4 Why does ``glGetString()`` always return ``NULL``?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Be sure you have an active/current OpenGL rendering context before
calling ``glGetString``.
3.5 ``GL_POINTS`` and ``GL_LINES`` don't touch the right pixels
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you're trying to draw a filled region by using ``GL_POINTS`` or
``GL_LINES`` and seeing holes or gaps it's because of a float-to-int
rounding problem. But this is not a bug. See Appendix H of the OpenGL
Programming Guide - "OpenGL Correctness Tips". Basically, applying a
translation of (0.375, 0.375, 0.0) to your coordinates will fix the
problem.
.. _part4:
4. Developer Questions
----------------------
4.1 How can I contribute?
~~~~~~~~~~~~~~~~~~~~~~~~~
First, join the `mesa-dev mailing list <lists.html>`__. That's where
Mesa development is discussed.
The `OpenGL Specification <https://www.opengl.org/documentation>`__ is
the bible for OpenGL implementation work. You should read it.
Most of the Mesa development work involves implementing new OpenGL
extensions, writing hardware drivers (for the DRI), and code
optimization.
4.2 How do I write a new device driver?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unfortunately, writing a device driver isn't easy. It requires detailed
understanding of OpenGL, the Mesa code, and your target
hardware/operating system. 3D graphics are not simple.
The best way to get started is to use an existing driver as your
starting point. For a classic hardware driver, the i965 driver is a good
example. For a Gallium3D hardware driver, the r300g, r600g and the i915g
are good examples.
The DRI website has more information about writing hardware drivers. The
process isn't well document because the Mesa driver interface changes
over time, and we seldom have spare time for writing documentation. That
being said, many people have managed to figure out the process.
Joining the appropriate mailing lists and asking questions (and
searching the archives) is a good way to get information.
4.3 Why isn't ``GL_EXT_texture_compression_s3tc`` implemented in Mesa?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Oh but it is! Prior to 2nd October 2017, the Mesa project did not
include s3tc support due to intellectual property (IP) and/or patent
issues around the s3tc algorithm.
As of Mesa 17.3.0, Mesa now officially supports s3tc, as the patent has
expired.
In versions prior to this, a 3rd party `plug-in
library <https://dri.freedesktop.org/wiki/S3TC>`__ was required.

View File

@ -1,89 +0,0 @@
<!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>Help Wanted</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Help Wanted</h1>
<p>
We can always use more help with the Mesa project.
Here are some specific ideas and areas where help would be appreciated:
</p>
<ol>
<li>
<b>Driver patching and testing.</b>
Patches are often posted to the <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev mailing list</a>, but aren't
immediately checked into git because not enough people are testing them.
Just applying patches, testing and reporting back is helpful.
<li>
<b>Driver debugging.</b>
There are plenty of open bugs in the <a href="https://gitlab.freedesktop.org/mesa/mesa/-/issues">bug database</a>.
<li>
<b>Remove aliasing warnings.</b>
Enable gcc's <code>-Wstrict-aliasing=2 -fstrict-aliasing</code> arguments, and
track down aliasing issues in the code.
<li>
<b>Contribute more tests to
<a href="https://piglit.freedesktop.org/">Piglit</a>.</b>
</ol>
<p>
You can find some further To-do lists here:
</p>
<p>
<b>Common To-Do lists:</b>
</p>
<ul>
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/docs/features.txt">
<code>features.txt</code></a> - Status of OpenGL 3.x / 4.x features in
Mesa.</li>
</ul>
<p>
<b>Legacy Driver specific To-Do lists:</b>
</p>
<ul>
<li><a href="https://dri.freedesktop.org/wiki/R600ToDo">
<code>r600g</code></a> - Driver for ATI/AMD R600 - Northern Island.</li>
<li><a href="https://dri.freedesktop.org/wiki/R300ToDo">
<code>r300g</code></a> - Driver for ATI R300 - R500.</li>
</ul>
<p>
If you want to do something new in Mesa, first join the Mesa developer's
mailing list.
Then post a message to propose what you want to do, just to make sure
there's no issues.
</p>
<p>
Anyone is welcome to contribute code to the Mesa project.
By doing so, it's assumed that you agree to the code's licensing terms.
</p>
<p>
Finally:
</p>
<ol>
<li>Try to write high-quality code that follows the existing style.
<li>Use uniform indentation, write comments, use meaningful identifiers, etc.
<li>Test your code thoroughly. Include test programs if appropriate.
</ol>
</div>
</body>
</html>

47
docs/helpwanted.rst Normal file
View File

@ -0,0 +1,47 @@
Help Wanted
===========
We can always use more help with the Mesa project. Here are some
specific ideas and areas where help would be appreciated:
#. **Driver patching and testing.** Patches are often posted to the
`mesa-dev mailing
list <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`__,
but aren't immediately checked into git because not enough people are
testing them. Just applying patches, testing and reporting back is
helpful.
#. **Driver debugging.** There are plenty of open bugs in the `bug
database <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__.
#. **Remove aliasing warnings.** Enable gcc's
``-Wstrict-aliasing=2 -fstrict-aliasing`` arguments, and track down
aliasing issues in the code.
#. **Contribute more tests
to**\ `Piglit <https://piglit.freedesktop.org/>`__\ **.**
You can find some further To-do lists here:
**Common To-Do lists:**
- ```features.txt`` <https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/docs/features.txt>`__
- Status of OpenGL 3.x / 4.x features in Mesa.
**Legacy Driver specific To-Do lists:**
- ```r600g`` <https://dri.freedesktop.org/wiki/R600ToDo>`__ - Driver
for ATI/AMD R600 - Northern Island.
- ```r300g`` <https://dri.freedesktop.org/wiki/R300ToDo>`__ - Driver
for ATI R300 - R500.
If you want to do something new in Mesa, first join the Mesa developer's
mailing list. Then post a message to propose what you want to do, just
to make sure there's no issues.
Anyone is welcome to contribute code to the Mesa project. By doing so,
it's assumed that you agree to the code's licensing terms.
Finally:
#. Try to write high-quality code that follows the existing style.
#. Use uniform indentation, write comments, use meaningful identifiers,
etc.
#. Test your code thoroughly. Include test programs if appropriate.

File diff suppressed because it is too large Load Diff

2824
docs/index.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,254 +0,0 @@
<!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>Compiling and Installing</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Compiling and Installing</h1>
<ol>
<li><a href="#prereq-general">Prerequisites for building</a>
<ul>
<li><a href="#prereq-general">General prerequisites</a>
<li><a href="#prereq-dri">For DRI and hardware acceleration</a>
</ul>
<li><a href="#meson">Building with meson</a>
<li><a href="#scons">Building with SCons (Windows/Linux)</a>
<li><a href="#android">Building with AOSP (Android)</a>
<li><a href="#libs">Library Information</a>
<li><a href="#pkg-config">Building OpenGL programs with pkg-config</a>
</ol>
<h2 id="prereq-general">1. Prerequisites for building</h2>
<h3>1.1 General</h3>
<h4>Build system</h4>
<ul>
<li><a href="https://mesonbuild.com">meson</a> is required when building on *nix platforms and is supported on windows.
<li><a href="http://www.scons.org/">SCons</a> is an alternative for building on
Windows and Linux.
</li>
<li>Android Build system when building as native Android component. Meson
is used when when building ARC.
</li>
</ul>
<h4>Compiler</h4>
<p>
The following compilers are known to work, if you know of others or you're
willing to maintain support for other compiler get in touch.
</p>
<ul>
<li>GCC 4.2.0 or later (some parts of Mesa may require later versions)
<li>clang - exact minimum requirement is currently unknown.
<li>Microsoft Visual Studio 2015 or later is required, for building on Windows.
</ul>
<h4>Third party/extra tools.</h4>
<ul>
<li><a href="https://www.python.org/">Python</a> - Python is required.
When building with scons 2.7 is required.
When building with meson 3.5 or newer is required.
</li>
<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
Python Mako module is required. Version 0.8.0 or later should work.
</li>
<li>lex / yacc - for building the Mesa IR and GLSL compiler.
<p>
On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively,
(or later) should work.
On Windows with MinGW, install flex and bison with:
</p>
<pre>mingw-get install msys-flex msys-bison</pre>
<p>
For MSVC on Windows, install
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
</p>
</ul>
<p><strong>Note</strong>: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.</p>
<h3 id="prereq-dri">1.2 Requirements</h3>
<p>
The requirements depends on the features selected at configure stage.
Check/install the respective -devel package as prompted by the configure error
message.
</p>
<p>
Here are some common ways to retrieve most/all of the dependencies based on
the packaging tool used by your distro.
</p>
<pre>
zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES
yum-builddep mesa # yum Fedora, OpenSuse(?)
dnf builddep mesa # dnf Fedora
apt-get build-dep mesa # Debian and derivatives
... # others
</pre>
<h2 id="meson">2. Building with meson</h2>
<p><strong>Meson &gt;= 0.46.0 is required</strong></p>
<p>
Meson is the latest build system in mesa, it is currently able to build for
*nix systems like Linux and BSD, macOS, Haiku, and Windows.
</p>
<p>
The general approach is:
</p>
<pre>
meson builddir/
ninja -C builddir/
sudo ninja -C builddir/ install
</pre>
<p>On windows you can also use the visual studio backend</p>
<pre>
meson builddir --backend=vs
cd builddir
msbuild mesa.sln /m
</pre>
<p>
Please read the <a href="meson.html">detailed meson instructions</a>
for more information
</p>
<h2 id="scons">3. Building with SCons (Windows/Linux)</h2>
<p>
To build Mesa with SCons on Linux or Windows do
</p>
<pre>
scons
</pre>
<p>
The build output will be placed in
build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
by -debug for debug builds.
</p>
<p>
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
</p>
<pre>
scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
</pre>
<p>
This will create:
</p>
<ul>
<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll &mdash; Mesa + Gallium + softpipe (or llvmpipe), binary compatible with Windows's opengl32.dll
</ul>
<p>
Put them all in the same directory to test them.
Additional information is available in <a href="README.WIN32">README.WIN32</a>.
</p>
<h2 id="android">4. Building with AOSP (Android)</h2>
<p>
Currently one can build Mesa for Android as part of the AOSP project, yet
your experience might vary.
</p>
<p>
In order to achieve that one should update their local manifest to point to the
upstream repo, set the appropriate BOARD_GPU_DRIVERS and build the
libGLES_mesa library.
</p>
<p>
FINISHME: Improve on the instructions add references to Rob H repos/Jenkins,
Android-x86 and/or other resources.
</p>
<h2 id="libs">5. Library Information</h2>
<p>
When compilation has finished, look in the top-level <code>lib/</code>
(or <code>lib64/</code>) directory.
You'll see a set of library files similar to this:
</p>
<pre>
lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -&gt; libGL.so.1*
lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -&gt; libGL.so.1.5.060100*
-rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -&gt; libOSMesa.so.6*
lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -&gt; libOSMesa.so.6.1.060100*
-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
</pre>
<p>
<b>libGL</b> is the main OpenGL library (i.e. Mesa), while <b>libOSMesa</b>
is the OSMesa (Off-Screen) interface library.
</p>
<p>
If you built the DRI hardware drivers, you'll also see the DRI drivers:
</p>
<pre>
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so
-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
</pre>
<p>
If you built with Gallium support, look in lib/gallium/ for Gallium-based
versions of libGL and device drivers.
</p>
<h2 id="pkg-config">6. Building OpenGL programs with pkg-config</h2>
<p>
Running <code>ninja install</code> will install package configuration files
for the pkg-config utility.
</p>
<p>
When compiling your OpenGL application you can use pkg-config to determine
the proper compiler and linker flags.
</p>
<p>
For example, compiling and linking a GLUT application can be done with:
</p>
<pre>
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
</pre>
</div>
</body>
</html>

212
docs/install.rst Normal file
View File

@ -0,0 +1,212 @@
Compiling and Installing
========================
#. `Prerequisites for building <#prereq-general>`__
- `General prerequisites <#prereq-general>`__
- `For DRI and hardware acceleration <#prereq-dri>`__
#. `Building with meson <#meson>`__
#. `Building with SCons (Windows/Linux) <#scons>`__
#. `Building with AOSP (Android) <#android>`__
#. `Library Information <#libs>`__
#. `Building OpenGL programs with pkg-config <#pkg-config>`__
.. _prereq-general:
1. Prerequisites for building
-----------------------------
1.1 General
~~~~~~~~~~~
Build system
^^^^^^^^^^^^
- `meson <https://mesonbuild.com>`__ is required when building on \*nix
platforms and is supported on windows.
- `SCons <http://www.scons.org/>`__ is an alternative for building on
Windows and Linux.
- Android Build system when building as native Android component. Meson
is used when when building ARC.
Compiler
^^^^^^^^
The following compilers are known to work, if you know of others or
you're willing to maintain support for other compiler get in touch.
- GCC 4.2.0 or later (some parts of Mesa may require later versions)
- clang - exact minimum requirement is currently unknown.
- Microsoft Visual Studio 2015 or later is required, for building on
Windows.
Third party/extra tools.
^^^^^^^^^^^^^^^^^^^^^^^^
- `Python <https://www.python.org/>`__ - Python is required. When
building with scons 2.7 is required. When building with meson 3.5 or
newer is required.
- `Python Mako module <http://www.makotemplates.org/>`__ - Python Mako
module is required. Version 0.8.0 or later should work.
- lex / yacc - for building the Mesa IR and GLSL compiler.
On Linux systems, flex and bison versions 2.5.35 and 2.4.1,
respectively, (or later) should work. On Windows with MinGW, install
flex and bison with:
::
mingw-get install msys-flex msys-bison
For MSVC on Windows, install `Win
flex-bison <http://winflexbison.sourceforge.net/>`__.
**Note**: Some versions can be buggy (eg. flex 2.6.2) so do try others
if things fail.
.. _prereq-dri:
1.2 Requirements
~~~~~~~~~~~~~~~~
The requirements depends on the features selected at configure stage.
Check/install the respective -devel package as prompted by the configure
error message.
Here are some common ways to retrieve most/all of the dependencies based
on the packaging tool used by your distro.
::
zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES
yum-builddep mesa # yum Fedora, OpenSuse(?)
dnf builddep mesa # dnf Fedora
apt-get build-dep mesa # Debian and derivatives
... # others
.. _meson:
2. Building with meson
----------------------
**Meson >= 0.46.0 is required**
Meson is the latest build system in mesa, it is currently able to build
for \*nix systems like Linux and BSD, macOS, Haiku, and Windows.
The general approach is:
::
meson builddir/
ninja -C builddir/
sudo ninja -C builddir/ install
On windows you can also use the visual studio backend
::
meson builddir --backend=vs
cd builddir
msbuild mesa.sln /m
Please read the `detailed meson instructions <meson.html>`__ for more
information
.. _scons:
3. Building with SCons (Windows/Linux)
--------------------------------------
To build Mesa with SCons on Linux or Windows do
::
scons
The build output will be placed in
build/\ *platform*-*machine*-*debug*/..., where *platform* is for
example linux or windows, *machine* is x86 or x86_64, optionally
followed by -debug for debug builds.
To build Mesa with SCons for Windows on Linux using the MinGW
crosscompiler toolchain do
::
scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
This will create:
- build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa
+ Gallium + softpipe (or llvmpipe), binary compatible with Windows's
opengl32.dll
Put them all in the same directory to test them. Additional information
is available in `README.WIN32 <README.WIN32>`__.
.. _android:
4. Building with AOSP (Android)
-------------------------------
Currently one can build Mesa for Android as part of the AOSP project,
yet your experience might vary.
In order to achieve that one should update their local manifest to point
to the upstream repo, set the appropriate BOARD_GPU_DRIVERS and build
the libGLES_mesa library.
FINISHME: Improve on the instructions add references to Rob H
repos/Jenkins, Android-x86 and/or other resources.
.. _libs:
5. Library Information
----------------------
When compilation has finished, look in the top-level ``lib/`` (or
``lib64/``) directory. You'll see a set of library files similar to
this:
::
lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
-rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
**libGL** is the main OpenGL library (i.e. Mesa), while **libOSMesa** is
the OSMesa (Off-Screen) interface library.
If you built the DRI hardware drivers, you'll also see the DRI drivers:
::
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so
-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
If you built with Gallium support, look in lib/gallium/ for
Gallium-based versions of libGL and device drivers.
.. _pkg-config:
6. Building OpenGL programs with pkg-config
-------------------------------------------
Running ``ninja install`` will install package configuration files for
the pkg-config utility.
When compiling your OpenGL application you can use pkg-config to
determine the proper compiler and linker flags.
For example, compiling and linking a GLUT application can be done with:
::
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo

View File

@ -1,404 +0,0 @@
<!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>Introduction</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Introduction</h1>
<p>
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>
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>
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>
<h2>Project History</h2>
<p>
The Mesa project was originally started by Brian Paul.
Here's a short history of the project.
</p>
<p>
August, 1993: I begin working on Mesa in my spare time. The project
has no name at that point. I was simply interested in writing a simple
3D graphics library that used the then-new OpenGL API. I was partially
inspired by the <em>VOGL</em> library which emulated a subset of IRIS GL.
I had been programming with IRIS GL since 1991.
</p>
<p>
November 1994: I contact SGI to ask permission to distribute my OpenGL-like
graphics library on the internet. SGI was generally receptive to the
idea and after negotiations with SGI's legal department, I get permission
to release it.
</p>
<p>
February 1995: Mesa 1.0 is released on the internet. I expected that
a few people would be interested in it, but not thousands.
I was soon receiving patches, new features and thank-you notes on a
daily basis. That encouraged me to continue working on Mesa. The
name Mesa just popped into my head one day. SGI had asked me not to use
the terms <em>"Open"</em> or <em>"GL"</em> in the project name and I didn't
want to make up a new acronym. Later, I heard of the Mesa programming
language and the Mesa spreadsheet for NeXTStep.
</p>
<p>
In the early days, OpenGL wasn't available on too many systems.
It even took a while for SGI to support it across their product line.
Mesa filled a big hole during that time.
For a lot of people, Mesa was their first introduction to OpenGL.
I think SGI recognized that Mesa actually helped to promote
the OpenGL API, so they didn't feel threatened by the project.
</p>
<p>
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="https://www.ssec.wisc.edu/%7Ebillh/vis.html">Vis5D</a> project.
</p><p>
October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1 specification.
</p>
<p>
March 1997: Mesa 2.2 is released. It supports the new 3dfx Voodoo graphics
card via the Glide library. It's the first really popular hardware OpenGL
implementation for Linux.
</p>
<p>
September 1998: Mesa 3.0 is released. It's the first publicly-available
implementation of the OpenGL 1.2 API.
</p>
<p>
March 1999: I attend my first OpenGL ARB meeting. I contribute to the
development of several official OpenGL extensions over the years.
</p>
<p>
September 1999: I'm hired by Precision Insight, Inc. Mesa is a key
component of 3D hardware acceleration in the new DRI project for XFree86.
Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon follow.
</p>
<p>
October 2001: Mesa 4.0 is released.
It implements the OpenGL 1.3 specification.
</p>
<p>
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>
November 2002: Mesa 5.0 is released.
It implements the OpenGL 1.4 specification.
</p>
<p>
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>
<h2>Major Versions</h2>
<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>
<h3>Version 12.x features</h3>
<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>
<h3>Version 11.x features</h3>
<p>
Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
support OpenGL 4.1.
</p>
<h3>Version 10.x features</h3>
<p>
Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
support OpenGL 3.3.
</p>
<h3>Version 9.x features</h3>
<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>
<h3>Version 8.x features</h3>
<p>
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>
<h3>Version 7.x features</h3>
<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>
<h3>Version 6.x features</h3>
<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>
<h3>Version 5.x features</h3>
<p>
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
extensions incorporated as standard features:
</p>
<ul>
<li>GL_ARB_depth_texture
<li>GL_ARB_shadow
<li>GL_ARB_texture_env_crossbar
<li>GL_ARB_texture_mirror_repeat
<li>GL_ARB_window_pos
<li>GL_EXT_blend_color
<li>GL_EXT_blend_func_separate
<li>GL_EXT_blend_logic_op
<li>GL_EXT_blend_minmax
<li>GL_EXT_blend_subtract
<li>GL_EXT_fog_coord
<li>GL_EXT_multi_draw_arrays
<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>
<h3>Version 4.x features</h3>
<p>
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
extensions incorporated as standard features:
</p>
<ul>
<li>GL_ARB_multisample
<li>GL_ARB_multitexture
<li>GL_ARB_texture_border_clamp
<li>GL_ARB_texture_compression
<li>GL_ARB_texture_cube_map
<li>GL_ARB_texture_env_add
<li>GL_ARB_texture_env_combine
<li>GL_ARB_texture_env_dot3
<li>GL_ARB_transpose_matrix
</ul>
<h3>Version 3.x features</h3>
<p>
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
features:
</p>
<ul>
<li>BGR, BGRA and packed pixel formats
<li>New texture border clamp mode
<li>glDrawRangeElements()
<li>standard 3-D texturing
<li>advanced MIPMAP control
<li>separate specular color interpolation
</ul>
<h3>Version 2.x features</h3>
<p>
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
features.
</p>
<ul>
<li>Texture mapping:
<ul>
<li>glAreTexturesResident
<li>glBindTexture
<li>glCopyTexImage1D
<li>glCopyTexImage2D
<li>glCopyTexSubImage1D
<li>glCopyTexSubImage2D
<li>glDeleteTextures
<li>glGenTextures
<li>glIsTexture
<li>glPrioritizeTextures
<li>glTexSubImage1D
<li>glTexSubImage2D
</ul>
<li>Vertex Arrays:
<ul>
<li>glArrayElement
<li>glColorPointer
<li>glDrawElements
<li>glEdgeFlagPointer
<li>glIndexPointer
<li>glInterleavedArrays
<li>glNormalPointer
<li>glTexCoordPointer
<li>glVertexPointer
</ul>
<li>Client state management:
<ul>
<li>glDisableClientState
<li>glEnableClientState
<li>glPopClientAttrib
<li>glPushClientAttrib
</ul>
<li>Misc:
<ul>
<li>glGetPointer
<li>glIndexub
<li>glIndexubv
<li>glPolygonOffset
</ul>
</ul>
</div>
</body>
</html>

308
docs/intro.rst Normal file
View File

@ -0,0 +1,308 @@
Introduction
============
The Mesa project began as an open-source implementation of the
`OpenGL <https://www.opengl.org/>`__ specification - a system for
rendering interactive 3D graphics.
Over the years the project has grown to implement more graphics APIs,
including `OpenGL ES <https://www.khronos.org/opengles/>`__ (versions 1,
2, 3), `OpenCL <https://www.khronos.org/opencl/>`__,
`OpenMAX <https://www.khronos.org/openmax/>`__,
`VDPAU <https://en.wikipedia.org/wiki/VDPAU>`__, `VA
API <https://en.wikipedia.org/wiki/Video_Acceleration_API>`__,
`XvMC <https://en.wikipedia.org/wiki/X-Video_Motion_Compensation>`__ and
`Vulkan <https://www.khronos.org/vulkan/>`__.
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.
Mesa ties into several other open-source projects: the `Direct Rendering
Infrastructure <https://dri.freedesktop.org/>`__ and
`X.org <https://x.org>`__ to provide OpenGL support on Linux, FreeBSD
and other operating systems.
Project History
---------------
The Mesa project was originally started by Brian Paul. Here's a short
history of the project.
August, 1993: I begin working on Mesa in my spare time. The project has
no name at that point. I was simply interested in writing a simple 3D
graphics library that used the then-new OpenGL API. I was partially
inspired by the *VOGL* library which emulated a subset of IRIS GL. I had
been programming with IRIS GL since 1991.
November 1994: I contact SGI to ask permission to distribute my
OpenGL-like graphics library on the internet. SGI was generally
receptive to the idea and after negotiations with SGI's legal
department, I get permission to release it.
February 1995: Mesa 1.0 is released on the internet. I expected that a
few people would be interested in it, but not thousands. I was soon
receiving patches, new features and thank-you notes on a daily basis.
That encouraged me to continue working on Mesa. The name Mesa just
popped into my head one day. SGI had asked me not to use the terms
*"Open"* or *"GL"* in the project name and I didn't want to make up a
new acronym. Later, I heard of the Mesa programming language and the
Mesa spreadsheet for NeXTStep.
In the early days, OpenGL wasn't available on too many systems. It even
took a while for SGI to support it across their product line. Mesa
filled a big hole during that time. For a lot of people, Mesa was their
first introduction to OpenGL. I think SGI recognized that Mesa actually
helped to promote 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
`Vis5D <https://www.ssec.wisc.edu/%7Ebillh/vis.html>`__ project.
October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1
specification.
March 1997: Mesa 2.2 is released. It supports the new 3dfx Voodoo
graphics card via the Glide library. It's the first really popular
hardware OpenGL implementation for Linux.
September 1998: Mesa 3.0 is released. It's the first publicly-available
implementation of the OpenGL 1.2 API.
March 1999: I attend my first OpenGL ARB meeting. I contribute to the
development of several official OpenGL extensions over the years.
September 1999: I'm hired by Precision Insight, Inc. Mesa is a key
component of 3D hardware acceleration in the new DRI project for
XFree86. Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon
follow.
October 2001: Mesa 4.0 is released. It implements the OpenGL 1.3
specification.
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.
November 2002: Mesa 5.0 is released. It implements the OpenGL 1.4
specification.
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.
June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1
specification and OpenGL Shading Language.
2008: Keith Whitwell and other Tungsten Graphics employees develop
`Gallium <https://en.wikipedia.org/wiki/Gallium3D>`__ - 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.
February 2012: Mesa 8.0 is released, implementing the OpenGL 3.0
specification and version 1.30 of the OpenGL Shading Language.
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.
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).
Work continues on the drivers and core Mesa to implement newer versions
of the OpenGL, OpenGL ES and Vulkan specifications.
Major Versions
--------------
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.
Version 12.x features
~~~~~~~~~~~~~~~~~~~~~
Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
support OpenGL 4.3.
Initial support for Vulkan is also included.
Version 11.x features
~~~~~~~~~~~~~~~~~~~~~
Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
support OpenGL 4.1.
Version 10.x features
~~~~~~~~~~~~~~~~~~~~~
Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
support OpenGL 3.3.
Version 9.x features
~~~~~~~~~~~~~~~~~~~~
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.
Version 9.0 of Mesa also included the first release of the Clover state
tracker for OpenCL.
Version 8.x features
~~~~~~~~~~~~~~~~~~~~
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.
Version 7.x features
~~~~~~~~~~~~~~~~~~~~
Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature of
OpenGL 2.x is the OpenGL Shading Language.
Version 6.x features
~~~~~~~~~~~~~~~~~~~~
Version 6.x of Mesa implements the OpenGL 1.5 API with the following
extensions incorporated as standard features:
- GL_ARB_occlusion_query
- GL_ARB_vertex_buffer_object
- GL_EXT_shadow_funcs
Also note that several OpenGL tokens were renamed in OpenGL 1.5 for the
sake of consistency. The old tokens are still available.
::
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
See the `OpenGL
specification <https://www.opengl.org/documentation/spec.html>`__ for
more details.
Version 5.x features
~~~~~~~~~~~~~~~~~~~~
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
extensions incorporated as standard features:
- GL_ARB_depth_texture
- GL_ARB_shadow
- GL_ARB_texture_env_crossbar
- GL_ARB_texture_mirror_repeat
- GL_ARB_window_pos
- GL_EXT_blend_color
- GL_EXT_blend_func_separate
- GL_EXT_blend_logic_op
- GL_EXT_blend_minmax
- GL_EXT_blend_subtract
- GL_EXT_fog_coord
- GL_EXT_multi_draw_arrays
- GL_EXT_point_parameters
- GL_EXT_secondary_color
- GL_EXT_stencil_wrap
- GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter)
- GL_SGIS_generate_mipmap
Version 4.x features
~~~~~~~~~~~~~~~~~~~~
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
extensions incorporated as standard features:
- GL_ARB_multisample
- GL_ARB_multitexture
- GL_ARB_texture_border_clamp
- GL_ARB_texture_compression
- GL_ARB_texture_cube_map
- GL_ARB_texture_env_add
- GL_ARB_texture_env_combine
- GL_ARB_texture_env_dot3
- GL_ARB_transpose_matrix
Version 3.x features
~~~~~~~~~~~~~~~~~~~~
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
features:
- BGR, BGRA and packed pixel formats
- New texture border clamp mode
- glDrawRangeElements()
- standard 3-D texturing
- advanced MIPMAP control
- separate specular color interpolation
Version 2.x features
~~~~~~~~~~~~~~~~~~~~
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
features.
- Texture mapping:
- glAreTexturesResident
- glBindTexture
- glCopyTexImage1D
- glCopyTexImage2D
- glCopyTexSubImage1D
- glCopyTexSubImage2D
- glDeleteTextures
- glGenTextures
- glIsTexture
- glPrioritizeTextures
- glTexSubImage1D
- glTexSubImage2D
- Vertex Arrays:
- glArrayElement
- glColorPointer
- glDrawElements
- glEdgeFlagPointer
- glIndexPointer
- glInterleavedArrays
- glNormalPointer
- glTexCoordPointer
- glVertexPointer
- Client state management:
- glDisableClientState
- glEnableClientState
- glPopClientAttrib
- glPushClientAttrib
- Misc:
- glGetPointer
- glIndexub
- glIndexubv
- glPolygonOffset

View File

@ -1,123 +0,0 @@
<!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>License and Copyright</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>License and Copyright</h1>
<h2>Disclaimer</h2>
<p>
Mesa is a 3-D graphics library with an API which is very similar to
that of <a href="https://www.opengl.org/">OpenGL</a><sup>[<a href="#trademark">1</a>]</sup>.
To the extent that Mesa utilizes the OpenGL command syntax or state
machine, it is being used with authorization from <a
href="https://www.sgi.com/">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.
</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>.
</p>
<p>
<a id="trademark">[1]</a>: OpenGL is a trademark of <a
href="https://www.sgi.com/">Silicon Graphics Incorporated</a>.
</p>
<h2>License / Copyright Information</h2>
<p>
The Mesa distribution consists of several components. Different copyrights
and licenses apply to different components.
For example, the GLX client code uses the SGI Free Software License B, and
some of the Mesa device drivers are copyrighted by their authors.
See below for a list of Mesa's main components and the license for each.
</p>
<p>
The core Mesa library is licensed according to the terms of the MIT license.
This allows integration with the XFree86, Xorg and DRI projects.
</p>
<p>
The default Mesa license is as follows:
</p>
<pre>
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
</pre>
<h2>Attention, Contributors</h2>
<p>
When contributing to the Mesa project you must agree to the licensing terms
of the component to which you're contributing.
The following section lists the primary components of the Mesa distribution
and their respective licenses.
</p>
<h2>Mesa Component Licenses</h2>
<pre>
Component Location License
------------------------------------------------------------------
Main Mesa code src/mesa/ MIT
Device drivers src/mesa/drivers/* MIT, generally
Gallium code src/gallium/ MIT
Ext headers include/GL/glext.h Khronos
include/GL/glxext.h
GLX client code src/glx/ SGI Free Software License B
C11 thread include/c11/threads*.h Boost (permissive)
emulation
</pre>
<p>
In general, consult the source files for license terms.
</p>
</div>
</body>
</html>

90
docs/license.rst Normal file
View File

@ -0,0 +1,90 @@
License and Copyright
=====================
Disclaimer
----------
Mesa is a 3-D graphics library with an API which is very similar to that
of
`OpenGL <https://www.opengl.org/>`__\ :sup:`[`\ `1 <#trademark>`__\ :sup:`]`.
To the extent that Mesa utilizes the OpenGL command syntax or state
machine, it is being used with authorization from `Silicon Graphics,
Inc. <https://www.sgi.com/>`__\ (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.
Please do not refer to the library as *MesaGL* (for legal reasons). It's
just *Mesa* or *The Mesa 3-D graphics library*.
[1]: OpenGL is a trademark of `Silicon Graphics
Incorporated <https://www.sgi.com/>`__.
License / Copyright Information
-------------------------------
The Mesa distribution consists of several components. Different
copyrights and licenses apply to different components. For example, the
GLX client code uses the SGI Free Software License B, and some of the
Mesa device drivers are copyrighted by their authors. See below for a
list of Mesa's main components and the license for each.
The core Mesa library is licensed according to the terms of the MIT
license. This allows integration with the XFree86, Xorg and DRI
projects.
The default Mesa license is as follows:
::
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Attention, Contributors
-----------------------
When contributing to the Mesa project you must agree to the licensing
terms of the component to which you're contributing. The following
section lists the primary components of the Mesa distribution and their
respective licenses.
Mesa Component Licenses
-----------------------
::
Component Location License
------------------------------------------------------------------
Main Mesa code src/mesa/ MIT
Device drivers src/mesa/drivers/* MIT, generally
Gallium code src/gallium/ MIT
Ext headers include/GL/glext.h Khronos
include/GL/glxext.h
GLX client code src/glx/ SGI Free Software License B
C11 thread include/c11/threads*.h Boost (permissive)
emulation
In general, consult the source files for license terms.

View File

@ -1,97 +0,0 @@
<!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>Mailing Lists</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Mailing Lists</h1>
<p>There are four Mesa 3D / DRI mailing lists:
</p>
<ul>
<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-users">mesa-users</a>
- intended for end-users of Mesa and DRI drivers. Newbie questions are OK,
but please try the general OpenGL resources and Mesa/DRI documentation first.</p>
</li>
<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a>
- for Mesa, Gallium and DRI development
discussion. Not for beginners.</p>
</li>
<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-commit">mesa-commit</a>
- relays git check-in messages (for developers).
In general, people should not post to this list.</p>
</li>
<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-announce">mesa-announce</a>
- announcements of new Mesa
versions are sent to this list. Very low traffic.</p>
</li>
<li><p><a href="https://lists.freedesktop.org/mailman/listinfo/piglit">piglit</a>
- for Piglit (OpenGL driver testing framework) discussion.</p>
</li>
</ul>
<p>
<b>NOTE</b>: You <b>must</b> subscribe to these lists in order to post to them.
If you try to post to a list and you're not a subscriber (or if you try to post
from a different email address than you subscribed with) your posting will be
held for an indefinite period or may be discarded entirely.
</p>
<p>
Follow the links above for list archives.
</p>
<p>
The old Mesa lists hosted at SourceForge are no longer in use.
The archives are still available, however:
<a href="https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-announce">mesa3d-announce</a>,
<a href="https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-users">mesa3d-users</a>,
<a href="https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-dev">mesa3d-dev</a>.
</p>
<p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD
kernels, see the
<a href="https://dri.freedesktop.org/wiki/MailingLists">DRI wiki</a>.
</p>
<h2>IRC</h2>
<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
on <a href="https://webchat.freenode.net/">irc.freenode.net</a>
</p>
<h2>OpenGL Forums</h2>
<p>
Here are some other OpenGL-related forums you might find useful:
</p>
<ul>
<li><a href="https://www.opengl.org/discussion_boards/">OpenGL discussion forums</a>
at www.opengl.org</li>
<li>Usenet newsgroups:
<ul>
<li>comp.graphics.algorithms</li>
<li>comp.graphics.api.opengl</li>
<li>comp.os.linux.x</li>
</ul>
</ul>
</div>
</body>
</html>

62
docs/lists.rst Normal file
View File

@ -0,0 +1,62 @@
Mailing Lists
=============
There are four Mesa 3D / DRI mailing lists:
- `mesa-users <https://lists.freedesktop.org/mailman/listinfo/mesa-users>`__
- intended for end-users of Mesa and DRI drivers. Newbie questions
are OK, but please try the general OpenGL resources and Mesa/DRI
documentation first.
- `mesa-dev <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`__
- for Mesa, Gallium and DRI development discussion. Not for
beginners.
- `mesa-commit <https://lists.freedesktop.org/mailman/listinfo/mesa-commit>`__
- relays git check-in messages (for developers). In general, people
should not post to this list.
- `mesa-announce <https://lists.freedesktop.org/mailman/listinfo/mesa-announce>`__
- announcements of new Mesa versions are sent to this list. Very low
traffic.
- `piglit <https://lists.freedesktop.org/mailman/listinfo/piglit>`__ -
for Piglit (OpenGL driver testing framework) discussion.
**NOTE**: You **must** subscribe to these lists in order to post to
them. If you try to post to a list and you're not a subscriber (or if
you try to post from a different email address than you subscribed with)
your posting will be held for an indefinite period or may be discarded
entirely.
Follow the links above for list archives.
The old Mesa lists hosted at SourceForge are no longer in use. The
archives are still available, however:
`mesa3d-announce <https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-announce>`__,
`mesa3d-users <https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-users>`__,
`mesa3d-dev <https://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-dev>`__.
For mailing lists about Direct Rendering Modules (drm) in Linux/BSD
kernels, see the `DRI
wiki <https://dri.freedesktop.org/wiki/MailingLists>`__.
IRC
---
join `#dri-devel channel <irc://chat.freenode.net#dri-devel>`__ on
`irc.freenode.net <https://webchat.freenode.net/>`__
OpenGL Forums
-------------
Here are some other OpenGL-related forums you might find useful:
- `OpenGL discussion
forums <https://www.opengl.org/discussion_boards/>`__ at
www.opengl.org
- Usenet newsgroups:
- comp.graphics.algorithms
- comp.graphics.api.opengl
- comp.os.linux.x

View File

@ -1,343 +0,0 @@
<!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>Gallium LLVMpipe Driver</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Gallium LLVMpipe Driver</h1>
<h2>Introduction</h2>
<p>
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
do runtime code generation.
Shaders, point/line/triangle rasterization and vertex processing are
implemented with LLVM IR which is translated to x86, x86-64, or ppc64le machine
code.
Also, the driver is multithreaded to take advantage of multiple CPU cores
(up to 8 at this time).
It's the fastest software rasterizer for Mesa.
</p>
<h2>Requirements</h2>
<ul>
<li>
<p>
For x86 or amd64 processors, 64-bit mode is recommended.
Support for SSE2 is strongly encouraged. Support for SSE3 and SSE4.1 will
yield the most efficient code. The fewer features the CPU has the more
likely it is that you will run into underperforming, buggy, or incomplete code.
</p>
<p>
For ppc64le processors, use of the Altivec feature (the Vector
Facility) is recommended if supported; use of the VSX feature (the
Vector-Scalar Facility) is recommended if supported AND Mesa is
built with LLVM version 4.0 or later.
</p>
<p>
See <code>/proc/cpuinfo</code> to know what your CPU supports.
</p>
</li>
<li>
<p>Unless otherwise stated, LLVM version 3.4 is recommended; 3.3 or later is required.</p>
<p>
For Linux, on a recent Debian based distribution do:
</p>
<pre>
aptitude install llvm-dev
</pre>
<p>
If you want development snapshot builds of LLVM for Debian and derived
distributions like Ubuntu, you can use the APT repository at <a
href="https://apt.llvm.org/" title="Debian Development packages for LLVM"
>apt.llvm.org</a>, which are maintained by Debian's LLVM maintainer.
</p>
<p>
For a RPM-based distribution do:
</p>
<pre>
yum install llvm-devel
</pre>
<p>
For Windows you will need to build LLVM from source with MSVC or MINGW
(either natively or through cross compilers) and CMake, and set the
<code>LLVM</code> environment variable to the directory you installed
it to.
LLVM will be statically linked, so when building on MSVC it needs to be
built with a matching CRT as Mesa, and you'll need to pass
<code>-DLLVM_USE_CRT_xxx=yyy</code> as described below.
</p>
<table border="1">
<tr>
<th rowspan="2">LLVM build-type</th>
<th colspan="2" align="center">Mesa build-type</th>
</tr>
<tr>
<th>debug,checked</th>
<th>release,profile</th>
</tr>
<tr>
<th>Debug</th>
<td><code>-DLLVM_USE_CRT_DEBUG=MTd</code></td>
<td><code>-DLLVM_USE_CRT_DEBUG=MT</code></td>
</tr>
<tr>
<th>Release</th>
<td><code>-DLLVM_USE_CRT_RELEASE=MTd</code></td>
<td><code>-DLLVM_USE_CRT_RELEASE=MT</code></td>
</tr>
</table>
<p>
You can build only the x86 target by passing
<code>-DLLVM_TARGETS_TO_BUILD=X86</code> to cmake.
</p>
</li>
<li>
<p>scons (optional)</p>
</li>
</ul>
<h2>Building</h2>
To build everything on Linux invoke scons as:
<pre>
scons build=debug libgl-xlib
</pre>
Alternatively, you can build it with meson with:
<pre>
mkdir build
cd build
meson -D glx=gallium-xlib -D gallium-drivers=swrast
ninja
</pre>
but the rest of these instructions assume that scons is used.
For Windows the procedure is similar except the target:
<pre>
scons platform=windows build=debug libgl-gdi
</pre>
<h2>Using</h2>
<h3>Linux</h3>
<p>On Linux, building will create a drop-in alternative for
<code>libGL.so</code> into</p>
<pre>
build/foo/gallium/targets/libgl-xlib/libGL.so
</pre>
or
<pre>
lib/gallium/libGL.so
</pre>
<p>To use it set the <code>LD_LIBRARY_PATH</code> environment variable
accordingly.</p>
<p>For performance evaluation pass <code>build=release</code> to scons,
and use the corresponding lib directory without the <code>-debug</code>
suffix.</p>
<h3>Windows</h3>
<p>
On Windows, building will create
<code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
which is a drop-in alternative for system's <code>opengl32.dll</code>. To use
it put it in the same directory as your application. It can also be used by
replacing the native ICD driver, but it's quite an advanced usage, so if you
need to ask, don't even try it.
</p>
<p>
There is however an easy way to replace the OpenGL software renderer that comes
with Microsoft Windows 7 (or later) with llvmpipe (that is, on systems without
any OpenGL drivers):
</p>
<ul>
<li><p>copy <code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
to <code>C:\Windows\SysWOW64\mesadrv.dll</code>
</p></li>
<li><p>load this registry settings:</p>
<pre>REGEDIT4
; https://technet.microsoft.com/en-us/library/cc749368.aspx
; https://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL]
"DLL"="mesadrv.dll"
"DriverVersion"=dword:00000001
"Flags"=dword:00000001
"Version"=dword:00000002
</pre>
</li>
<li>Ditto for 64 bits drivers if you need them.</li>
</ul>
<h2>Profiling</h2>
<p>
To profile llvmpipe you should build as
</p>
<pre>
scons build=profile &lt;same-as-before&gt;
</pre>
<p>
This will ensure that frame pointers are used both in C and JIT functions, and
that no tail call optimizations are done by gcc.
</p>
<h3>Linux perf integration</h3>
<p>
On Linux, it is possible to have symbol resolution of JIT code with <a href="https://perf.wiki.kernel.org/">Linux perf</a>:
</p>
<pre>
perf record -g /my/application
perf report
</pre>
<p>
When run inside Linux perf, llvmpipe will create a
<code>/tmp/perf-XXXXX.map</code> file with symbol address table. It also
dumps assembly code to <code>/tmp/perf-XXXXX.map.asm</code>, which can be
used by the <code>bin/perf-annotate-jit.py</code> script to produce
disassembly of the generated code annotated with the samples.
</p>
<p>You can obtain a call graph via
<a href="https://github.com/jrfonseca/gprof2dot#linux-perf">Gprof2Dot</a>.</p>
<h2>Unit testing</h2>
<p>
Building will also create several unit tests in
<code>build/linux-???-debug/gallium/drivers/llvmpipe</code>:
</p>
<ul>
<li> <code>lp_test_blend</code>: blending
<li> <code>lp_test_conv</code>: SIMD vector conversion
<li> <code>lp_test_format</code>: pixel unpacking/packing
</ul>
<p>
Some of these tests can output results and benchmarks to a tab-separated file
for later analysis, e.g.:
</p>
<pre>
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
</pre>
<h2>Development Notes</h2>
<ul>
<li>
When looking at this code for the first time, start in lp_state_fs.c, and
then skim through the <code>lp_bld_*</code> functions called there, and
the comments at the top of the <code>lp_bld_*.c</code> functions.
</li>
<li>
The driver-independent parts of the LLVM / Gallium code are found in
<code>src/gallium/auxiliary/gallivm/</code>. The filenames and function
prefixes need to be renamed from <code>lp_bld_</code> to something else
though.
</li>
<li>
We use LLVM-C bindings for now. They are not documented, but follow the C++
interfaces very closely, and appear to be complete enough for code
generation. See
<a href="https://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html">
this stand-alone example</a>. See the <code>llvm-c/Core.h</code> file for
reference.
</li>
</ul>
<h2 id="recommended_reading">Recommended Reading</h2>
<ul>
<li>
<p>Rasterization</p>
<ul>
<li><a href="https://www.cs.unc.edu/~olano/papers/2dh-tri/">Triangle Scan Conversion using 2D Homogeneous Coordinates</a></li>
<li><a href="http://www.drdobbs.com/parallel/rasterization-on-larrabee/217200602">Rasterization on Larrabee</a> (<a href="http://devmaster.net/posts/2887/rasterization-on-larrabee">DevMaster copy</a>)</li>
<li><a href="http://devmaster.net/posts/6133/rasterization-using-half-space-functions">Rasterization using half-space functions</a></li>
<li><a href="http://devmaster.net/posts/6145/advanced-rasterization">Advanced Rasterization</a></li>
<li><a href="https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/">Optimizing Software Occlusion Culling</a></li>
</ul>
</li>
<li>
<p>Texture sampling</p>
<ul>
<li><a href="http://chrishecker.com/Miscellaneous_Technical_Articles#Perspective_Texture_Mapping">Perspective Texture Mapping</a></li>
<li><a href="https://www.flipcode.com/archives/Texturing_As_In_Unreal.shtml">Texturing As In Unreal</a></li>
<li><a href="http://www.gamasutra.com/view/feature/3301/runtime_mipmap_filtering.php">Run-Time MIP-Map Filtering</a></li>
<li><a href="http://alt.3dcenter.org/artikel/2003/10-26_a_english.php">Will "brilinear" filtering persist?</a></li>
<li><a href="http://ixbtlabs.com/articles2/gffx/nv40-rx800-3.html">Trilinear filtering</a></li>
<li><a href="http://devmaster.net/posts/12785/texture-swizzling">Texture Swizzling</a></li>
</ul>
</li>
<li>
<p>SIMD</p>
<ul>
<li><a href="http://www.cdl.uni-saarland.de/projects/wfv/#header4">Whole-Function Vectorization</a></li>
</ul>
</li>
<li>
<p>Optimization</p>
<ul>
<li><a href="http://www.drdobbs.com/optimizing-pixomatic-for-modern-x86-proc/184405807">Optimizing Pixomatic For Modern x86 Processors</a></li>
<li><a href="http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html">Intel 64 and IA-32 Architectures Optimization Reference Manual</a></li>
<li><a href="http://www.agner.org/optimize/">Software optimization resources</a></li>
<li><a href="https://software.intel.com/en-us/articles/intel-intrinsics-guide">Intel Intrinsics Guide</a></li>
</ul>
</li>
<li>
<p>LLVM</p>
<ul>
<li><a href="http://llvm.org/docs/LangRef.html">LLVM Language Reference Manual</a></li>
<li><a href="https://npcontemplation.blogspot.co.uk/2008/06/secret-of-llvm-c-bindings.html">The secret of LLVM C bindings</a></li>
</ul>
</li>
<li>
<p>General</p>
<ul>
<li><a href="https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/">A trip through the Graphics Pipeline</a></li>
<li><a href="https://msdn.microsoft.com/en-us/library/gg615082.aspx#architecture">WARP Architecture and Performance</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>

272
docs/llvmpipe.rst Normal file
View File

@ -0,0 +1,272 @@
Gallium LLVMpipe Driver
=======================
Introduction
------------
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
do runtime code generation. Shaders, point/line/triangle rasterization
and vertex processing are implemented with LLVM IR which is translated
to x86, x86-64, or ppc64le machine code. Also, the driver is
multithreaded to take advantage of multiple CPU cores (up to 8 at this
time). It's the fastest software rasterizer for Mesa.
Requirements
------------
- For x86 or amd64 processors, 64-bit mode is recommended. Support for
SSE2 is strongly encouraged. Support for SSE3 and SSE4.1 will yield
the most efficient code. The fewer features the CPU has the more
likely it is that you will run into underperforming, buggy, or
incomplete code.
For ppc64le processors, use of the Altivec feature (the Vector
Facility) is recommended if supported; use of the VSX feature (the
Vector-Scalar Facility) is recommended if supported AND Mesa is built
with LLVM version 4.0 or later.
See ``/proc/cpuinfo`` to know what your CPU supports.
- Unless otherwise stated, LLVM version 3.4 is recommended; 3.3 or
later is required.
For Linux, on a recent Debian based distribution do:
::
aptitude install llvm-dev
If you want development snapshot builds of LLVM for Debian and
derived distributions like Ubuntu, you can use the APT repository at
`apt.llvm.org <https://apt.llvm.org/>`__, which are maintained by
Debian's LLVM maintainer.
For a RPM-based distribution do:
::
yum install llvm-devel
For Windows you will need to build LLVM from source with MSVC or
MINGW (either natively or through cross compilers) and CMake, and set
the ``LLVM`` environment variable to the directory you installed it
to. LLVM will be statically linked, so when building on MSVC it needs
to be built with a matching CRT as Mesa, and you'll need to pass
``-DLLVM_USE_CRT_xxx=yyy`` as described below.
LLVM build-type
- scons (optional)
Building
--------
To build everything on Linux invoke scons as:
::
scons build=debug libgl-xlib
Alternatively, you can build it with meson with:
::
mkdir build
cd build
meson -D glx=gallium-xlib -D gallium-drivers=swrast
ninja
but the rest of these instructions assume that scons is used. For
Windows the procedure is similar except the target:
::
scons platform=windows build=debug libgl-gdi
Using
-----
Linux
~~~~~
On Linux, building will create a drop-in alternative for ``libGL.so``
into
::
build/foo/gallium/targets/libgl-xlib/libGL.so
or
::
lib/gallium/libGL.so
To use it set the ``LD_LIBRARY_PATH`` environment variable accordingly.
For performance evaluation pass ``build=release`` to scons, and use the
corresponding lib directory without the ``-debug`` suffix.
Windows
~~~~~~~
On Windows, building will create
``build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll`` which
is a drop-in alternative for system's ``opengl32.dll``. To use it put it
in the same directory as your application. It can also be used by
replacing the native ICD driver, but it's quite an advanced usage, so if
you need to ask, don't even try it.
There is however an easy way to replace the OpenGL software renderer
that comes with Microsoft Windows 7 (or later) with llvmpipe (that is,
on systems without any OpenGL drivers):
- copy
``build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll`` to
``C:\Windows\SysWOW64\mesadrv.dll``
- load this registry settings:
::
REGEDIT4
; https://technet.microsoft.com/en-us/library/cc749368.aspx
; https://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL]
"DLL"="mesadrv.dll"
"DriverVersion"=dword:00000001
"Flags"=dword:00000001
"Version"=dword:00000002
- Ditto for 64 bits drivers if you need them.
Profiling
---------
To profile llvmpipe you should build as
::
scons build=profile <same-as-before>
This will ensure that frame pointers are used both in C and JIT
functions, and that no tail call optimizations are done by gcc.
Linux perf integration
~~~~~~~~~~~~~~~~~~~~~~
On Linux, it is possible to have symbol resolution of JIT code with
`Linux perf <https://perf.wiki.kernel.org/>`__:
::
perf record -g /my/application
perf report
When run inside Linux perf, llvmpipe will create a
``/tmp/perf-XXXXX.map`` file with symbol address table. It also dumps
assembly code to ``/tmp/perf-XXXXX.map.asm``, which can be used by the
``bin/perf-annotate-jit.py`` script to produce disassembly of the
generated code annotated with the samples.
You can obtain a call graph via
`Gprof2Dot <https://github.com/jrfonseca/gprof2dot#linux-perf>`__.
Unit testing
------------
Building will also create several unit tests in
``build/linux-???-debug/gallium/drivers/llvmpipe``:
- ``lp_test_blend``: blending
- ``lp_test_conv``: SIMD vector conversion
- ``lp_test_format``: pixel unpacking/packing
Some of these tests can output results and benchmarks to a tab-separated
file for later analysis, e.g.:
::
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
Development Notes
-----------------
- When looking at this code for the first time, start in lp_state_fs.c,
and then skim through the ``lp_bld_*`` functions called there, and
the comments at the top of the ``lp_bld_*.c`` functions.
- The driver-independent parts of the LLVM / Gallium code are found in
``src/gallium/auxiliary/gallivm/``. The filenames and function
prefixes need to be renamed from ``lp_bld_`` to something else
though.
- We use LLVM-C bindings for now. They are not documented, but follow
the C++ interfaces very closely, and appear to be complete enough for
code generation. See `this stand-alone
example <https://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html>`__.
See the ``llvm-c/Core.h`` file for reference.
.. _recommended_reading:
Recommended Reading
-------------------
- Rasterization
- `Triangle Scan Conversion using 2D Homogeneous
Coordinates <https://www.cs.unc.edu/~olano/papers/2dh-tri/>`__
- `Rasterization on
Larrabee <http://www.drdobbs.com/parallel/rasterization-on-larrabee/217200602>`__
(`DevMaster
copy <http://devmaster.net/posts/2887/rasterization-on-larrabee>`__)
- `Rasterization using half-space
functions <http://devmaster.net/posts/6133/rasterization-using-half-space-functions>`__
- `Advanced
Rasterization <http://devmaster.net/posts/6145/advanced-rasterization>`__
- `Optimizing Software Occlusion
Culling <https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/>`__
- Texture sampling
- `Perspective Texture
Mapping <http://chrishecker.com/Miscellaneous_Technical_Articles#Perspective_Texture_Mapping>`__
- `Texturing As In
Unreal <https://www.flipcode.com/archives/Texturing_As_In_Unreal.shtml>`__
- `Run-Time MIP-Map
Filtering <http://www.gamasutra.com/view/feature/3301/runtime_mipmap_filtering.php>`__
- `Will "brilinear" filtering
persist? <http://alt.3dcenter.org/artikel/2003/10-26_a_english.php>`__
- `Trilinear
filtering <http://ixbtlabs.com/articles2/gffx/nv40-rx800-3.html>`__
- `Texture
Swizzling <http://devmaster.net/posts/12785/texture-swizzling>`__
- SIMD
- `Whole-Function
Vectorization <http://www.cdl.uni-saarland.de/projects/wfv/#header4>`__
- Optimization
- `Optimizing Pixomatic For Modern x86
Processors <http://www.drdobbs.com/optimizing-pixomatic-for-modern-x86-proc/184405807>`__
- `Intel 64 and IA-32 Architectures Optimization Reference
Manual <http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html>`__
- `Software optimization
resources <http://www.agner.org/optimize/>`__
- `Intel Intrinsics
Guide <https://software.intel.com/en-us/articles/intel-intrinsics-guide>`__
- LLVM
- `LLVM Language Reference
Manual <http://llvm.org/docs/LangRef.html>`__
- `The secret of LLVM C
bindings <https://npcontemplation.blogspot.co.uk/2008/06/secret-of-llvm-c-bindings.html>`__
- General
- `A trip through the Graphics
Pipeline <https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/>`__
- `WARP Architecture and
Performance <https://msdn.microsoft.com/en-us/library/gg615082.aspx#architecture>`__

View File

@ -1,541 +0,0 @@
<!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>Compilation and Installation Using Meson</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Compilation and Installation Using Meson</h1>
<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#basic">Basic Usage</a></li>
<li><a href="#advanced">Advanced Usage</a></li>
<li><a href="#cross-compilation">Cross-compilation and 32-bit builds</a></li>
</ul>
<h2 id="intro">1. Introduction</h2>
<p>For general information about Meson see the
<a href="https://mesonbuild.com/">Meson website</a>.</p>
<p><strong>Mesa's Meson build system is generally considered stable and ready
for production.</strong></p>
<p><strong>Mesa requires Meson &gt;= 0.52.0 to build.</strong>
<p>The Meson build of Mesa is tested on Linux, macOS, Windows, Cygwin, Haiku, FreeBSD,
DragonflyBSD, NetBSD, and should work on OpenBSD.</p>
<h4>Unix-like OSes</h4>
<p>If Meson is not already installed on your system, you can typically
install it with your package installer. For example:</p>
<pre>
sudo apt-get install meson # Ubuntu
</pre>
or
<pre>
sudo dnf install meson # Fedora
</pre>
<p>
Some older versions of meson do not check that they are too old and will error
out in odd ways.
</p>
<p>You'll also need <a href="https://ninja-build.org/">Ninja</a>.
If it's not already installed, use apt-get or dnf to install
the <em>ninja-build</em> package.
</p>
<h4>Windows</h4>
<p>
You will need to install python3 and meson as a module using pip. This is
because we use python for generating code, and rely on external modules
(mako). You also need pkg-config (a hard dependency of meson), flex, and bison.
The easiest way to install everything you need is with <a
href="https://chocolatey.org/">chocolatey</a>.
</p>
<pre>
choco install python3 winflexbison pkgconfiglite
</pre>
<p>You can even use chocolatey to install mingw and ninja (ninja can be used with MSVC as well)</p>
<pre>
choco install ninja mingw
</pre>
<p>Then install meson using pip</p>
<pre>
py -3 -m pip install meson mako
</pre>
You may need to add the python3 scripts directory to your path for meson.
<h2 id="basic">2. Basic Usage</h2>
<p>
The meson program is used to configure the source directory and generates
either a ninja build file or Visual Studio® build files. The latter must
be enabled via the <code>--backend</code> switch, as ninja is the default
backend on all operating systems.
</p>
<p>
Meson only supports out-of-tree builds, and must be passed a
directory to put built and generated sources into. We'll call that directory
"build" here.
It's recommended to create a
<a href="https://mesonbuild.com/Using-multiple-build-directories.html">
separate build directory</a> for each configuration you might want to use.
</p>
<p>Basic configuration is done with:</p>
<pre>
meson build/
</pre>
<p>
This will create the build directory.
If any dependencies are missing, you can install them, or try to remove
the dependency with a Meson configuration option (see below).
</p>
<p>
To review the options which Meson chose, run:
</p>
<pre>
meson configure build/
</pre>
<p>
Meson does not currently support listing configuration options before
running "meson build/" but this feature is being discussed upstream.
For now, we have a <code>bin/meson-options.py</code> script that prints
the options for you.
If that script doesn't work for some reason, you can always look in the
<a href="https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/meson_options.txt">
meson_options.txt</a> file at the root of the project.
</p>
<p>
With additional arguments <code>meson configure</code> can be used to change
options for a previously configured build directory.
All options passed to this command are in the form
<code>-D "option"="value"</code>.
For example:
</p>
<pre>
meson configure build/ -Dprefix=/tmp/install -Dglx=true
</pre>
<p>
Note that options taking lists (such as <code>platforms</code>) are
<a href="https://mesonbuild.com/Build-options.html#using-build-options">a bit
more complicated</a>, but the simplest form compatible with Mesa options
is to use a comma to separate values (<code>-D platforms=drm,wayland</code>)
and brackets to represent an empty list (<code>-D platforms=[]</code>).
</p>
<p>
Once you've run the initial <code>meson</code> command successfully you can use
your configured backend to build the project in your build directory:
</p>
<pre>
ninja -C build/
</pre>
<p>
The next step is to install the Mesa libraries, drivers, etc.
This also finishes up some final steps of the build process (such as creating
symbolic links for drivers). To install:
</p>
<pre>
ninja -C build/ install
</pre>
<p>
Note: autotools automatically updated translation files (used by the DRI
configuration tool) as part of the build process,
Meson does not do this. Instead, you will need do this:
</p>
<pre>
ninja -C build/ xmlpool-pot xmlpool-update-po xmlpool-gmo
</pre>
<h4>Windows specific instructions</h4>
<p>
On windows you have a couple of choices for compilers. If you installed mingw
with chocolatey and want to use ninja you should be able to open any shell
and follow the instructions above. If you want to you MSVC, clang-cl, or ICL
(the Intel Compiler), read on.
</p>
<p>
Both ICL and MSVC come with shell environments, the easiest way to use meson
with these it to open a shell. For clang-cl you will need to open an MSVC
shell, and then override the compilers, either using a <a
href="https://mesonbuild.com/Native-environments.html">native file</a>, or
with the CC and CXX environment variables.
</p>
<p>
All of these compilers are tested and work with ninja, but if you want visual
studio integration or you just like msbuild, passing
<code>--backend=vs</code> to meson will generate a visual studio solution. If
you want to use ICL or clang-cl with the vsbackend you will need meson 0.52.0
or greater. Older versions always use the microsoft compiler.
</p>
<h2 id="advanced">3. Advanced Usage</h2>
<h3>Installation Location</h3>
<p>
Meson default to installing libGL.so in your system's main lib/ directory
and DRI drivers to a dri/ subdirectory.
</p>
<p>
Developers will often want to install Mesa to a testing directory rather
than the system library directory.
This can be done with the --prefix option. For example:
</p>
<pre>
meson --prefix="${PWD}/build/install" build/
</pre>
<p>
will put the final libraries and drivers into the build/install/
directory.
Then you can set LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH to that location
to run/test the driver.
</p>
<p>
Meson also honors <code>DESTDIR</code> for installs.
</p>
<h3>Compiler Options</h3>
<p>Meson supports the common CFLAGS, CXXFLAGS, etc. environment
variables but their use is discouraged because of the many caveats
in using them.
</p>
<p>Instead, it is recomended to use <code>-D${lang}_args</code> and
<code>-D${lang}_link_args</code>. Among the benefits of these options
is that they are guaranteed to persist across rebuilds and reconfigurations.
</p>
<p>
This example sets -fmax-errors for compiling C sources and -DMAGIC=123
for C++ sources:
</p>
<pre>
meson builddir/ -Dc_args=-fmax-errors=10 -Dcpp_args=-DMAGIC=123
</pre>
<h3>Compiler Specification</h3>
<p>
Meson supports the standard CC and CXX environment variables for
changing the default compiler. Note that Meson does not allow
changing the compilers in a configured builddir so you will need
to create a new build dir for a different compiler.
</p>
<p>
This is an example of specifying the clang compilers and cleaning
the build directory before reconfiguring with an extra C option:
</p>
<pre>
CC=clang CXX=clang++ meson build-clang
ninja -C build-clang
ninja -C build-clang clean
meson configure build -Dc_args="-Wno-typedef-redefinition"
ninja -C build-clang
</pre>
<p>
The default compilers depends on your operating system. Meson supports most of
the popular compilers, a complete list is available
<a href="https://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
</p>
<h3>LLVM</h3>
<p>Meson includes upstream logic to wrap llvm-config using its standard
dependency interface.
</p>
<p>
As of meson 0.51.0 meson can use cmake to find llvm (the cmake finder
was added in meson 0.49.0, but LLVM cannot be found until 0.51) Due to the
way LLVM implements its cmake finder it will only find static libraries, it
will never find libllvm.so.
There is also a <code>-Dcmake_module_path</code> option in this meson version,
which points to the root of an alternative installation (the prefix). For
example:
</p>
<pre>
meson builddir -Dcmake_module_path=/home/user/mycmake/prefix
</pre>
<p>
As of meson 0.49.0 meson also has the concept of a
<a href="https://mesonbuild.com/Native-environments.html">"native file"</a>,
these files provide information about the native build environment (as opposed
to a cross build environment). They are ini formatted and can override where to
find llvm-config:
</p>
custom-llvm.ini
<pre>
[binaries]
llvm-config = '/usr/local/bin/llvm/llvm-config'
</pre>
Then configure meson:
<pre>
meson builddir/ --native-file custom-llvm.ini
</pre>
<p>
Meson &lt; 0.49 doesn't support native files, so to specify a custom
<code>llvm-config</code> you need to modify your <code>$PATH</code> (or
<code>%PATH%</code> on windows), which will be searched for
<code>llvm-config</code>, <code>llvm-config<i>$version</i></code>,
and <code>llvm-config-<i>$version</i></code>:
</p>
<pre>
PATH=/path/to/folder/with/llvm-config:$PATH meson build
</pre>
<p>
For selecting llvm-config for cross compiling a
<a href="https://mesonbuild.com/Cross-compilation.html#defining-the-environment">"cross file"</a>
should be used. It uses the same format as the native file above:
</p>
<p>cross-llvm.ini</p>
<pre>
[binaries]
...
llvm-config = '/usr/lib/llvm-config-32'
cmake = '/usr/bin/cmake-for-my-arch'
</pre>
<p>Obviously, only cmake or llvm-config is required.</p>
<p>Then configure meson:</p>
<pre>
meson builddir/ --cross-file cross-llvm.ini
</pre>
See the <a href="#cross-compilation">Cross Compilation</a> section for more information.
<p>On windows (and in other cases), using llvm-config or cmake may be
either undesirable or impossible. Meson's solution for this is a
<a href="https://mesonbuild.com/Wrap-dependency-system-manual.html">wrap</a>, in
this case a "binary wrap". Follow the steps below:</p>
<ul>
<li>Install the binaries and headers into the <code>$mesa_src/subprojects/llvm</code></li>
<li>Add a meson build.build file to that directory (more on that later)</li>
</ul>
<p>The wrap file must define the following:</p>
<ul>
<li><code>dep_llvm</code>: a <code>declare_dependency()</code> object with include_directories, dependencies, and version set)</li>
</ul>
<p>It may also define:</p>
<ul>
<li><code>irbuilder_h</code>: a <code>files()</code> object pointing to llvm/IR/IRBuilder.h (this is requred for SWR)</li>
<li><code>has_rtti</code>: a <code>bool</code> that declares whether LLVM was built with RTTI. Defaults to true</li>
</ul>
<p>such a meson.build file might look like:</p>
<pre>
project('llvm', ['cpp'])
cpp = meson.get_compiler('cpp')
_deps = []
_search = join_paths(meson.current_source_dir(), 'lib')
foreach d : ['libLLVMCodeGen', 'libLLVMScalarOpts', 'libLLVMAnalysis',
'libLLVMTransformUtils', 'libLLVMCore', 'libLLVMX86CodeGen',
'libLLVMSelectionDAG', 'libLLVMipo', 'libLLVMAsmPrinter',
'libLLVMInstCombine', 'libLLVMInstrumentation', 'libLLVMMC',
'libLLVMGlobalISel', 'libLLVMObjectYAML', 'libLLVMDebugInfoPDB',
'libLLVMVectorize', 'libLLVMPasses', 'libLLVMSupport',
'libLLVMLTO', 'libLLVMObject', 'libLLVMDebugInfoCodeView',
'libLLVMDebugInfoDWARF', 'libLLVMOrcJIT', 'libLLVMProfileData',
'libLLVMObjCARCOpts', 'libLLVMBitReader', 'libLLVMCoroutines',
'libLLVMBitWriter', 'libLLVMRuntimeDyld', 'libLLVMMIRParser',
'libLLVMX86Desc', 'libLLVMAsmParser', 'libLLVMTableGen',
'libLLVMFuzzMutate', 'libLLVMLinker', 'libLLVMMCParser',
'libLLVMExecutionEngine', 'libLLVMCoverage', 'libLLVMInterpreter',
'libLLVMTarget', 'libLLVMX86AsmParser', 'libLLVMSymbolize',
'libLLVMDebugInfoMSF', 'libLLVMMCJIT', 'libLLVMXRay',
'libLLVMX86AsmPrinter', 'libLLVMX86Disassembler',
'libLLVMMCDisassembler', 'libLLVMOption', 'libLLVMIRReader',
'libLLVMLibDriver', 'libLLVMDlltoolDriver', 'libLLVMDemangle',
'libLLVMBinaryFormat', 'libLLVMLineEditor',
'libLLVMWindowsManifest', 'libLLVMX86Info', 'libLLVMX86Utils']
_deps += cpp.find_library(d, dirs : _search)
endforeach
dep_llvm = declare_dependency(
include_directories : include_directories('include'),
dependencies : _deps,
version : '6.0.0',
)
has_rtti = false
irbuilder_h = files('include/llvm/IR/IRBuilder.h')
</pre>
<p>It is very important that version is defined and is accurate, if it is not,
workarounds for the wrong version of LLVM might be used resulting in build
failures.</p>
<h3><code>PKG_CONFIG_PATH</code></h3>
<p>The
<code>pkg-config</code> utility is a hard requirement for configuring and
building Mesa on Unix-like systems. It is used to search for external libraries
on the system. This environment variable is used to control the search path for
<code>pkg-config</code>. For instance, setting
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for package
metadata in <code>/usr/X11R6</code> before the standard directories.</p>
<h3>Options</h3>
<p>
One of the oddities of meson is that some options are different when passed to
the <code>meson</code> than to <code>meson configure</code>. These options are
passed as --option=foo to <code>meson</code>, but -Doption=foo to <code>meson
configure</code>. Mesa defined options are always passed as -Doption=foo.
</p>
<p>For those coming from autotools be aware of the following:</p>
<dl>
<dt><code>--buildtype/-Dbuildtype</code></dt>
<dd><p>This option will set the compiler debug/optimisation levels to aid
debugging the Mesa libraries.</p>
<p>Note that in meson this defaults to <code>debugoptimized</code>, and
not setting it to <code>release</code> will yield non-optimal
performance and binary size. Not using <code>debug</code> may interfere
with debugging as some code and validation will be optimized away.
</p>
<p> For those wishing to pass their own optimization flags, use the <code>plain</code>
buildtype, which causes meson to inject no additional compiler arguments, only
those in the C/CXXFLAGS and those that mesa itself defines.</p>
</dd>
<dt><code>-Db_ndebug</code></dt>
<dd><p>This option controls assertions in meson projects. When set to <code>false</code>
(the default) assertions are enabled, when set to true they are disabled. This
is unrelated to the <code>buildtype</code>; setting the latter to
<code>release</code> will not turn off assertions.
</p>
</dd>
</dl>
<h2 id="cross-compilation">4. Cross-compilation and 32-bit builds</h2>
<p><a href="https://mesonbuild.com/Cross-compilation.html">Meson supports
cross-compilation</a> by specifying a number of binary paths and
settings in a file and passing this file to <code>meson</code> or
<code>meson configure</code> with the <code>--cross-file</code>
parameter.</p>
<p>This file can live at any location, but you can use the bare filename
(without the folder path) if you put it in $XDG_DATA_HOME/meson/cross or
~/.local/share/meson/cross</p>
<p>Below are a few example of cross files, but keep in mind that you
will likely have to alter them for your system.</p>
<p>
Those running on ArchLinux can use the AUR-maintained packages for some
of those, as they'll have the right values for your system:
</p>
<ul>
<li><a href="https://aur.archlinux.org/packages/meson-cross-x86-linux-gnu">meson-cross-x86-linux-gnu</a></li>
<li><a href="https://aur.archlinux.org/packages/meson-cross-aarch64-linux-gnu">meson-cross-aarch64-linux-gnu</a></li>
</ul>
<p>
32-bit build on x86 linux:
</p>
<pre>
[binaries]
c = '/usr/bin/gcc'
cpp = '/usr/bin/g++'
ar = '/usr/bin/gcc-ar'
strip = '/usr/bin/strip'
pkgconfig = '/usr/bin/pkg-config-32'
llvm-config = '/usr/bin/llvm-config32'
[properties]
c_args = ['-m32']
c_link_args = ['-m32']
cpp_args = ['-m32']
cpp_link_args = ['-m32']
[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'
</pre>
<p>
64-bit build on ARM linux:
</p>
<pre>
[binaries]
c = '/usr/bin/aarch64-linux-gnu-gcc'
cpp = '/usr/bin/aarch64-linux-gnu-g++'
ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'
strip = '/usr/bin/aarch64-linux-gnu-strip'
pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'
exe_wrapper = '/usr/bin/qemu-aarch64-static'
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'
</pre>
<p>
64-bit build on x86 windows:
</p>
<pre>
[binaries]
c = '/usr/bin/x86_64-w64-mingw32-gcc'
cpp = '/usr/bin/x86_64-w64-mingw32-g++'
ar = '/usr/bin/x86_64-w64-mingw32-ar'
strip = '/usr/bin/x86_64-w64-mingw32-strip'
pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
exe_wrapper = 'wine'
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'i686'
endian = 'little'
</pre>
</div>
</body>
</html>

498
docs/meson.rst Normal file
View File

@ -0,0 +1,498 @@
Compilation and Installation Using Meson
========================================
- `Introduction <#intro>`__
- `Basic Usage <#basic>`__
- `Advanced Usage <#advanced>`__
- `Cross-compilation and 32-bit builds <#cross-compilation>`__
.. _intro:
1. Introduction
---------------
For general information about Meson see the `Meson
website <https://mesonbuild.com/>`__.
**Mesa's Meson build system is generally considered stable and ready for
production.**
**Mesa requires Meson >= 0.52.0 to build.**
The Meson build of Mesa is tested on Linux, macOS, Windows, Cygwin,
Haiku, FreeBSD, DragonflyBSD, NetBSD, and should work on OpenBSD.
Unix-like OSes
^^^^^^^^^^^^^^
If Meson is not already installed on your system, you can typically
install it with your package installer. For example:
::
sudo apt-get install meson # Ubuntu
or
::
sudo dnf install meson # Fedora
Some older versions of meson do not check that they are too old and will
error out in odd ways.
You'll also need `Ninja <https://ninja-build.org/>`__. If it's not
already installed, use apt-get or dnf to install the *ninja-build*
package.
Windows
^^^^^^^
You will need to install python3 and meson as a module using pip. This
is because we use python for generating code, and rely on external
modules (mako). You also need pkg-config (a hard dependency of meson),
flex, and bison. The easiest way to install everything you need is with
`chocolatey <https://chocolatey.org/>`__.
::
choco install python3 winflexbison pkgconfiglite
You can even use chocolatey to install mingw and ninja (ninja can be
used with MSVC as well)
::
choco install ninja mingw
Then install meson using pip
::
py -3 -m pip install meson mako
You may need to add the python3 scripts directory to your path for
meson.
.. _basic:
2. Basic Usage
--------------
The meson program is used to configure the source directory and
generates either a ninja build file or Visual Studio® build files. The
latter must be enabled via the ``--backend`` switch, as ninja is the
default backend on all operating systems.
Meson only supports out-of-tree builds, and must be passed a directory
to put built and generated sources into. We'll call that directory
"build" here. It's recommended to create a `separate build
directory <https://mesonbuild.com/Using-multiple-build-directories.html>`__
for each configuration you might want to use.
Basic configuration is done with:
::
meson build/
This will create the build directory. If any dependencies are missing,
you can install them, or try to remove the dependency with a Meson
configuration option (see below).
To review the options which Meson chose, run:
::
meson configure build/
Meson does not currently support listing configuration options before
running "meson build/" but this feature is being discussed upstream. For
now, we have a ``bin/meson-options.py`` script that prints the options
for you. If that script doesn't work for some reason, you can always
look in the
`meson_options.txt <https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/meson_options.txt>`__
file at the root of the project.
With additional arguments ``meson configure`` can be used to change
options for a previously configured build directory. All options passed
to this command are in the form ``-D "option"="value"``. For example:
::
meson configure build/ -Dprefix=/tmp/install -Dglx=true
Note that options taking lists (such as ``platforms``) are `a bit more
complicated <https://mesonbuild.com/Build-options.html#using-build-options>`__,
but the simplest form compatible with Mesa options is to use a comma to
separate values (``-D platforms=drm,wayland``) and brackets to represent
an empty list (``-D platforms=[]``).
Once you've run the initial ``meson`` command successfully you can use
your configured backend to build the project in your build directory:
::
ninja -C build/
The next step is to install the Mesa libraries, drivers, etc. This also
finishes up some final steps of the build process (such as creating
symbolic links for drivers). To install:
::
ninja -C build/ install
Note: autotools automatically updated translation files (used by the DRI
configuration tool) as part of the build process, Meson does not do
this. Instead, you will need do this:
::
ninja -C build/ xmlpool-pot xmlpool-update-po xmlpool-gmo
Windows specific instructions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
On windows you have a couple of choices for compilers. If you installed
mingw with chocolatey and want to use ninja you should be able to open
any shell and follow the instructions above. If you want to you MSVC,
clang-cl, or ICL (the Intel Compiler), read on.
Both ICL and MSVC come with shell environments, the easiest way to use
meson with these it to open a shell. For clang-cl you will need to open
an MSVC shell, and then override the compilers, either using a `native
file <https://mesonbuild.com/Native-environments.html>`__, or with the
CC and CXX environment variables.
All of these compilers are tested and work with ninja, but if you want
visual studio integration or you just like msbuild, passing
``--backend=vs`` to meson will generate a visual studio solution. If you
want to use ICL or clang-cl with the vsbackend you will need meson
0.52.0 or greater. Older versions always use the microsoft compiler.
.. _advanced:
3. Advanced Usage
-----------------
Installation Location
~~~~~~~~~~~~~~~~~~~~~
Meson default to installing libGL.so in your system's main lib/
directory and DRI drivers to a dri/ subdirectory.
Developers will often want to install Mesa to a testing directory rather
than the system library directory. This can be done with the --prefix
option. For example:
::
meson --prefix="${PWD}/build/install" build/
will put the final libraries and drivers into the build/install/
directory. Then you can set LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH to
that location to run/test the driver.
Meson also honors ``DESTDIR`` for installs.
Compiler Options
~~~~~~~~~~~~~~~~
Meson supports the common CFLAGS, CXXFLAGS, etc. environment variables
but their use is discouraged because of the many caveats in using them.
Instead, it is recomended to use ``-D${lang}_args`` and
``-D${lang}_link_args``. Among the benefits of these options is that
they are guaranteed to persist across rebuilds and reconfigurations.
This example sets -fmax-errors for compiling C sources and -DMAGIC=123
for C++ sources:
::
meson builddir/ -Dc_args=-fmax-errors=10 -Dcpp_args=-DMAGIC=123
Compiler Specification
~~~~~~~~~~~~~~~~~~~~~~
Meson supports the standard CC and CXX environment variables for
changing the default compiler. Note that Meson does not allow changing
the compilers in a configured builddir so you will need to create a new
build dir for a different compiler.
This is an example of specifying the clang compilers and cleaning the
build directory before reconfiguring with an extra C option:
::
CC=clang CXX=clang++ meson build-clang
ninja -C build-clang
ninja -C build-clang clean
meson configure build -Dc_args="-Wno-typedef-redefinition"
ninja -C build-clang
The default compilers depends on your operating system. Meson supports
most of the popular compilers, a complete list is available
`here <https://mesonbuild.com/Reference-tables.html#compiler-ids>`__.
LLVM
~~~~
Meson includes upstream logic to wrap llvm-config using its standard
dependency interface.
As of meson 0.51.0 meson can use cmake to find llvm (the cmake finder
was added in meson 0.49.0, but LLVM cannot be found until 0.51) Due to
the way LLVM implements its cmake finder it will only find static
libraries, it will never find libllvm.so. There is also a
``-Dcmake_module_path`` option in this meson version, which points to
the root of an alternative installation (the prefix). For example:
::
meson builddir -Dcmake_module_path=/home/user/mycmake/prefix
As of meson 0.49.0 meson also has the concept of a `"native
file" <https://mesonbuild.com/Native-environments.html>`__, these files
provide information about the native build environment (as opposed to a
cross build environment). They are ini formatted and can override where
to find llvm-config:
custom-llvm.ini
::
[binaries]
llvm-config = '/usr/local/bin/llvm/llvm-config'
Then configure meson:
::
meson builddir/ --native-file custom-llvm.ini
Meson < 0.49 doesn't support native files, so to specify a custom
``llvm-config`` you need to modify your ``$PATH`` (or ``%PATH%`` on
windows), which will be searched for ``llvm-config``,
``llvm-config$version``, and ``llvm-config-$version``:
::
PATH=/path/to/folder/with/llvm-config:$PATH meson build
For selecting llvm-config for cross compiling a `"cross
file" <https://mesonbuild.com/Cross-compilation.html#defining-the-environment>`__
should be used. It uses the same format as the native file above:
cross-llvm.ini
::
[binaries]
...
llvm-config = '/usr/lib/llvm-config-32'
cmake = '/usr/bin/cmake-for-my-arch'
Obviously, only cmake or llvm-config is required.
Then configure meson:
::
meson builddir/ --cross-file cross-llvm.ini
See the `Cross Compilation <#cross-compilation>`__ section for more
information.
On windows (and in other cases), using llvm-config or cmake may be
either undesirable or impossible. Meson's solution for this is a
`wrap <https://mesonbuild.com/Wrap-dependency-system-manual.html>`__, in
this case a "binary wrap". Follow the steps below:
- Install the binaries and headers into the
``$mesa_src/subprojects/llvm``
- Add a meson build.build file to that directory (more on that later)
The wrap file must define the following:
- ``dep_llvm``: a ``declare_dependency()`` object with
include_directories, dependencies, and version set)
It may also define:
- ``irbuilder_h``: a ``files()`` object pointing to llvm/IR/IRBuilder.h
(this is requred for SWR)
- ``has_rtti``: a ``bool`` that declares whether LLVM was built with
RTTI. Defaults to true
such a meson.build file might look like:
::
project('llvm', ['cpp'])
cpp = meson.get_compiler('cpp')
_deps = []
_search = join_paths(meson.current_source_dir(), 'lib')
foreach d : ['libLLVMCodeGen', 'libLLVMScalarOpts', 'libLLVMAnalysis',
'libLLVMTransformUtils', 'libLLVMCore', 'libLLVMX86CodeGen',
'libLLVMSelectionDAG', 'libLLVMipo', 'libLLVMAsmPrinter',
'libLLVMInstCombine', 'libLLVMInstrumentation', 'libLLVMMC',
'libLLVMGlobalISel', 'libLLVMObjectYAML', 'libLLVMDebugInfoPDB',
'libLLVMVectorize', 'libLLVMPasses', 'libLLVMSupport',
'libLLVMLTO', 'libLLVMObject', 'libLLVMDebugInfoCodeView',
'libLLVMDebugInfoDWARF', 'libLLVMOrcJIT', 'libLLVMProfileData',
'libLLVMObjCARCOpts', 'libLLVMBitReader', 'libLLVMCoroutines',
'libLLVMBitWriter', 'libLLVMRuntimeDyld', 'libLLVMMIRParser',
'libLLVMX86Desc', 'libLLVMAsmParser', 'libLLVMTableGen',
'libLLVMFuzzMutate', 'libLLVMLinker', 'libLLVMMCParser',
'libLLVMExecutionEngine', 'libLLVMCoverage', 'libLLVMInterpreter',
'libLLVMTarget', 'libLLVMX86AsmParser', 'libLLVMSymbolize',
'libLLVMDebugInfoMSF', 'libLLVMMCJIT', 'libLLVMXRay',
'libLLVMX86AsmPrinter', 'libLLVMX86Disassembler',
'libLLVMMCDisassembler', 'libLLVMOption', 'libLLVMIRReader',
'libLLVMLibDriver', 'libLLVMDlltoolDriver', 'libLLVMDemangle',
'libLLVMBinaryFormat', 'libLLVMLineEditor',
'libLLVMWindowsManifest', 'libLLVMX86Info', 'libLLVMX86Utils']
_deps += cpp.find_library(d, dirs : _search)
endforeach
dep_llvm = declare_dependency(
include_directories : include_directories('include'),
dependencies : _deps,
version : '6.0.0',
)
has_rtti = false
irbuilder_h = files('include/llvm/IR/IRBuilder.h')
It is very important that version is defined and is accurate, if it is
not, workarounds for the wrong version of LLVM might be used resulting
in build failures.
``PKG_CONFIG_PATH``
~~~~~~~~~~~~~~~~~~~
The ``pkg-config`` utility is a hard requirement for configuring and
building Mesa on Unix-like systems. It is used to search for external
libraries on the system. This environment variable is used to control
the search path for ``pkg-config``. For instance, setting
``PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig`` will search for package
metadata in ``/usr/X11R6`` before the standard directories.
Options
~~~~~~~
One of the oddities of meson is that some options are different when
passed to the ``meson`` than to ``meson configure``. These options are
passed as --option=foo to ``meson``, but -Doption=foo to
``meson configure``. Mesa defined options are always passed as
-Doption=foo.
For those coming from autotools be aware of the following:
``--buildtype/-Dbuildtype``
This option will set the compiler debug/optimisation levels to aid
debugging the Mesa libraries.
Note that in meson this defaults to ``debugoptimized``, and not
setting it to ``release`` will yield non-optimal performance and
binary size. Not using ``debug`` may interfere with debugging as some
code and validation will be optimized away.
For those wishing to pass their own optimization flags, use the
``plain`` buildtype, which causes meson to inject no additional
compiler arguments, only those in the C/CXXFLAGS and those that mesa
itself defines.
``-Db_ndebug``
This option controls assertions in meson projects. When set to
``false`` (the default) assertions are enabled, when set to true they
are disabled. This is unrelated to the ``buildtype``; setting the
latter to ``release`` will not turn off assertions.
.. _cross-compilation:
4. Cross-compilation and 32-bit builds
--------------------------------------
`Meson supports
cross-compilation <https://mesonbuild.com/Cross-compilation.html>`__ by
specifying a number of binary paths and settings in a file and passing
this file to ``meson`` or ``meson configure`` with the ``--cross-file``
parameter.
This file can live at any location, but you can use the bare filename
(without the folder path) if you put it in $XDG_DATA_HOME/meson/cross or
~/.local/share/meson/cross
Below are a few example of cross files, but keep in mind that you will
likely have to alter them for your system.
Those running on ArchLinux can use the AUR-maintained packages for some
of those, as they'll have the right values for your system:
- `meson-cross-x86-linux-gnu <https://aur.archlinux.org/packages/meson-cross-x86-linux-gnu>`__
- `meson-cross-aarch64-linux-gnu <https://aur.archlinux.org/packages/meson-cross-aarch64-linux-gnu>`__
32-bit build on x86 linux:
::
[binaries]
c = '/usr/bin/gcc'
cpp = '/usr/bin/g++'
ar = '/usr/bin/gcc-ar'
strip = '/usr/bin/strip'
pkgconfig = '/usr/bin/pkg-config-32'
llvm-config = '/usr/bin/llvm-config32'
[properties]
c_args = ['-m32']
c_link_args = ['-m32']
cpp_args = ['-m32']
cpp_link_args = ['-m32']
[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'
64-bit build on ARM linux:
::
[binaries]
c = '/usr/bin/aarch64-linux-gnu-gcc'
cpp = '/usr/bin/aarch64-linux-gnu-g++'
ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'
strip = '/usr/bin/aarch64-linux-gnu-strip'
pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'
exe_wrapper = '/usr/bin/qemu-aarch64-static'
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'
64-bit build on x86 windows:
::
[binaries]
c = '/usr/bin/x86_64-w64-mingw32-gcc'
cpp = '/usr/bin/x86_64-w64-mingw32-g++'
ar = '/usr/bin/x86_64-w64-mingw32-ar'
strip = '/usr/bin/x86_64-w64-mingw32-strip'
pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
exe_wrapper = 'wine'
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'i686'
endian = 'little'

View File

@ -1,70 +0,0 @@
<!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>OpenGL ES</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>OpenGL ES</h1>
<p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More information about
OpenGL ES can be found at <a href="https://www.khronos.org/opengles/">
https://www.khronos.org/opengles/</a>.</p>
<p>OpenGL ES depends on a working EGL implementation. Please refer to
<a href="egl.html">Mesa EGL</a> for more information about EGL.</p>
<h2>Build the Libraries</h2>
<ol>
<li>Run <code>meson configure</code> with <code>-D gles1=true -D gles2=true</code> and enable the Gallium driver for your hardware.</li>
<li>Build and install Mesa as usual.</li>
</ol>
Alternatively, if XCB-DRI2 is installed on the system, one can use
<code>egl_dri2</code> EGL driver with OpenGL|ES-enabled DRI drivers
<ol>
<li>Run <code>meson configure</code> with <code>-D gles1=true -D gles2=true</code>.</li>
<li>Build and install Mesa as usual.</li>
</ol>
<p>Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more
EGL drivers for your hardware.</p>
<h2>Run the Demos</h2>
<p>There are some demos in <code>mesa/demos</code> repository.</p>
<h2>Developers</h2>
<h3>Dispatch Table</h3>
<p>OpenGL ES has an additional indirection when dispatching functions</p>
<pre>
Mesa: glFoo() --&gt; _mesa_Foo()
OpenGL ES: glFoo() --&gt; _es_Foo() --&gt; _mesa_Foo()
</pre>
<p>The indirection serves several purposes</p>
<ul>
<li>When a function is in Mesa and the type matches, it checks the arguments and calls the Mesa function.</li>
<li>When a function is in Mesa but the type mismatches, it checks and converts the arguments before calling the Mesa function.</li>
<li>When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.</li>
</ul>
<p>Other than the last case, OpenGL ES uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
</div>
</body>
</html>

54
docs/opengles.rst Normal file
View File

@ -0,0 +1,54 @@
OpenGL ES
=========
Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More information about
OpenGL ES can be found at https://www.khronos.org/opengles/.
OpenGL ES depends on a working EGL implementation. Please refer to `Mesa
EGL <egl.html>`__ for more information about EGL.
Build the Libraries
-------------------
#. Run ``meson configure`` with ``-D gles1=true -D gles2=true`` and
enable the Gallium driver for your hardware.
#. Build and install Mesa as usual.
Alternatively, if XCB-DRI2 is installed on the system, one can use
``egl_dri2`` EGL driver with OpenGL|ES-enabled DRI drivers
#. Run ``meson configure`` with ``-D gles1=true -D gles2=true``.
#. Build and install Mesa as usual.
Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or
more EGL drivers for your hardware.
Run the Demos
-------------
There are some demos in ``mesa/demos`` repository.
Developers
----------
Dispatch Table
~~~~~~~~~~~~~~
OpenGL ES has an additional indirection when dispatching functions
::
Mesa: glFoo() --> _mesa_Foo()
OpenGL ES: glFoo() --> _es_Foo() --> _mesa_Foo()
The indirection serves several purposes
- When a function is in Mesa and the type matches, it checks the
arguments and calls the Mesa function.
- When a function is in Mesa but the type mismatches, it checks and
converts the arguments before calling the Mesa function.
- When a function is not available in Mesa, or accepts arguments that
are not available in OpenGL, it provides its own implementation.
Other than the last case, OpenGL ES uses ``APIspec.xml`` to generate
functions to check and/or converts the arguments.

View File

@ -1,80 +0,0 @@
<!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>Off-screen Rendering</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Off-screen Rendering</h1>
<p>
Mesa's off-screen interface is used for rendering into user-allocated memory
without any sort of window system or operating system dependencies.
That is, the GL_FRONT colorbuffer is actually a buffer in main memory,
rather than a window on your display.
</p>
<p>
The OSMesa API provides three basic functions for making off-screen
renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for
more information about the API functions.
</p>
<p>
The OSMesa interface may be used with any of three software renderers:
</p>
<ol>
<li>llvmpipe - this is the high-performance Gallium LLVM driver
<li>softpipe - this it the reference Gallium software driver
<li>swrast - this is the legacy Mesa software rasterizer
</ol>
<p>
There are several examples of OSMesa in the mesa/demos repository.
</p>
<h2>Building OSMesa</h2>
<p>
Configure and build Mesa with something like:
<pre>
meson builddir -Dosmesa=gallium -Dgallium-drivers=swrast -Ddri-drivers=[] -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
ninja -C builddir install
</pre>
<p>
Make sure you have LLVM installed first if you want to use the llvmpipe driver.
</p>
<p>
When the build is complete you should find:
</p>
<pre>
$PWD/builddir/install/lib/libOSMesa.so (swrast-based OSMesa)
$PWD/builddir/install/lib/gallium/libOSMsea.so (gallium-based OSMesa)
</pre>
<p>
Set your LD_LIBRARY_PATH to point to $PWD/builddir/install to use the libraries
</p>
<p>
When you link your application, link with -lOSMesa
</p>
</div>
</body>
</html>

45
docs/osmesa.rst Normal file
View File

@ -0,0 +1,45 @@
Off-screen Rendering
====================
Mesa's off-screen interface is used for rendering into user-allocated
memory without any sort of window system or operating system
dependencies. That is, the GL_FRONT colorbuffer is actually a buffer in
main memory, rather than a window on your display.
The OSMesa API provides three basic functions for making off-screen
renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for more
information about the API functions.
The OSMesa interface may be used with any of three software renderers:
#. llvmpipe - this is the high-performance Gallium LLVM driver
#. softpipe - this it the reference Gallium software driver
#. swrast - this is the legacy Mesa software rasterizer
There are several examples of OSMesa in the mesa/demos repository.
Building OSMesa
---------------
Configure and build Mesa with something like:
::
meson builddir -Dosmesa=gallium -Dgallium-drivers=swrast -Ddri-drivers=[] -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
ninja -C builddir install
Make sure you have LLVM installed first if you want to use the llvmpipe
driver.
When the build is complete you should find:
::
$PWD/builddir/install/lib/libOSMesa.so (swrast-based OSMesa)
$PWD/builddir/install/lib/gallium/libOSMsea.so (gallium-based OSMesa)
Set your LD_LIBRARY_PATH to point to $PWD/builddir/install to use the
libraries
When you link your application, link with -lOSMesa

View File

@ -1,76 +0,0 @@
<!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>Performance Tips</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Performance Tips</h1>
<p>
Performance tips for software rendering:
</p>
<ol>
<li> Turn off smooth shading when you don't need it (glShadeModel)
<li> Turn off depth buffering when you don't need it.
<li> Turn off dithering when not needed.
<li> Use double buffering as it's often faster than single buffering
<li> Compile in the X Shared Memory extension option if it's supported
on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for
your system in the Make-config file.
<li> Recompile Mesa with more optimization if possible.
<li> Try to maximize the amount of drawing done between glBegin/glEnd pairs.
<li> Use the MESA_BACK_BUFFER variable to find best performance in double
buffered mode. (X users only)
<li> Optimized polygon rasterizers are employed when:
rendering into back buffer which is an XImage
RGB mode, not grayscale, not monochrome
depth buffering is GL_LESS, or disabled
flat or smooth shading
dithered or non-dithered
no other rasterization operations enabled (blending, stencil, etc)
<li> Optimized line drawing is employed when:
rendering into back buffer which is an XImage
RGB mode, not grayscale, not monochrome
depth buffering is GL_LESS or disabled
flat shading
dithered or non-dithered
no other rasterization operations enabled (blending, stencil, etc)
<li> Textured polygons are fastest when:
using a 3-component (RGB), 2-D texture
minification and magnification filters are GL_NEAREST
texture coordinate wrap modes for S and T are GL_REPEAT
GL_DECAL environment mode
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )
depth buffering is GL_LESS or disabled
<li> Lighting is fastest when:
Two-sided lighting is disabled
GL_LIGHT_MODEL_LOCAL_VIEWER is false
GL_COLOR_MATERIAL is disabled
No spot lights are used (all GL_SPOT_CUTOFFs are 180.0)
No local lights are used (all position W's are 0.0)
All material and light coefficients are &gt;= zero
<li> XFree86 users: if you want to use 24-bit color try starting your
X server in 32-bit per pixel mode for better performance. That is,
start your X server with
startx -- -bpp 32
instead of
startx -- -bpp 24
<li> Try disabling dithering with the MESA_NO_DITHER environment variable.
If this env var is defined Mesa will disable dithering and the
command glEnable(GL_DITHER) will be ignored.
</ol>
</div>
</body>
</html>

44
docs/perf.rst Normal file
View File

@ -0,0 +1,44 @@
Performance Tips
================
Performance tips for software rendering:
#. Turn off smooth shading when you don't need it (glShadeModel)
#. Turn off depth buffering when you don't need it.
#. Turn off dithering when not needed.
#. Use double buffering as it's often faster than single buffering
#. Compile in the X Shared Memory extension option if it's supported on
your system by adding -DSHM to CFLAGS and -lXext to XLIBS for your
system in the Make-config file.
#. Recompile Mesa with more optimization if possible.
#. Try to maximize the amount of drawing done between glBegin/glEnd
pairs.
#. Use the MESA_BACK_BUFFER variable to find best performance in double
buffered mode. (X users only)
#. Optimized polygon rasterizers are employed when: rendering into back
buffer which is an XImage RGB mode, not grayscale, not monochrome
depth buffering is GL_LESS, or disabled flat or smooth shading
dithered or non-dithered no other rasterization operations enabled
(blending, stencil, etc)
#. Optimized line drawing is employed when: rendering into back buffer
which is an XImage RGB mode, not grayscale, not monochrome depth
buffering is GL_LESS or disabled flat shading dithered or
non-dithered no other rasterization operations enabled (blending,
stencil, etc)
#. Textured polygons are fastest when: using a 3-component (RGB), 2-D
texture minification and magnification filters are GL_NEAREST texture
coordinate wrap modes for S and T are GL_REPEAT GL_DECAL environment
mode glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST ) depth
buffering is GL_LESS or disabled
#. Lighting is fastest when: Two-sided lighting is disabled
GL_LIGHT_MODEL_LOCAL_VIEWER is false GL_COLOR_MATERIAL is disabled No
spot lights are used (all GL_SPOT_CUTOFFs are 180.0) No local lights
are used (all position W's are 0.0) All material and light
coefficients are >= zero
#. XFree86 users: if you want to use 24-bit color try starting your X
server in 32-bit per pixel mode for better performance. That is,
start your X server with startx -- -bpp 32 instead of startx -- -bpp
24
#. Try disabling dithering with the MESA_NO_DITHER environment variable.
If this env var is defined Mesa will disable dithering and the
command glEnable(GL_DITHER) will be ignored.

View File

@ -1,60 +0,0 @@
<!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>Gallium Post-processing</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Gallium Post-processing</h1>
<p>
The Gallium drivers support user-defined image post-processing.
At the end of drawing a frame a post-processing filter can be applied to
the rendered image.
Example filters include morphological antialiasing and cell shading.
</p>
<p>
The filters can be toggled per-app via driconf, or per-session via the
corresponding environment variables.
</p>
<p>
Multiple filters can be used together.
</p>
<h2>PP environment variables</h2>
<ul>
<li>PP_DEBUG - If defined debug information will be printed to stderr.
</ul>
<h2>Current filters</h2>
<ul>
<li>pp_nored, pp_nogreen, pp_noblue - set to 1 to remove the corresponding color channel.
These are basic filters for easy testing of the PP queue.
<li>pp_jimenezmlaa, pp_jimenezmlaa_color -
<a href="https://www.iryokufx.com/mlaa/" target=_blank>Jimenez's MLAA</a>
is a morphological antialiasing filter.
The two versions use depth and color data, respectively.
Which works better depends on the app - depth will not blur text, but it will
miss transparent textures for example.
Set to a number from 2 to 32, roughly corresponding to quality.
Numbers higher than 8 see minimizing gains.
<li>pp_celshade - set to 1 to enable cell shading (a more complex color filter).
</ul>
</div>
</body>
</html>

33
docs/postprocess.rst Normal file
View File

@ -0,0 +1,33 @@
Gallium Post-processing
=======================
The Gallium drivers support user-defined image post-processing. At the
end of drawing a frame a post-processing filter can be applied to the
rendered image. Example filters include morphological antialiasing and
cell shading.
The filters can be toggled per-app via driconf, or per-session via the
corresponding environment variables.
Multiple filters can be used together.
PP environment variables
------------------------
- PP_DEBUG - If defined debug information will be printed to stderr.
Current filters
---------------
- pp_nored, pp_nogreen, pp_noblue - set to 1 to remove the
corresponding color channel. These are basic filters for easy testing
of the PP queue.
- pp_jimenezmlaa, pp_jimenezmlaa_color - `Jimenez's
MLAA <https://www.iryokufx.com/mlaa/>`__ is a morphological
antialiasing filter. The two versions use depth and color data,
respectively. Which works better depends on the app - depth will not
blur text, but it will miss transparent textures for example. Set to
a number from 2 to 32, roughly corresponding to quality. Numbers
higher than 8 see minimizing gains.
- pp_celshade - set to 1 to enable cell shading (a more complex color
filter).

View File

@ -1,36 +0,0 @@
<!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>Precompiled libraries</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Precompiled Libraries</h1>
<p>
In general, precompiled Mesa libraries are not available.
</p>
<p>
Some Linux distributions closely follow the latest Mesa releases. On others one
has to use unofficial channels.
</p>
<p>There are some general directions:</p>
<ul>
<li>Debian/Ubuntu based distros - PPA: xorg-edgers, oibaf and padoka</li>
<li>Fedora - Corp: erp and che</li>
<li>OpenSuse/SLES - OBS: X11:XOrg and pontostroy:X11</li>
<li>Gentoo/Archlinux - officially provided/supported</li>
</ul>
</div>
</body>
</html>

14
docs/precompiled.rst Normal file
View File

@ -0,0 +1,14 @@
Precompiled Libraries
=====================
In general, precompiled Mesa libraries are not available.
Some Linux distributions closely follow the latest Mesa releases. On
others one has to use unofficial channels.
There are some general directions:
- Debian/Ubuntu based distros - PPA: xorg-edgers, oibaf and padoka
- Fedora - Corp: erp and che
- OpenSuse/SLES - OBS: X11:XOrg and pontostroy:X11
- Gentoo/Archlinux - officially provided/supported

View File

@ -1,108 +0,0 @@
<!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>Release Calendar</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Release Calendar</h1>
<h2>Overview</h2>
<p>
Mesa provides feature/development and stable releases.
</p>
<p>
The table below lists the date and release manager that is expected to do the
specific release.
</p>
<p>
Regular updates will ensure that the schedule for the current and the next two
feature releases are shown in the table.
</p>
<p>
In order to keep the whole releasing team up to date with the tools used, best
practices and other details, the member in charge of the next feature release
will be in constant rotation.
</p>
<p>
The way the release schedule works is explained
<a href="releasing.html#schedule" target="_parent">here</a>.
</p>
<p>
Take a look <a href="submittingpatches.html#criteria" target="_parent">here</a>
if you'd like to nominate a patch in the next stable release.
</p>
<h2 id="calendar">Calendar</h2>
<table border="1">
<tr>
<th>Branch</th>
<th>Expected date</th>
<th>Release</th>
<th>Release manager</th>
<th>Notes</th>
</tr>
<tr>
<td rowspan="7">20.1</td>
<td>2020-06-24</td>
<td>20.1.2</td>
<td>Eric Engestrom</td>
<td></td>
</tr>
<tr>
<td>2020-07-08</td>
<td>20.1.3</td>
<td>Eric Engestrom</td>
<td></td>
</tr>
<tr>
<td>2020-07-22</td>
<td>20.1.4</td>
<td>Eric Engestrom</td>
<td></td>
</tr>
<tr>
<td>2020-08-05</td>
<td>20.1.5</td>
<td>Eric Engestrom</td>
<td></td>
</tr>
<tr>
<td>2020-08-19</td>
<td>20.1.6</td>
<td>Eric Engestrom</td>
<td></td>
</tr>
<tr>
<td>2020-09-02</td>
<td>20.1.7</td>
<td>Eric Engestrom</td>
<td></td>
</tr>
<tr>
<td>2020-09-16</td>
<td>20.1.8</td>
<td>Eric Engestrom</td>
<td>Last planned release of the 20.1 series</td>
</tr>
</table>
</div>
</body>
</html>

44
docs/release-calendar.rst Normal file
View File

@ -0,0 +1,44 @@
Release Calendar
================
Overview
--------
Mesa provides feature/development and stable releases.
The table below lists the date and release manager that is expected to
do the specific release.
Regular updates will ensure that the schedule for the current and the
next two feature releases are shown in the table.
In order to keep the whole releasing team up to date with the tools
used, best practices and other details, the member in charge of the next
feature release will be in constant rotation.
The way the release schedule works is explained
`here <releasing.html#schedule>`__.
Take a look `here <submittingpatches.html#criteria>`__ if you'd like to
nominate a patch in the next stable release.
Calendar
--------
+--------+---------------+---------+-----------------+-----------------------------------------+
| Branch | Expected date | Release | Release manager | Notes |
+========+===============+=========+=================+=========================================+
| 20.1 | 2020-06-24 | 20.1.2 | Eric Engestrom | |
| +---------------+---------+-----------------+-----------------------------------------+
| | 2020-07-08 | 20.1.3 | Eric Engestrom | |
| +---------------+---------+-----------------+-----------------------------------------+
| | 2020-07-22 | 20.1.4 | Eric Engestrom | |
| +---------------+---------+-----------------+-----------------------------------------+
| | 2020-08-05 | 20.1.5 | Eric Engestrom | |
| +---------------+---------+-----------------+-----------------------------------------+
| | 2020-08-19 | 20.1.6 | Eric Engestrom | |
| +---------------+---------+-----------------+-----------------------------------------+
| | 2020-09-02 | 20.1.7 | Eric Engestrom | |
| +---------------+---------+-----------------+-----------------------------------------+
| | 2020-09-16 | 20.1.8 | Eric Engestrom | Last planned release of the 20.1 series |
+--------+---------------+---------+-----------------+-----------------------------------------+

View File

@ -1,423 +0,0 @@
<!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>Releasing Process</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Releasing Process</h1>
<ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#schedule">Release schedule</a></li>
<li><a href="#pickntest">Cherry-pick and test</a></li>
<li><a href="#stagingbranch">Staging branch</a></li>
<li><a href="#branch">Making a branchpoint</a></li>
<li><a href="#release">Making a new release</a></li>
<li><a href="#announce">Announce the release</a></li>
<li><a href="#gitlab">Update Gitlab Issues</a></li>
</ul>
<h2 id="overview">Overview</h2>
<p>
This document uses the convention X.Y.Z for the release number with X.Y being
the stable branch name.
</p>
<p>
Mesa provides feature and bugfix releases. Former use zero as patch version (Z),
while the latter have a non-zero one.
</p>
<p>
For example:
</p>
<pre>
Mesa 10.1.0 - 10.1 branch, feature
Mesa 10.1.4 - 10.1 branch, bugfix
Mesa 12.0.0 - 12.0 branch, feature
Mesa 12.0.2 - 12.0 branch, bugfix
</pre>
<h2 id="schedule">Release schedule</h2>
<p>
Releases should happen on Wednesdays. Delays can occur although those
should be kept to a minimum.
</p>
<p>
See our <a href="release-calendar.html" target="_parent">calendar</a>
for information about how the release schedule is planned, and the
date and other details for individual releases.
</p>
<h2>Feature releases</h2>
<ul>
<li>Available approximately every three months.</li>
<li>Initial timeplan available 2-4 weeks before the planned branchpoint (rc1)
on the mesa-announce@ mailing list.</li>
<li>Typically, the final release will happen after 4
candidates. Additional ones may be needed in order to resolve blocking
regressions, though.</li>
</ul>
<h2>Stable releases</h2>
<ul>
<li>Normally available once every two weeks.</li>
<li>Only the latest branch has releases. See note below.</li>
</ul>
<p>
Note: There is one or two releases overlap when changing branches. For example:
</p>
<p>
The final release from the 12.0 series Mesa 12.0.5 will be out around the same
time (or shortly after) 13.0.1 is out.
</p>
<p>
This also involves that, as a final release may be delayed due to the
need of additional candidates to solve some blocking regression(s),
the release manager might have to update
the <a href="release-calendar.html" target="_parent">calendar</a> with
additional bug fix releases of the current stable branch.
</p>
<h2 id="pickntest">Cherry-picking and testing</h2>
<p>
Commits nominated for the active branch are picked as based on the
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> as
described in the same section.
</p>
<p>
Nominations happen via special tags in the commit messages, and via gitlab
merge requests against the staging branches. There are special scripts used
to read the tags.
</p>
<p>
The maintainer should watch or be in contact with the Intel CI team, as well
as watch the gitlab CI for regressions.
</p>
<p>
Cherry picking should be done with the '-x' switch (to automatically add
"cherry picked from ..." to the commit message):
</p>
<code>
git cherry-pick -x abcdef12345667890
</code>
<p>
Developers can request, <em>as an exception</em>, patches to be applied up-to
the last one hour before the actual release. This is made <strong>only</strong>
with explicit permission/request, and the patch <strong>must</strong> be very
well contained. Thus it cannot affect more than one driver/subsystem.
</p>
<p>Following developers have requested permanent exception</p>
<ul>
<li><em>Ilia Mirkin</em></li>
<li><em>AMD team</em></li>
</ul>
<p>The gitlab CI must pass.</p>
<p>
For Windows related changes, the main contact point is Brian
Paul. Jose Fonseca can also help as a fallback contact.
</p>
<p>
For Android related changes, the main contact is Tapani
P&auml;lli. Mauro Rossi is collaborating with android-x86 and may
provide feedback about the build status in that project.
</p>
<p>
For MacOSX related changes, Jeremy Huddleston Sequoia is currently a
good contact point.
</p>
<p>
<strong>Note:</strong> If a patch in the current queue needs any additional
fix(es), then they should be squashed together. The commit messages and the
&quot;<code>cherry picked from</code>&quot;-tags must be preserved.
</p>
<pre>
git show b10859ec41d09c57663a258f43fe57c12332698e
commit b10859ec41d09c57663a258f43fe57c12332698e
Author: Jonas Pfeil &lt;pfeiljonas@gmx.de&gt;
Date: Wed Mar 1 18:11:10 2017 +0100
ralloc: Make sure ralloc() allocations match malloc()'s alignment.
The header of ralloc needs to be aligned, because the compiler assumes
...
(cherry picked from commit cd2b55e536dc806f9358f71db438dd9c246cdb14)
Squashed with commit:
ralloc: don't leave out the alignment factor
Experimentation shows that without alignment factor gcc and clang choose
...
(cherry picked from commit ff494fe999510ea40e3ed5827e7818550b6de126)
</pre>
<h2>Regression/functionality testing</h2>
<ul>
<li><em>no regressions should be observed for Piglit/dEQP/CTS/Vulkan on Intel platforms</em></li>
<li><em>no regressions should be observed for Piglit using the swrast, softpipe
and llvmpipe drivers</em></li>
</ul>
<h2 id="stagingbranch">Staging branch</h2>
<p>
A live branch, which contains the currently merge/rejected patches is available
in the main repository under <code>staging/X.Y</code>. For example:
</p>
<pre>
staging/18.1 - WIP branch for the 18.1 series
staging/18.2 - WIP branch for the 18.2 series
</pre>
<p>
Notes:
</p>
<ul>
<li>People are encouraged to test the staging branch and report regressions.</li>
<li>The branch history is not stable and it <strong>will</strong> be rebased,</li>
</ul>
<h2 id="branch">Making a branchpoint</h2>
<p>
A branchpoint is made such that new development can continue in parallel to
stabilisation and bugfixing.
</p>
<p>
Note: Before doing a branch ensure that basic build and <code>meson test</code>
testing is done and there are little to-no issues. Ideally all of those should
be tackled already.
</p>
<p>
Check if the version number is going to remain as, alternatively
<code> git mv docs/relnotes/{current,new}.html </code> as appropriate.
</p>
<p>
To setup the branchpoint:
</p>
<pre>
git checkout master # make sure we're in master first
git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint"
git checkout -b X.Y
git checkout master
$EDITOR VERSION # bump the version number
git commit -as
truncate docs/relnotes/new_features.txt
git commit -a
git push origin X.Y-branchpoint X.Y
</pre>
<p>
Now go to
<a href="https://gitlab.freedesktop.org/mesa/mesa/-/milestones" target="_parent">gitlab</a> and add the new Mesa version X.Y.
</p>
<p>
Check that there are no distribution breaking changes and revert them if needed.
For example: files being overwritten on install, etc. Happens extremely rarely -
we had only one case so far (see commit 2ced8eb136528914e1bf4e000dea06a9d53c7e04).
</p>
<h2 id="release">Making a new release</h2>
<p>
These are the instructions for making a new Mesa release.
</p>
<h3>Get latest source files</h3>
<p>
Ensure the latest code is available - both in your local master and the
relevant branch.
</p>
<h3 id="basictesting">Perform basic testing</h3>
<p>
Most of the testing should already be done during the
<a href="#pickntest">cherry-pick</a>
So we do a quick 'touch test'
</p>
<ul>
<li>meson dist</li>
<li>scons (from release tarball)</li>
<li>the produced binaries work</li>
</ul>
<p>
Here is one solution:
</p>
<pre>
__glxgears_cmd='glxgears 2&gt;&amp;1 | grep -v "configuration file"'
__es2info_cmd='es2_info 2&gt;&amp;1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
__es2gears_cmd='es2gears_x11 2&gt;&amp;1 | grep -v "configuration file"'
test "x$LD_LIBRARY_PATH" != 'x' &amp;&amp; __old_ld="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}"
export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/
export LIBGL_DEBUG=verbose
eval $__glxinfo_cmd
eval $__glxgears_cmd
eval $__es2info_cmd
eval $__es2gears_cmd
export LIBGL_ALWAYS_SOFTWARE=true
eval $__glxinfo_cmd
eval $__glxgears_cmd
eval $__es2info_cmd
eval $__es2gears_cmd
export LIBGL_ALWAYS_SOFTWARE=true
export GALLIUM_DRIVER=softpipe
eval $__glxinfo_cmd
eval $__glxgears_cmd
eval $__es2info_cmd
eval $__es2gears_cmd
# Smoke test DOTA2
unset LD_LIBRARY_PATH
test "x$__old_ld" != 'x' &amp;&amp; export LD_LIBRARY_PATH="$__old_ld" &amp;&amp; unset __old_ld
unset LIBGL_DRIVERS_PATH
unset LIBGL_DEBUG
unset LIBGL_ALWAYS_SOFTWARE
unset GALLIUM_DRIVER
export VK_ICD_FILENAMES=`pwd`/test/usr/local/share/vulkan/icd.d/intel_icd.x86_64.json
steam steam://rungameid/570 -vconsole -vulkan
unset VK_ICD_FILENAMES
</pre>
<h3>Create release notes for the new release</h3>
<p>
The release notes are completely generated by the
<code>bin/gen_release_notes.py</code> script. Simply run this script before
bumping the version, and commit the results.
The only thing left to do is add the sha256 sums.
</p>
<p>
Increment the version contained in the file VERSION at Mesa's top-level, then
commit this change.
</p>
<p>
Commit these changes and push the branch.
</p>
<pre>
git push origin HEAD
</pre>
<h3>Use the release.sh script from xorg <a href="https://cgit.freedesktop.org/xorg/util/modular/">util-modular</a></h3>
<p>
Start the release process.
</p>
<pre>
../relative/path/to/release.sh . # append --dist if you've already done distcheck above
</pre>
<p>
Pay close attention to the prompts as you might be required to enter your GPG
and SSH passphrase(s) to sign and upload the files, respectively.
</p>
<h3>Add the sha256sums to the release notes</h3>
<p>
Edit docs/relnotes/X.Y.Z.html to add the sha256sum as available in the mesa-X.Y.Z.announce template. Commit this change.
</p>
<h3>Back on mesa master, add the new release notes into the tree</h3>
<p>
Something like the following steps will do the trick:
</p>
<pre>
git cherry-pick -x X.Y~1
git cherry-pick -x X.Y
</pre>
<p>Then run the <pre>./bin/post_version.py X.Y.Z</pre>, where X.Y.Z is the
version you just made. This will updated docs/relnotes.html,
docs/index.html, and docs/release-calendar.html. It will then generate
a git commit automatically. Check that everything looks correct and push:
</p>
<pre>
git push origin master X.Y
</pre>
<h2 id="announce">Announce the release</h2>
<p>
Use the generated template during the releasing process.
</p>
<p>
Again, pay attention to add a note to warn about a final release in a
series, if that is the case.
</p>
<h2 id="gitlab">Update gitlab issues</h2>
<p>
Parse through the bug reports as listed in the docs/relnotes/X.Y.Z.html
document. If there's outstanding action, close the bug referencing the commit
ID which addresses the bug and mention the Mesa version that has the fix.
</p>
<p>
Note: the above is not applicable to all the reports, so use common sense.
</p>
</div>
</body>
</html>

351
docs/releasing.rst Normal file
View File

@ -0,0 +1,351 @@
Releasing Process
=================
- `Overview <#overview>`__
- `Release schedule <#schedule>`__
- `Cherry-pick and test <#pickntest>`__
- `Staging branch <#stagingbranch>`__
- `Making a branchpoint <#branch>`__
- `Making a new release <#release>`__
- `Announce the release <#announce>`__
- `Update Gitlab Issues <#gitlab>`__
Overview
--------
This document uses the convention X.Y.Z for the release number with X.Y
being the stable branch name.
Mesa provides feature and bugfix releases. Former use zero as patch
version (Z), while the latter have a non-zero one.
For example:
::
Mesa 10.1.0 - 10.1 branch, feature
Mesa 10.1.4 - 10.1 branch, bugfix
Mesa 12.0.0 - 12.0 branch, feature
Mesa 12.0.2 - 12.0 branch, bugfix
.. _schedule:
Release schedule
----------------
Releases should happen on Wednesdays. Delays can occur although those
should be kept to a minimum.
See our `calendar <release-calendar.html>`__ for information about how
the release schedule is planned, and the date and other details for
individual releases.
Feature releases
----------------
- Available approximately every three months.
- Initial timeplan available 2-4 weeks before the planned branchpoint
(rc1) on the mesa-announce@ mailing list.
- Typically, the final release will happen after 4 candidates.
Additional ones may be needed in order to resolve blocking
regressions, though.
Stable releases
---------------
- Normally available once every two weeks.
- Only the latest branch has releases. See note below.
Note: There is one or two releases overlap when changing branches. For
example:
The final release from the 12.0 series Mesa 12.0.5 will be out around
the same time (or shortly after) 13.0.1 is out.
This also involves that, as a final release may be delayed due to the
need of additional candidates to solve some blocking regression(s), the
release manager might have to update the
`calendar <release-calendar.html>`__ with additional bug fix releases of
the current stable branch.
.. _pickntest:
Cherry-picking and testing
--------------------------
Commits nominated for the active branch are picked as based on the
`criteria <submittingpatches.html#criteria>`__ as described in the same
section.
Nominations happen via special tags in the commit messages, and via
gitlab merge requests against the staging branches. There are special
scripts used to read the tags.
The maintainer should watch or be in contact with the Intel CI team, as
well as watch the gitlab CI for regressions.
Cherry picking should be done with the '-x' switch (to automatically add
"cherry picked from ..." to the commit message):
``git cherry-pick -x abcdef12345667890``
Developers can request, *as an exception*, patches to be applied up-to
the last one hour before the actual release. This is made **only** with
explicit permission/request, and the patch **must** be very well
contained. Thus it cannot affect more than one driver/subsystem.
Following developers have requested permanent exception
- *Ilia Mirkin*
- *AMD team*
The gitlab CI must pass.
For Windows related changes, the main contact point is Brian Paul. Jose
Fonseca can also help as a fallback contact.
For Android related changes, the main contact is Tapani Pälli. Mauro
Rossi is collaborating with android-x86 and may provide feedback about
the build status in that project.
For MacOSX related changes, Jeremy Huddleston Sequoia is currently a
good contact point.
**Note:** If a patch in the current queue needs any additional fix(es),
then they should be squashed together. The commit messages and the
"``cherry picked from``"-tags must be preserved.
::
git show b10859ec41d09c57663a258f43fe57c12332698e
commit b10859ec41d09c57663a258f43fe57c12332698e
Author: Jonas Pfeil <pfeiljonas@gmx.de>
Date: Wed Mar 1 18:11:10 2017 +0100
ralloc: Make sure ralloc() allocations match malloc()'s alignment.
The header of ralloc needs to be aligned, because the compiler assumes
...
(cherry picked from commit cd2b55e536dc806f9358f71db438dd9c246cdb14)
Squashed with commit:
ralloc: don't leave out the alignment factor
Experimentation shows that without alignment factor gcc and clang choose
...
(cherry picked from commit ff494fe999510ea40e3ed5827e7818550b6de126)
Regression/functionality testing
--------------------------------
- *no regressions should be observed for Piglit/dEQP/CTS/Vulkan on
Intel platforms*
- *no regressions should be observed for Piglit using the swrast,
softpipe and llvmpipe drivers*
.. _stagingbranch:
Staging branch
--------------
A live branch, which contains the currently merge/rejected patches is
available in the main repository under ``staging/X.Y``. For example:
::
staging/18.1 - WIP branch for the 18.1 series
staging/18.2 - WIP branch for the 18.2 series
Notes:
- People are encouraged to test the staging branch and report
regressions.
- The branch history is not stable and it **will** be rebased,
.. _branch:
Making a branchpoint
--------------------
A branchpoint is made such that new development can continue in parallel
to stabilisation and bugfixing.
Note: Before doing a branch ensure that basic build and ``meson test``
testing is done and there are little to-no issues. Ideally all of those
should be tackled already.
Check if the version number is going to remain as, alternatively
``git mv docs/relnotes/{current,new}.html`` as appropriate.
To setup the branchpoint:
::
git checkout master # make sure we're in master first
git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint"
git checkout -b X.Y
git checkout master
$EDITOR VERSION # bump the version number
git commit -as
truncate docs/relnotes/new_features.txt
git commit -a
git push origin X.Y-branchpoint X.Y
Now go to
`gitlab <https://gitlab.freedesktop.org/mesa/mesa/-/milestones>`__ and
add the new Mesa version X.Y.
Check that there are no distribution breaking changes and revert them if
needed. For example: files being overwritten on install, etc. Happens
extremely rarely - we had only one case so far (see commit
2ced8eb136528914e1bf4e000dea06a9d53c7e04).
.. _release:
Making a new release
--------------------
These are the instructions for making a new Mesa release.
Get latest source files
~~~~~~~~~~~~~~~~~~~~~~~
Ensure the latest code is available - both in your local master and the
relevant branch.
.. _basictesting:
Perform basic testing
~~~~~~~~~~~~~~~~~~~~~
Most of the testing should already be done during the
`cherry-pick <#pickntest>`__ So we do a quick 'touch test'
- meson dist
- scons (from release tarball)
- the produced binaries work
Here is one solution:
::
__glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"'
__es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
__es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"'
test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}"
export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/
export LIBGL_DEBUG=verbose
eval $__glxinfo_cmd
eval $__glxgears_cmd
eval $__es2info_cmd
eval $__es2gears_cmd
export LIBGL_ALWAYS_SOFTWARE=true
eval $__glxinfo_cmd
eval $__glxgears_cmd
eval $__es2info_cmd
eval $__es2gears_cmd
export LIBGL_ALWAYS_SOFTWARE=true
export GALLIUM_DRIVER=softpipe
eval $__glxinfo_cmd
eval $__glxgears_cmd
eval $__es2info_cmd
eval $__es2gears_cmd
# Smoke test DOTA2
unset LD_LIBRARY_PATH
test "x$__old_ld" != 'x' && export LD_LIBRARY_PATH="$__old_ld" && unset __old_ld
unset LIBGL_DRIVERS_PATH
unset LIBGL_DEBUG
unset LIBGL_ALWAYS_SOFTWARE
unset GALLIUM_DRIVER
export VK_ICD_FILENAMES=`pwd`/test/usr/local/share/vulkan/icd.d/intel_icd.x86_64.json
steam steam://rungameid/570 -vconsole -vulkan
unset VK_ICD_FILENAMES
Create release notes for the new release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The release notes are completely generated by the
``bin/gen_release_notes.py`` script. Simply run this script before
bumping the version, and commit the results. The only thing left to do
is add the sha256 sums.
Increment the version contained in the file VERSION at Mesa's top-level,
then commit this change.
Commit these changes and push the branch.
::
git push origin HEAD
Use the release.sh script from xorg `util-modular <https://cgit.freedesktop.org/xorg/util/modular/>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start the release process.
::
../relative/path/to/release.sh . # append --dist if you've already done distcheck above
Pay close attention to the prompts as you might be required to enter
your GPG and SSH passphrase(s) to sign and upload the files,
respectively.
Add the sha256sums to the release notes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit docs/relnotes/X.Y.Z.html to add the sha256sum as available in the
mesa-X.Y.Z.announce template. Commit this change.
Back on mesa master, add the new release notes into the tree
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Something like the following steps will do the trick:
::
git cherry-pick -x X.Y~1
git cherry-pick -x X.Y
Then run the
::
./bin/post_version.py X.Y.Z
, where X.Y.Z is the version you just made. This will updated
docs/relnotes.html, docs/index.html, and docs/release-calendar.html. It
will then generate a git commit automatically. Check that everything
looks correct and push:
::
git push origin master X.Y
.. _announce:
Announce the release
--------------------
Use the generated template during the releasing process.
Again, pay attention to add a note to warn about a final release in a
series, if that is the case.
.. _gitlab:
Update gitlab issues
--------------------
Parse through the bug reports as listed in the docs/relnotes/X.Y.Z.html
document. If there's outstanding action, close the bug referencing the
commit ID which addresses the bug and mention the Mesa version that has
the fix.
Note: the above is not applicable to all the reports, so use common
sense.

View File

@ -1,871 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="contents.html"></iframe>
<div class="content">
<h1>Release Notes</h1>
<p>
The release notes summarize what's new or changed in each Mesa release.
</p>
<ul>
<li><a href="relnotes/20.0.8.html">20.0.8 release notes</a></li>
<li><a href="relnotes/20.1.1.html">20.1.1 release notes</a></li>
<li><a href="relnotes/20.1.0.html">20.1.0 release notes</a></li>
<li><a href="relnotes/20.0.7.html">20.0.7 release notes</a></li>
<li><a href="relnotes/20.0.6.html">20.0.6 release notes</a></li>
<li><a href="relnotes/20.0.5.html">20.0.5 release notes</a></li>
<li><a href="relnotes/20.0.4.html">20.0.4 release notes</a></li>
<li><a href="relnotes/20.0.3.html">20.0.3 release notes</a></li>
<li><a href="relnotes/20.0.2.html">20.0.2 release notes</a></li>
<li><a href="relnotes/19.3.5.html">19.3.5 release notes</a></li>
<li><a href="relnotes/20.0.1.html">20.0.1 release notes</a></li>
<li><a href="relnotes/20.0.0.html">20.0.0 release notes</a></li>
<li><a href="relnotes/19.3.4.html">19.3.4 release notes</a></li>
<li><a href="relnotes/19.3.3.html">19.3.3 release notes</a></li>
<li><a href="relnotes/19.3.2.html">19.3.2 release notes</a></li>
<li><a href="relnotes/19.2.8.html">19.2.8 release notes</a></li>
<li><a href="relnotes/19.3.1.html">19.3.1 release notes</a></li>
<li><a href="relnotes/19.3.0.html">19.3.0 release notes</a></li>
<li><a href="relnotes/19.2.7.html">19.2.7 release notes</a></li>
<li><a href="relnotes/19.2.6.html">19.2.6 release notes</a></li>
<li><a href="relnotes/19.2.5.html">19.2.5 release notes</a></li>
<li><a href="relnotes/19.2.4.html">19.2.4 release notes</a></li>
<li><a href="relnotes/19.2.3.html">19.2.3 release notes</a></li>
<li><a href="relnotes/19.2.2.html">19.2.2 release notes</a></li>
<li>
<a href="relnotes/19.1.8.html">19.1.8 release notes</a>
</li>
<li><a href="relnotes/19.2.1.html">19.2.1 release notes</a></li>
<li>
<a href="relnotes/19.2.0.html">19.2.0 release notes</a>
</li>
<li>
<a href="relnotes/19.1.7.html">19.1.7 release notes</a>
</li>
<li>
<a href="relnotes/19.1.6.html">19.1.6 release notes</a>
</li>
<li>
<a href="relnotes/19.1.5.html">19.1.5 release notes</a>
</li>
<li>
<a href="relnotes/19.1.4.html">19.1.4 release notes</a>
</li>
<li>
<a href="relnotes/19.1.3.html">19.1.3 release notes</a>
</li>
<li>
<a href="relnotes/19.1.2.html">19.1.2 release notes</a>
</li>
<li>
<a href="relnotes/19.0.8.html">19.0.8 release notes</a>
</li>
<li>
<a href="relnotes/19.1.1.html">19.1.1 release notes</a>
</li>
<li>
<a href="relnotes/19.0.7.html">19.0.7 release notes</a>
</li>
<li>
<a href="relnotes/19.1.0.html">19.1.0 release notes</a>
</li>
<li>
<a href="relnotes/19.0.6.html">19.0.6 release notes</a>
</li>
<li>
<a href="relnotes/19.0.5.html">19.0.5 release notes</a>
</li>
<li>
<a href="relnotes/19.0.4.html">19.0.4 release notes</a>
</li>
<li>
<a href="relnotes/19.0.3.html">19.0.3 release notes</a>
</li>
<li>
<a href="relnotes/19.0.2.html">19.0.2 release notes</a>
</li>
<li>
<a href="relnotes/18.3.6.html">18.3.6 release notes</a>
</li>
<li>
<a href="relnotes/19.0.1.html">19.0.1 release notes</a>
</li>
<li>
<a href="relnotes/18.3.5.html">18.3.5 release notes</a>
</li>
<li>
<a href="relnotes/19.0.0.html">19.0.0 release notes</a>
</li>
<li>
<a href="relnotes/18.3.4.html">18.3.4 release notes</a>
</li>
<li>
<a href="relnotes/18.3.3.html">18.3.3 release notes</a>
</li>
<li>
<a href="relnotes/18.3.2.html">18.3.2 release notes</a>
</li>
<li>
<a href="relnotes/18.2.8.html">18.2.8 release notes</a>
</li>
<li>
<a href="relnotes/18.2.7.html">18.2.7 release notes</a>
</li>
<li>
<a href="relnotes/18.3.1.html">18.3.1 release notes</a>
</li>
<li>
<a href="relnotes/18.3.0.html">18.3.0 release notes</a>
</li>
<li>
<a href="relnotes/18.2.6.html">18.2.6 release notes</a>
</li>
<li>
<a href="relnotes/18.2.5.html">18.2.5 release notes</a>
</li>
<li>
<a href="relnotes/18.2.4.html">18.2.4 release notes</a>
</li>
<li>
<a href="relnotes/18.2.3.html">18.2.3 release notes</a>
</li>
<li>
<a href="relnotes/18.2.2.html">18.2.2 release notes</a>
</li>
<li>
<a href="relnotes/18.1.9.html">18.1.9 release notes</a>
</li>
<li>
<a href="relnotes/18.2.1.html">18.2.1 release notes</a>
</li>
<li>
<a href="relnotes/18.2.0.html">18.2.0 release notes</a>
</li>
<li>
<a href="relnotes/18.1.8.html">18.1.8 release notes</a>
</li>
<li>
<a href="relnotes/18.1.7.html">18.1.7 release notes</a>
</li>
<li>
<a href="relnotes/18.1.6.html">18.1.6 release notes</a>
</li>
<li>
<a href="relnotes/18.1.5.html">18.1.5 release notes</a>
</li>
<li>
<a href="relnotes/18.1.4.html">18.1.4 release notes</a>
</li>
<li>
<a href="relnotes/18.1.3.html">18.1.3 release notes</a>
</li>
<li>
<a href="relnotes/18.1.2.html">18.1.2 release notes</a>
</li>
<li>
<a href="relnotes/18.0.5.html">18.0.5 release notes</a>
</li>
<li>
<a href="relnotes/18.1.1.html">18.1.1 release notes</a>
</li>
<li>
<a href="relnotes/18.1.0.html">18.1.0 release notes</a>
</li>
<li>
<a href="relnotes/18.0.4.html">18.0.4 release notes</a>
</li>
<li>
<a href="relnotes/18.0.3.html">18.0.3 release notes</a>
</li>
<li>
<a href="relnotes/18.0.2.html">18.0.2 release notes</a>
</li>
<li>
<a href="relnotes/18.0.1.html">18.0.1 release notes</a>
</li>
<li>
<a href="relnotes/17.3.9.html">17.3.9 release notes</a>
</li>
<li>
<a href="relnotes/17.3.8.html">17.3.8 release notes</a>
</li>
<li>
<a href="relnotes/18.0.0.html">18.0.0 release notes</a>
</li>
<li>
<a href="relnotes/17.3.7.html">17.3.7 release notes</a>
</li>
<li>
<a href="relnotes/17.3.6.html">17.3.6 release notes</a>
</li>
<li>
<a href="relnotes/17.3.5.html">17.3.5 release notes</a>
</li>
<li>
<a href="relnotes/17.3.4.html">17.3.4 release notes</a>
</li>
<li>
<a href="relnotes/17.3.3.html">17.3.3 release notes</a>
</li>
<li>
<a href="relnotes/17.3.2.html">17.3.2 release notes</a>
</li>
<li>
<a href="relnotes/17.2.8.html">17.2.8 release notes</a>
</li>
<li>
<a href="relnotes/17.3.1.html">17.3.1 release notes</a>
</li>
<li>
<a href="relnotes/17.2.7.html">17.2.7 release notes</a>
</li>
<li>
<a href="relnotes/17.3.0.html">17.3.0 release notes</a>
</li>
<li>
<a href="relnotes/17.2.6.html">17.2.6 release notes</a>
</li>
<li>
<a href="relnotes/17.2.5.html">17.2.5 release notes</a>
</li>
<li>
<a href="relnotes/17.2.4.html">17.2.4 release notes</a>
</li>
<li>
<a href="relnotes/17.2.3.html">17.2.3 release notes</a>
</li>
<li>
<a href="relnotes/17.2.2.html">17.2.2 release notes</a>
</li>
<li>
<a href="relnotes/17.1.10.html">17.1.10 release notes</a>
</li>
<li>
<a href="relnotes/17.2.1.html">17.2.1 release notes</a>
</li>
<li>
<a href="relnotes/17.1.9.html">17.1.9 release notes</a>
</li>
<li>
<a href="relnotes/17.2.0.html">17.2.0 release notes</a>
</li>
<li>
<a href="relnotes/17.1.8.html">17.1.8 release notes</a>
</li>
<li>
<a href="relnotes/17.1.7.html">17.1.7 release notes</a>
</li>
<li>
<a href="relnotes/17.1.6.html">17.1.6 release notes</a>
</li>
<li>
<a href="relnotes/17.1.5.html">17.1.5 release notes</a>
</li>
<li>
<a href="relnotes/17.1.4.html">17.1.4 release notes</a>
</li>
<li>
<a href="relnotes/17.1.3.html">17.1.3 release notes</a>
</li>
<li>
<a href="relnotes/17.1.2.html">17.1.2 release notes</a>
</li>
<li>
<a href="relnotes/17.0.7.html">17.0.7 release notes</a>
</li>
<li>
<a href="relnotes/17.1.1.html">17.1.1 release notes</a>
</li>
<li>
<a href="relnotes/17.0.6.html">17.0.6 release notes</a>
</li>
<li>
<a href="relnotes/17.1.0.html">17.1.0 release notes</a>
</li>
<li>
<a href="relnotes/17.0.5.html">17.0.5 release notes</a>
</li>
<li>
<a href="relnotes/17.0.4.html">17.0.4 release notes</a>
</li>
<li>
<a href="relnotes/17.0.3.html">17.0.3 release notes</a>
</li>
<li>
<a href="relnotes/17.0.2.html">17.0.2 release notes</a>
</li>
<li>
<a href="relnotes/13.0.6.html">13.0.6 release notes</a>
</li>
<li>
<a href="relnotes/17.0.1.html">17.0.1 release notes</a>
</li>
<li>
<a href="relnotes/13.0.5.html">13.0.5 release notes</a>
</li>
<li>
<a href="relnotes/17.0.0.html">17.0.0 release notes</a>
</li>
<li>
<a href="relnotes/13.0.4.html">13.0.4 release notes</a>
</li>
<li>
<a href="relnotes/12.0.6.html">12.0.6 release notes</a>
</li>
<li>
<a href="relnotes/13.0.3.html">13.0.3 release notes</a>
</li>
<li>
<a href="relnotes/12.0.5.html">12.0.5 release notes</a>
</li>
<li>
<a href="relnotes/13.0.2.html">13.0.2 release notes</a>
</li>
<li>
<a href="relnotes/13.0.1.html">13.0.1 release notes</a>
</li>
<li>
<a href="relnotes/12.0.4.html">12.0.4 release notes</a>
</li>
<li>
<a href="relnotes/13.0.0.html">13.0.0 release notes</a>
</li>
<li>
<a href="relnotes/12.0.3.html">12.0.3 release notes</a>
</li>
<li>
<a href="relnotes/12.0.2.html">12.0.2 release notes</a>
</li>
<li>
<a href="relnotes/12.0.1.html">12.0.1 release notes</a>
</li>
<li>
<a href="relnotes/12.0.0.html">12.0.0 release notes</a>
</li>
<li>
<a href="relnotes/11.2.2.html">11.2.2 release notes</a>
</li>
<li>
<a href="relnotes/11.1.4.html">11.1.4 release notes</a>
</li>
<li>
<a href="relnotes/11.2.1.html">11.2.1 release notes</a>
</li>
<li>
<a href="relnotes/11.1.3.html">11.1.3 release notes</a>
</li>
<li>
<a href="relnotes/11.2.0.html">11.2.0 release notes</a>
</li>
<li>
<a href="relnotes/11.1.2.html">11.1.2 release notes</a>
</li>
<li>
<a href="relnotes/11.0.9.html">11.0.9 release notes</a>
</li>
<li>
<a href="relnotes/11.1.1.html">11.1.1 release notes</a>
</li>
<li>
<a href="relnotes/11.0.8.html">11.0.8 release notes</a>
</li>
<li>
<a href="relnotes/11.1.0.html">11.1.0 release notes</a>
</li>
<li>
<a href="relnotes/11.0.7.html">11.0.7 release notes</a>
</li>
<li>
<a href="relnotes/11.0.6.html">11.0.6 release notes</a>
</li>
<li>
<a href="relnotes/11.0.5.html">11.0.5 release notes</a>
</li>
<li>
<a href="relnotes/11.0.4.html">11.0.4 release notes</a>
</li>
<li>
<a href="relnotes/11.0.3.html">11.0.3 release notes</a>
</li>
<li>
<a href="relnotes/10.6.9.html">10.6.9 release notes</a>
</li>
<li>
<a href="relnotes/11.0.2.html">11.0.2 release notes</a>
</li>
<li>
<a href="relnotes/11.0.1.html">11.0.1 release notes</a>
</li>
<li>
<a href="relnotes/10.6.8.html">10.6.8 release notes</a>
</li>
<li>
<a href="relnotes/11.0.0.html">11.0.0 release notes</a>
</li>
<li>
<a href="relnotes/10.6.7.html">10.6.7 release notes</a>
</li>
<li>
<a href="relnotes/10.6.6.html">10.6.6 release notes</a>
</li>
<li>
<a href="relnotes/10.6.5.html">10.6.5 release notes</a>
</li>
<li>
<a href="relnotes/10.6.4.html">10.6.4 release notes</a>
</li>
<li>
<a href="relnotes/10.6.3.html">10.6.3 release notes</a>
</li>
<li>
<a href="relnotes/10.6.2.html">10.6.2 release notes</a>
</li>
<li>
<a href="relnotes/10.5.9.html">10.5.9 release notes</a>
</li>
<li>
<a href="relnotes/10.6.1.html">10.6.1 release notes</a>
</li>
<li>
<a href="relnotes/10.5.8.html">10.5.8 release notes</a>
</li>
<li>
<a href="relnotes/10.6.0.html">10.6.0 release notes</a>
</li>
<li>
<a href="relnotes/10.5.7.html">10.5.7 release notes</a>
</li>
<li>
<a href="relnotes/10.5.6.html">10.5.6 release notes</a>
</li>
<li>
<a href="relnotes/10.5.5.html">10.5.5 release notes</a>
</li>
<li>
<a href="relnotes/10.5.4.html">10.5.4 release notes</a>
</li>
<li>
<a href="relnotes/10.5.3.html">10.5.3 release notes</a>
</li>
<li>
<a href="relnotes/10.5.2.html">10.5.2 release notes</a>
</li>
<li>
<a href="relnotes/10.4.7.html">10.4.7 release notes</a>
</li>
<li>
<a href="relnotes/10.5.1.html">10.5.1 release notes</a>
</li>
<li>
<a href="relnotes/10.5.0.html">10.5.0 release notes</a>
</li>
<li>
<a href="relnotes/10.4.6.html">10.4.6 release notes</a>
</li>
<li>
<a href="relnotes/10.4.5.html">10.4.5 release notes</a>
</li>
<li>
<a href="relnotes/10.4.4.html">10.4.4 release notes</a>
</li>
<li>
<a href="relnotes/10.4.3.html">10.4.3 release notes</a>
</li>
<li>
<a href="relnotes/10.4.2.html">10.4.2 release notes</a>
</li>
<li>
<a href="relnotes/10.3.7.html">10.3.7 release notes</a>
</li>
<li>
<a href="relnotes/10.4.1.html">10.4.1 release notes</a>
</li>
<li>
<a href="relnotes/10.3.6.html">10.3.6 release notes</a>
</li>
<li>
<a href="relnotes/10.4.html">10.4 release notes</a>
</li>
<li>
<a href="relnotes/10.3.5.html">10.3.5 release notes</a>
</li>
<li>
<a href="relnotes/10.3.4.html">10.3.4 release notes</a>
</li>
<li>
<a href="relnotes/10.3.3.html">10.3.3 release notes</a>
</li>
<li>
<a href="relnotes/10.3.2.html">10.3.2 release notes</a>
</li>
<li>
<a href="relnotes/10.3.1.html">10.3.1 release notes</a>
</li>
<li>
<a href="relnotes/10.2.9.html">10.2.9 release notes</a>
</li>
<li>
<a href="relnotes/10.3.html">10.3 release notes</a>
</li>
<li>
<a href="relnotes/10.2.8.html">10.2.8 release notes</a>
</li>
<li>
<a href="relnotes/10.2.7.html">10.2.7 release notes</a>
</li>
<li>
<a href="relnotes/10.2.6.html">10.2.6 release notes</a>
</li>
<li>
<a href="relnotes/10.2.5.html">10.2.5 release notes</a>
</li>
<li>
<a href="relnotes/10.2.4.html">10.2.4 release notes</a>
</li>
<li>
<a href="relnotes/10.2.3.html">10.2.3 release notes</a>
</li>
<li>
<a href="relnotes/10.2.2.html">10.2.2 release notes</a>
</li>
<li>
<a href="relnotes/10.2.1.html">10.2.1 release notes</a>
</li>
<li>
<a href="relnotes/10.2.html">10.2 release notes</a>
</li>
<li>
<a href="relnotes/10.1.6.html">10.1.6 release notes</a>
</li>
<li>
<a href="relnotes/10.1.5.html">10.1.5 release notes</a>
</li>
<li>
<a href="relnotes/10.1.4.html">10.1.4 release notes</a>
</li>
<li>
<a href="relnotes/10.1.3.html">10.1.3 release notes</a>
</li>
<li>
<a href="relnotes/10.1.2.html">10.1.2 release notes</a>
</li>
<li>
<a href="relnotes/10.1.1.html">10.1.1 release notes</a>
</li>
<li>
<a href="relnotes/10.1.html">10.1 release notes</a>
</li>
<li>
<a href="relnotes/10.0.5.html">10.0.5 release notes</a>
</li>
<li>
<a href="relnotes/10.0.4.html">10.0.4 release notes</a>
</li>
<li>
<a href="relnotes/10.0.3.html">10.0.3 release notes</a>
</li>
<li>
<a href="relnotes/10.0.2.html">10.0.2 release notes</a>
</li>
<li>
<a href="relnotes/10.0.1.html">10.0.1 release notes</a>
</li>
<li>
<a href="relnotes/10.0.html">10.0 release notes</a>
</li>
<li>
<a href="relnotes/9.2.5.html">9.2.5 release notes</a>
</li>
<li>
<a href="relnotes/9.2.4.html">9.2.4 release notes</a>
</li>
<li>
<a href="relnotes/9.2.3.html">9.2.3 release notes</a>
</li>
<li>
<a href="relnotes/9.2.2.html">9.2.2 release notes</a>
</li>
<li>
<a href="relnotes/9.2.1.html">9.2.1 release notes</a>
</li>
<li>
<a href="relnotes/9.2.html">9.2 release notes</a>
</li>
<li>
<a href="relnotes/9.1.7.html">9.1.7 release notes</a>
</li>
<li>
<a href="relnotes/9.1.6.html">9.1.6 release notes</a>
</li>
<li>
<a href="relnotes/9.1.5.html">9.1.5 release notes</a>
</li>
<li>
<a href="relnotes/9.1.4.html">9.1.4 release notes</a>
</li>
<li>
<a href="relnotes/9.1.3.html">9.1.3 release notes</a>
</li>
<li>
<a href="relnotes/9.1.2.html">9.1.2 release notes</a>
</li>
<li>
<a href="relnotes/9.1.1.html">9.1.1 release notes</a>
</li>
<li>
<a href="relnotes/9.1.html">9.1 release notes</a>
</li>
<li>
<a href="relnotes/9.0.3.html">9.0.3 release notes</a>
</li>
<li>
<a href="relnotes/9.0.2.html">9.0.2 release notes</a>
</li>
<li>
<a href="relnotes/9.0.1.html">9.0.1 release notes</a>
</li>
<li>
<a href="relnotes/9.0.html">9.0 release notes</a>
</li>
<li>
<a href="relnotes/8.0.5.html">8.0.5 release notes</a>
</li>
<li>
<a href="relnotes/8.0.4.html">8.0.4 release notes</a>
</li>
<li>
<a href="relnotes/8.0.3.html">8.0.3 release notes</a>
</li>
<li>
<a href="relnotes/8.0.2.html">8.0.2 release notes</a>
</li>
<li>
<a href="relnotes/8.0.1.html">8.0.1 release notes</a>
</li>
<li>
<a href="relnotes/8.0.html">8.0 release notes</a>
</li>
<li>
<a href="relnotes/7.11.2.html">7.11.2 release notes</a>
</li>
<li>
<a href="relnotes/7.11.1.html">7.11.1 release notes</a>
</li>
<li>
<a href="relnotes/7.11.html">7.11 release notes</a>
</li>
<li>
<a href="relnotes/7.10.3.html">7.10.3 release notes</a>
</li>
<li>
<a href="relnotes/7.10.2.html">7.10.2 release notes</a>
</li>
<li>
<a href="relnotes/7.10.1.html">7.10.1 release notes</a>
</li>
<li>
<a href="relnotes/7.10.html">7.10 release notes</a>
</li>
<li>
<a href="relnotes/7.9.2.html">7.9.2 release notes</a>
</li>
<li>
<a href="relnotes/7.9.1.html">7.9.1 release notes</a>
</li>
<li>
<a href="relnotes/7.9.html">7.9 release notes</a>
</li>
<li>
<a href="relnotes/7.8.3.html">7.8.3 release notes</a>
</li>
<li>
<a href="relnotes/7.8.2.html">7.8.2 release notes</a>
</li>
<li>
<a href="relnotes/7.8.1.html">7.8.1 release notes</a>
</li>
<li>
<a href="relnotes/7.8.html">7.8 release notes</a>
</li>
<li>
<a href="relnotes/7.7.1.html">7.7.1 release notes</a>
</li>
<li>
<a href="relnotes/7.7.html">7.7 release notes</a>
</li>
<li>
<a href="relnotes/7.6.1.html">7.6.1 release notes</a>
</li>
<li>
<a href="relnotes/7.6.html">7.6 release notes</a>
</li>
<li>
<a href="relnotes/7.5.2.html">7.5.2 release notes</a>
</li>
<li>
<a href="relnotes/7.5.1.html">7.5.1 release notes</a>
</li>
<li>
<a href="relnotes/7.5.html">7.5 release notes</a>
</li>
<li>
<a href="relnotes/7.4.4.html">7.4.4 release notes</a>
</li>
<li>
<a href="relnotes/7.4.3.html">7.4.3 release notes</a>
</li>
<li>
<a href="relnotes/7.4.2.html">7.4.2 release notes</a>
</li>
<li>
<a href="relnotes/7.4.1.html">7.4.1 release notes</a>
</li>
<li>
<a href="relnotes/7.4.html">7.4 release notes</a>
</li>
<li>
<a href="relnotes/7.3.html">7.3 release notes</a>
</li>
<li>
<a href="relnotes/7.2.html">7.2 release notes</a>
</li>
<li>
<a href="relnotes/7.1.html">7.1 release notes</a>
</li>
<li>
<a href="relnotes/7.0.4.html">7.0.4 release notes</a>
</li>
<li>
<a href="relnotes/7.0.3.html">7.0.3 release notes</a>
</li>
<li>
<a href="relnotes/7.0.2.html">7.0.2 release notes</a>
</li>
<li>
<a href="relnotes/7.0.1.html">7.0.1 release notes</a>
</li>
<li>
<a href="relnotes/7.0.html">7.0 release notes</a>
</li>
<li>
<a href="relnotes/6.5.3.html">6.5.3 release notes</a>
</li>
<li>
<a href="relnotes/6.5.2.html">6.5.2 release notes</a>
</li>
<li>
<a href="relnotes/6.5.1.html">6.5.1 release notes</a>
</li>
<li>
<a href="relnotes/6.5.html">6.5 release notes</a>
</li>
<li>
<a href="relnotes/6.4.2.html">6.4.2 release notes</a>
</li>
<li>
<a href="relnotes/6.4.1.html">6.4.1 release notes</a>
</li>
<li>
<a href="relnotes/6.4.html">6.4 release notes</a>
</li>
</ul>
<p>
Versions of Mesa prior to 6.4 are summarized in the
<a href="versions.html">versions file</a> and the following release notes.
</p>
<ul>
<li>
<a href="relnotes/6.3.2">6.3.2 release notes</a>
</li>
<li>
<a href="relnotes/6.3.1">6.3.1 release notes</a>
</li>
<li>
<a href="relnotes/6.3">6.3 release notes</a>
</li>
<li>
<a href="relnotes/6.2.1">6.2.1 release notes</a>
</li>
<li>
<a href="relnotes/6.2">6.2 release notes</a>
</li>
<li>
<a href="relnotes/6.1">6.1 release notes</a>
</li>
<li>
<a href="relnotes/6.0.1">6.0.1 release notes</a>
</li>
<li>
<a href="relnotes/6.0">6.0 release notes</a>
</li>
<li>
<a href="relnotes/5.1">5.1 release notes</a>
</li>
<li>
<a href="relnotes/5.0.2">5.0.2 release notes</a>
</li>
<li>
<a href="relnotes/5.0.1">5.0.1 release notes</a>
</li>
<li>
<a href="relnotes/5.0">5.0 release notes</a>
</li>
<li>
<a href="relnotes/4.1">4.1 release notes</a>
</li>
<li>
<a href="relnotes/4.0.3">4.0.3 release notes</a>
</li>
<li>
<a href="relnotes/4.0.2">4.0.2 release notes</a>
</li>
<li>
<a href="relnotes/4.0.1">4.0.1 release notes</a>
</li>
<li>
<a href="relnotes/4.0">4.0 release notes</a>
</li>
<li>
<a href="relnotes/3.5">3.5 release notes</a>
</li>
<li>
<a href="relnotes/3.4.2">3.4.2 release notes</a>
</li>
<li>
<a href="relnotes/3.4.1">3.4.1 release notes</a>
</li>
<li>
<a href="relnotes/3.4">3.4 release notes</a>
</li>
<li>
<a href="relnotes/3.3">3.3 release notes</a>
</li>
<li>
<a href="relnotes/3.2.1">3.2.1 release notes</a>
</li>
<li>
<a href="relnotes/3.2">3.2 release notes</a>
</li>
<li>
<a href="relnotes/3.1">3.1 release notes</a>
</li>
</ul>
</div>
</body>
</html>

580
docs/relnotes.rst Normal file
View File

@ -0,0 +1,580 @@
Release Notes
=============
The release notes summarize what's new or changed in each Mesa release.
- `20.0.8 release notes <relnotes/20.0.8.html>`__
- `20.1.1 release notes <relnotes/20.1.1.html>`__
- `20.1.0 release notes <relnotes/20.1.0.html>`__
- `20.0.7 release notes <relnotes/20.0.7.html>`__
- `20.0.6 release notes <relnotes/20.0.6.html>`__
- `20.0.5 release notes <relnotes/20.0.5.html>`__
- `20.0.4 release notes <relnotes/20.0.4.html>`__
- `20.0.3 release notes <relnotes/20.0.3.html>`__
- `20.0.2 release notes <relnotes/20.0.2.html>`__
- `19.3.5 release notes <relnotes/19.3.5.html>`__
- `20.0.1 release notes <relnotes/20.0.1.html>`__
- `20.0.0 release notes <relnotes/20.0.0.html>`__
- `19.3.4 release notes <relnotes/19.3.4.html>`__
- `19.3.3 release notes <relnotes/19.3.3.html>`__
- `19.3.2 release notes <relnotes/19.3.2.html>`__
- `19.2.8 release notes <relnotes/19.2.8.html>`__
- `19.3.1 release notes <relnotes/19.3.1.html>`__
- `19.3.0 release notes <relnotes/19.3.0.html>`__
- `19.2.7 release notes <relnotes/19.2.7.html>`__
- `19.2.6 release notes <relnotes/19.2.6.html>`__
- `19.2.5 release notes <relnotes/19.2.5.html>`__
- `19.2.4 release notes <relnotes/19.2.4.html>`__
- `19.2.3 release notes <relnotes/19.2.3.html>`__
- `19.2.2 release notes <relnotes/19.2.2.html>`__
- `19.1.8 release notes <relnotes/19.1.8.html>`__
- `19.2.1 release notes <relnotes/19.2.1.html>`__
- `19.2.0 release notes <relnotes/19.2.0.html>`__
- `19.1.7 release notes <relnotes/19.1.7.html>`__
- `19.1.6 release notes <relnotes/19.1.6.html>`__
- `19.1.5 release notes <relnotes/19.1.5.html>`__
- `19.1.4 release notes <relnotes/19.1.4.html>`__
- `19.1.3 release notes <relnotes/19.1.3.html>`__
- `19.1.2 release notes <relnotes/19.1.2.html>`__
- `19.0.8 release notes <relnotes/19.0.8.html>`__
- `19.1.1 release notes <relnotes/19.1.1.html>`__
- `19.0.7 release notes <relnotes/19.0.7.html>`__
- `19.1.0 release notes <relnotes/19.1.0.html>`__
- `19.0.6 release notes <relnotes/19.0.6.html>`__
- `19.0.5 release notes <relnotes/19.0.5.html>`__
- `19.0.4 release notes <relnotes/19.0.4.html>`__
- `19.0.3 release notes <relnotes/19.0.3.html>`__
- `19.0.2 release notes <relnotes/19.0.2.html>`__
- `18.3.6 release notes <relnotes/18.3.6.html>`__
- `19.0.1 release notes <relnotes/19.0.1.html>`__
- `18.3.5 release notes <relnotes/18.3.5.html>`__
- `19.0.0 release notes <relnotes/19.0.0.html>`__
- `18.3.4 release notes <relnotes/18.3.4.html>`__
- `18.3.3 release notes <relnotes/18.3.3.html>`__
- `18.3.2 release notes <relnotes/18.3.2.html>`__
- `18.2.8 release notes <relnotes/18.2.8.html>`__
- `18.2.7 release notes <relnotes/18.2.7.html>`__
- `18.3.1 release notes <relnotes/18.3.1.html>`__
- `18.3.0 release notes <relnotes/18.3.0.html>`__
- `18.2.6 release notes <relnotes/18.2.6.html>`__
- `18.2.5 release notes <relnotes/18.2.5.html>`__
- `18.2.4 release notes <relnotes/18.2.4.html>`__
- `18.2.3 release notes <relnotes/18.2.3.html>`__
- `18.2.2 release notes <relnotes/18.2.2.html>`__
- `18.1.9 release notes <relnotes/18.1.9.html>`__
- `18.2.1 release notes <relnotes/18.2.1.html>`__
- `18.2.0 release notes <relnotes/18.2.0.html>`__
- `18.1.8 release notes <relnotes/18.1.8.html>`__
- `18.1.7 release notes <relnotes/18.1.7.html>`__
- `18.1.6 release notes <relnotes/18.1.6.html>`__
- `18.1.5 release notes <relnotes/18.1.5.html>`__
- `18.1.4 release notes <relnotes/18.1.4.html>`__
- `18.1.3 release notes <relnotes/18.1.3.html>`__
- `18.1.2 release notes <relnotes/18.1.2.html>`__
- `18.0.5 release notes <relnotes/18.0.5.html>`__
- `18.1.1 release notes <relnotes/18.1.1.html>`__
- `18.1.0 release notes <relnotes/18.1.0.html>`__
- `18.0.4 release notes <relnotes/18.0.4.html>`__
- `18.0.3 release notes <relnotes/18.0.3.html>`__
- `18.0.2 release notes <relnotes/18.0.2.html>`__
- `18.0.1 release notes <relnotes/18.0.1.html>`__
- `17.3.9 release notes <relnotes/17.3.9.html>`__
- `17.3.8 release notes <relnotes/17.3.8.html>`__
- `18.0.0 release notes <relnotes/18.0.0.html>`__
- `17.3.7 release notes <relnotes/17.3.7.html>`__
- `17.3.6 release notes <relnotes/17.3.6.html>`__
- `17.3.5 release notes <relnotes/17.3.5.html>`__
- `17.3.4 release notes <relnotes/17.3.4.html>`__
- `17.3.3 release notes <relnotes/17.3.3.html>`__
- `17.3.2 release notes <relnotes/17.3.2.html>`__
- `17.2.8 release notes <relnotes/17.2.8.html>`__
- `17.3.1 release notes <relnotes/17.3.1.html>`__
- `17.2.7 release notes <relnotes/17.2.7.html>`__
- `17.3.0 release notes <relnotes/17.3.0.html>`__
- `17.2.6 release notes <relnotes/17.2.6.html>`__
- `17.2.5 release notes <relnotes/17.2.5.html>`__
- `17.2.4 release notes <relnotes/17.2.4.html>`__
- `17.2.3 release notes <relnotes/17.2.3.html>`__
- `17.2.2 release notes <relnotes/17.2.2.html>`__
- `17.1.10 release notes <relnotes/17.1.10.html>`__
- `17.2.1 release notes <relnotes/17.2.1.html>`__
- `17.1.9 release notes <relnotes/17.1.9.html>`__
- `17.2.0 release notes <relnotes/17.2.0.html>`__
- `17.1.8 release notes <relnotes/17.1.8.html>`__
- `17.1.7 release notes <relnotes/17.1.7.html>`__
- `17.1.6 release notes <relnotes/17.1.6.html>`__
- `17.1.5 release notes <relnotes/17.1.5.html>`__
- `17.1.4 release notes <relnotes/17.1.4.html>`__
- `17.1.3 release notes <relnotes/17.1.3.html>`__
- `17.1.2 release notes <relnotes/17.1.2.html>`__
- `17.0.7 release notes <relnotes/17.0.7.html>`__
- `17.1.1 release notes <relnotes/17.1.1.html>`__
- `17.0.6 release notes <relnotes/17.0.6.html>`__
- `17.1.0 release notes <relnotes/17.1.0.html>`__
- `17.0.5 release notes <relnotes/17.0.5.html>`__
- `17.0.4 release notes <relnotes/17.0.4.html>`__
- `17.0.3 release notes <relnotes/17.0.3.html>`__
- `17.0.2 release notes <relnotes/17.0.2.html>`__
- `13.0.6 release notes <relnotes/13.0.6.html>`__
- `17.0.1 release notes <relnotes/17.0.1.html>`__
- `13.0.5 release notes <relnotes/13.0.5.html>`__
- `17.0.0 release notes <relnotes/17.0.0.html>`__
- `13.0.4 release notes <relnotes/13.0.4.html>`__
- `12.0.6 release notes <relnotes/12.0.6.html>`__
- `13.0.3 release notes <relnotes/13.0.3.html>`__
- `12.0.5 release notes <relnotes/12.0.5.html>`__
- `13.0.2 release notes <relnotes/13.0.2.html>`__
- `13.0.1 release notes <relnotes/13.0.1.html>`__
- `12.0.4 release notes <relnotes/12.0.4.html>`__
- `13.0.0 release notes <relnotes/13.0.0.html>`__
- `12.0.3 release notes <relnotes/12.0.3.html>`__
- `12.0.2 release notes <relnotes/12.0.2.html>`__
- `12.0.1 release notes <relnotes/12.0.1.html>`__
- `12.0.0 release notes <relnotes/12.0.0.html>`__
- `11.2.2 release notes <relnotes/11.2.2.html>`__
- `11.1.4 release notes <relnotes/11.1.4.html>`__
- `11.2.1 release notes <relnotes/11.2.1.html>`__
- `11.1.3 release notes <relnotes/11.1.3.html>`__
- `11.2.0 release notes <relnotes/11.2.0.html>`__
- `11.1.2 release notes <relnotes/11.1.2.html>`__
- `11.0.9 release notes <relnotes/11.0.9.html>`__
- `11.1.1 release notes <relnotes/11.1.1.html>`__
- `11.0.8 release notes <relnotes/11.0.8.html>`__
- `11.1.0 release notes <relnotes/11.1.0.html>`__
- `11.0.7 release notes <relnotes/11.0.7.html>`__
- `11.0.6 release notes <relnotes/11.0.6.html>`__
- `11.0.5 release notes <relnotes/11.0.5.html>`__
- `11.0.4 release notes <relnotes/11.0.4.html>`__
- `11.0.3 release notes <relnotes/11.0.3.html>`__
- `10.6.9 release notes <relnotes/10.6.9.html>`__
- `11.0.2 release notes <relnotes/11.0.2.html>`__
- `11.0.1 release notes <relnotes/11.0.1.html>`__
- `10.6.8 release notes <relnotes/10.6.8.html>`__
- `11.0.0 release notes <relnotes/11.0.0.html>`__
- `10.6.7 release notes <relnotes/10.6.7.html>`__
- `10.6.6 release notes <relnotes/10.6.6.html>`__
- `10.6.5 release notes <relnotes/10.6.5.html>`__
- `10.6.4 release notes <relnotes/10.6.4.html>`__
- `10.6.3 release notes <relnotes/10.6.3.html>`__
- `10.6.2 release notes <relnotes/10.6.2.html>`__
- `10.5.9 release notes <relnotes/10.5.9.html>`__
- `10.6.1 release notes <relnotes/10.6.1.html>`__
- `10.5.8 release notes <relnotes/10.5.8.html>`__
- `10.6.0 release notes <relnotes/10.6.0.html>`__
- `10.5.7 release notes <relnotes/10.5.7.html>`__
- `10.5.6 release notes <relnotes/10.5.6.html>`__
- `10.5.5 release notes <relnotes/10.5.5.html>`__
- `10.5.4 release notes <relnotes/10.5.4.html>`__
- `10.5.3 release notes <relnotes/10.5.3.html>`__
- `10.5.2 release notes <relnotes/10.5.2.html>`__
- `10.4.7 release notes <relnotes/10.4.7.html>`__
- `10.5.1 release notes <relnotes/10.5.1.html>`__
- `10.5.0 release notes <relnotes/10.5.0.html>`__
- `10.4.6 release notes <relnotes/10.4.6.html>`__
- `10.4.5 release notes <relnotes/10.4.5.html>`__
- `10.4.4 release notes <relnotes/10.4.4.html>`__
- `10.4.3 release notes <relnotes/10.4.3.html>`__
- `10.4.2 release notes <relnotes/10.4.2.html>`__
- `10.3.7 release notes <relnotes/10.3.7.html>`__
- `10.4.1 release notes <relnotes/10.4.1.html>`__
- `10.3.6 release notes <relnotes/10.3.6.html>`__
- `10.4 release notes <relnotes/10.4.html>`__
- `10.3.5 release notes <relnotes/10.3.5.html>`__
- `10.3.4 release notes <relnotes/10.3.4.html>`__
- `10.3.3 release notes <relnotes/10.3.3.html>`__
- `10.3.2 release notes <relnotes/10.3.2.html>`__
- `10.3.1 release notes <relnotes/10.3.1.html>`__
- `10.2.9 release notes <relnotes/10.2.9.html>`__
- `10.3 release notes <relnotes/10.3.html>`__
- `10.2.8 release notes <relnotes/10.2.8.html>`__
- `10.2.7 release notes <relnotes/10.2.7.html>`__
- `10.2.6 release notes <relnotes/10.2.6.html>`__
- `10.2.5 release notes <relnotes/10.2.5.html>`__
- `10.2.4 release notes <relnotes/10.2.4.html>`__
- `10.2.3 release notes <relnotes/10.2.3.html>`__
- `10.2.2 release notes <relnotes/10.2.2.html>`__
- `10.2.1 release notes <relnotes/10.2.1.html>`__
- `10.2 release notes <relnotes/10.2.html>`__
- `10.1.6 release notes <relnotes/10.1.6.html>`__
- `10.1.5 release notes <relnotes/10.1.5.html>`__
- `10.1.4 release notes <relnotes/10.1.4.html>`__
- `10.1.3 release notes <relnotes/10.1.3.html>`__
- `10.1.2 release notes <relnotes/10.1.2.html>`__
- `10.1.1 release notes <relnotes/10.1.1.html>`__
- `10.1 release notes <relnotes/10.1.html>`__
- `10.0.5 release notes <relnotes/10.0.5.html>`__
- `10.0.4 release notes <relnotes/10.0.4.html>`__
- `10.0.3 release notes <relnotes/10.0.3.html>`__
- `10.0.2 release notes <relnotes/10.0.2.html>`__
- `10.0.1 release notes <relnotes/10.0.1.html>`__
- `10.0 release notes <relnotes/10.0.html>`__
- `9.2.5 release notes <relnotes/9.2.5.html>`__
- `9.2.4 release notes <relnotes/9.2.4.html>`__
- `9.2.3 release notes <relnotes/9.2.3.html>`__
- `9.2.2 release notes <relnotes/9.2.2.html>`__
- `9.2.1 release notes <relnotes/9.2.1.html>`__
- `9.2 release notes <relnotes/9.2.html>`__
- `9.1.7 release notes <relnotes/9.1.7.html>`__
- `9.1.6 release notes <relnotes/9.1.6.html>`__
- `9.1.5 release notes <relnotes/9.1.5.html>`__
- `9.1.4 release notes <relnotes/9.1.4.html>`__
- `9.1.3 release notes <relnotes/9.1.3.html>`__
- `9.1.2 release notes <relnotes/9.1.2.html>`__
- `9.1.1 release notes <relnotes/9.1.1.html>`__
- `9.1 release notes <relnotes/9.1.html>`__
- `9.0.3 release notes <relnotes/9.0.3.html>`__
- `9.0.2 release notes <relnotes/9.0.2.html>`__
- `9.0.1 release notes <relnotes/9.0.1.html>`__
- `9.0 release notes <relnotes/9.0.html>`__
- `8.0.5 release notes <relnotes/8.0.5.html>`__
- `8.0.4 release notes <relnotes/8.0.4.html>`__
- `8.0.3 release notes <relnotes/8.0.3.html>`__
- `8.0.2 release notes <relnotes/8.0.2.html>`__
- `8.0.1 release notes <relnotes/8.0.1.html>`__
- `8.0 release notes <relnotes/8.0.html>`__
- `7.11.2 release notes <relnotes/7.11.2.html>`__
- `7.11.1 release notes <relnotes/7.11.1.html>`__
- `7.11 release notes <relnotes/7.11.html>`__
- `7.10.3 release notes <relnotes/7.10.3.html>`__
- `7.10.2 release notes <relnotes/7.10.2.html>`__
- `7.10.1 release notes <relnotes/7.10.1.html>`__
- `7.10 release notes <relnotes/7.10.html>`__
- `7.9.2 release notes <relnotes/7.9.2.html>`__
- `7.9.1 release notes <relnotes/7.9.1.html>`__
- `7.9 release notes <relnotes/7.9.html>`__
- `7.8.3 release notes <relnotes/7.8.3.html>`__
- `7.8.2 release notes <relnotes/7.8.2.html>`__
- `7.8.1 release notes <relnotes/7.8.1.html>`__
- `7.8 release notes <relnotes/7.8.html>`__
- `7.7.1 release notes <relnotes/7.7.1.html>`__
- `7.7 release notes <relnotes/7.7.html>`__
- `7.6.1 release notes <relnotes/7.6.1.html>`__
- `7.6 release notes <relnotes/7.6.html>`__
- `7.5.2 release notes <relnotes/7.5.2.html>`__
- `7.5.1 release notes <relnotes/7.5.1.html>`__
- `7.5 release notes <relnotes/7.5.html>`__
- `7.4.4 release notes <relnotes/7.4.4.html>`__
- `7.4.3 release notes <relnotes/7.4.3.html>`__
- `7.4.2 release notes <relnotes/7.4.2.html>`__
- `7.4.1 release notes <relnotes/7.4.1.html>`__
- `7.4 release notes <relnotes/7.4.html>`__
- `7.3 release notes <relnotes/7.3.html>`__
- `7.2 release notes <relnotes/7.2.html>`__
- `7.1 release notes <relnotes/7.1.html>`__
- `7.0.4 release notes <relnotes/7.0.4.html>`__
- `7.0.3 release notes <relnotes/7.0.3.html>`__
- `7.0.2 release notes <relnotes/7.0.2.html>`__
- `7.0.1 release notes <relnotes/7.0.1.html>`__
- `7.0 release notes <relnotes/7.0.html>`__
- `6.5.3 release notes <relnotes/6.5.3.html>`__
- `6.5.2 release notes <relnotes/6.5.2.html>`__
- `6.5.1 release notes <relnotes/6.5.1.html>`__
- `6.5 release notes <relnotes/6.5.html>`__
- `6.4.2 release notes <relnotes/6.4.2.html>`__
- `6.4.1 release notes <relnotes/6.4.1.html>`__
- `6.4 release notes <relnotes/6.4.html>`__
Versions of Mesa prior to 6.4 are summarized in the `versions
file <versions.html>`__ and the following release notes.
- `6.3.2 release notes <relnotes/6.3.2>`__
- `6.3.1 release notes <relnotes/6.3.1>`__
- `6.3 release notes <relnotes/6.3>`__
- `6.2.1 release notes <relnotes/6.2.1>`__
- `6.2 release notes <relnotes/6.2>`__
- `6.1 release notes <relnotes/6.1>`__
- `6.0.1 release notes <relnotes/6.0.1>`__
- `6.0 release notes <relnotes/6.0>`__
- `5.1 release notes <relnotes/5.1>`__
- `5.0.2 release notes <relnotes/5.0.2>`__
- `5.0.1 release notes <relnotes/5.0.1>`__
- `5.0 release notes <relnotes/5.0>`__
- `4.1 release notes <relnotes/4.1>`__
- `4.0.3 release notes <relnotes/4.0.3>`__
- `4.0.2 release notes <relnotes/4.0.2>`__
- `4.0.1 release notes <relnotes/4.0.1>`__
- `4.0 release notes <relnotes/4.0>`__
- `3.5 release notes <relnotes/3.5>`__
- `3.4.2 release notes <relnotes/3.4.2>`__
- `3.4.1 release notes <relnotes/3.4.1>`__
- `3.4 release notes <relnotes/3.4>`__
- `3.3 release notes <relnotes/3.3>`__
- `3.2.1 release notes <relnotes/3.2.1>`__
- `3.2 release notes <relnotes/3.2>`__
- `3.1 release notes <relnotes/3.1>`__
.. toctree::
:maxdepth: 1
:hidden:
relnotes/20.0.8
relnotes/20.1.1
relnotes/20.1.0
relnotes/20.0.7
relnotes/20.0.6
relnotes/20.0.5
relnotes/20.0.4
relnotes/20.0.3
relnotes/20.0.2
relnotes/19.3.5
relnotes/20.0.1
relnotes/20.0.0
relnotes/19.3.4
relnotes/19.3.3
relnotes/19.3.2
relnotes/19.2.8
relnotes/19.3.1
relnotes/19.3.0
relnotes/19.2.7
relnotes/19.2.6
relnotes/19.2.5
relnotes/19.2.4
relnotes/19.2.3
relnotes/19.2.2
relnotes/19.1.8
relnotes/19.2.1
relnotes/19.2.0
relnotes/19.1.7
relnotes/19.1.6
relnotes/19.1.5
relnotes/19.1.4
relnotes/19.1.3
relnotes/19.1.2
relnotes/19.0.8
relnotes/19.1.1
relnotes/19.0.7
relnotes/19.1.0
relnotes/19.0.6
relnotes/19.0.5
relnotes/19.0.4
relnotes/19.0.3
relnotes/19.0.2
relnotes/18.3.6
relnotes/19.0.1
relnotes/18.3.5
relnotes/19.0.0
relnotes/18.3.4
relnotes/18.3.3
relnotes/18.3.2
relnotes/18.2.8
relnotes/18.2.7
relnotes/18.3.1
relnotes/18.3.0
relnotes/18.2.6
relnotes/18.2.5
relnotes/18.2.4
relnotes/18.2.3
relnotes/18.2.2
relnotes/18.1.9
relnotes/18.2.1
relnotes/18.2.0
relnotes/18.1.8
relnotes/18.1.7
relnotes/18.1.6
relnotes/18.1.5
relnotes/18.1.4
relnotes/18.1.3
relnotes/18.1.2
relnotes/18.0.5
relnotes/18.1.1
relnotes/18.1.0
relnotes/18.0.4
relnotes/18.0.3
relnotes/18.0.2
relnotes/18.0.1
relnotes/17.3.9
relnotes/17.3.8
relnotes/18.0.0
relnotes/17.3.7
relnotes/17.3.6
relnotes/17.3.5
relnotes/17.3.4
relnotes/17.3.3
relnotes/17.3.2
relnotes/17.2.8
relnotes/17.3.1
relnotes/17.2.7
relnotes/17.3.0
relnotes/17.2.6
relnotes/17.2.5
relnotes/17.2.4
relnotes/17.2.3
relnotes/17.2.2
relnotes/17.1.10
relnotes/17.2.1
relnotes/17.1.9
relnotes/17.2.0
relnotes/17.1.8
relnotes/17.1.7
relnotes/17.1.6
relnotes/17.1.5
relnotes/17.1.4
relnotes/17.1.3
relnotes/17.1.2
relnotes/17.0.7
relnotes/17.1.1
relnotes/17.0.6
relnotes/17.1.0
relnotes/17.0.5
relnotes/17.0.4
relnotes/17.0.3
relnotes/17.0.2
relnotes/13.0.6
relnotes/17.0.1
relnotes/13.0.5
relnotes/17.0.0
relnotes/13.0.4
relnotes/12.0.6
relnotes/13.0.3
relnotes/12.0.5
relnotes/13.0.2
relnotes/13.0.1
relnotes/12.0.4
relnotes/13.0.0
relnotes/12.0.3
relnotes/12.0.2
relnotes/12.0.1
relnotes/12.0.0
relnotes/11.2.2
relnotes/11.1.4
relnotes/11.2.1
relnotes/11.1.3
relnotes/11.2.0
relnotes/11.1.2
relnotes/11.0.9
relnotes/11.1.1
relnotes/11.0.8
relnotes/11.1.0
relnotes/11.0.7
relnotes/11.0.6
relnotes/11.0.5
relnotes/11.0.4
relnotes/11.0.3
relnotes/10.6.9
relnotes/11.0.2
relnotes/11.0.1
relnotes/10.6.8
relnotes/11.0.0
relnotes/10.6.7
relnotes/10.6.6
relnotes/10.6.5
relnotes/10.6.4
relnotes/10.6.3
relnotes/10.6.2
relnotes/10.5.9
relnotes/10.6.1
relnotes/10.5.8
relnotes/10.6.0
relnotes/10.5.7
relnotes/10.5.6
relnotes/10.5.5
relnotes/10.5.4
relnotes/10.5.3
relnotes/10.5.2
relnotes/10.4.7
relnotes/10.5.1
relnotes/10.5.0
relnotes/10.4.6
relnotes/10.4.5
relnotes/10.4.4
relnotes/10.4.3
relnotes/10.4.2
relnotes/10.3.7
relnotes/10.4.1
relnotes/10.3.6
relnotes/10.4
relnotes/10.3.5
relnotes/10.3.4
relnotes/10.3.3
relnotes/10.3.2
relnotes/10.3.1
relnotes/10.2.9
relnotes/10.3
relnotes/10.2.8
relnotes/10.2.7
relnotes/10.2.6
relnotes/10.2.5
relnotes/10.2.4
relnotes/10.2.3
relnotes/10.2.2
relnotes/10.2.1
relnotes/10.2
relnotes/10.1.6
relnotes/10.1.5
relnotes/10.1.4
relnotes/10.1.3
relnotes/10.1.2
relnotes/10.1.1
relnotes/10.1
relnotes/10.0.5
relnotes/10.0.4
relnotes/10.0.3
relnotes/10.0.2
relnotes/10.0.1
relnotes/10.0
relnotes/9.2.5
relnotes/9.2.4
relnotes/9.2.3
relnotes/9.2.2
relnotes/9.2.1
relnotes/9.2
relnotes/9.1.7
relnotes/9.1.6
relnotes/9.1.5
relnotes/9.1.4
relnotes/9.1.3
relnotes/9.1.2
relnotes/9.1.1
relnotes/9.1
relnotes/9.0.3
relnotes/9.0.2
relnotes/9.0.1
relnotes/9.0
relnotes/8.0.5
relnotes/8.0.4
relnotes/8.0.3
relnotes/8.0.2
relnotes/8.0.1
relnotes/8.0
relnotes/7.11.2
relnotes/7.11.1
relnotes/7.11
relnotes/7.10.3
relnotes/7.10.2
relnotes/7.10.1
relnotes/7.10
relnotes/7.9.2
relnotes/7.9.1
relnotes/7.9
relnotes/7.8.3
relnotes/7.8.2
relnotes/7.8.1
relnotes/7.8
relnotes/7.7.1
relnotes/7.7
relnotes/7.6.1
relnotes/7.6
relnotes/7.5.2
relnotes/7.5.1
relnotes/7.5
relnotes/7.4.4
relnotes/7.4.3
relnotes/7.4.2
relnotes/7.4.1
relnotes/7.4
relnotes/7.3
relnotes/7.2
relnotes/7.1
relnotes/7.0.4
relnotes/7.0.3
relnotes/7.0.2
relnotes/7.0.1
relnotes/7.0
relnotes/6.5.3
relnotes/6.5.2
relnotes/6.5.1
relnotes/6.5
relnotes/6.4.2
relnotes/6.4.1
relnotes/6.4
Older Versions <versions>

View File

@ -1,150 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.0.1 Release Notes / (December 12, 2013)</h1>
<p>
Mesa 10.0.1 is a bug fix release which fixes bugs found since the 10.0 release.
</p>
<p>
Mesa 10.0.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
0a72ca5b36046a658bf6038326ff32ed MesaLib-10.0.1.tar.bz2
01bde35c912e504ba62caf1ef9f7022c MesaLib-10.0.1.tar.gz
59a174a11a89e6b1b8ee9c3f7e3c388c MesaLib-10.0.1.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64323">Bug 64323</a> - Severe misrendering in Left 4 Dead 2</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68838">Bug 68838</a> - GLSL: struct declarations produce a &quot;empty declaration warning&quot; in 9.2</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69155">Bug 69155</a> - [NV50 gallium] [piglit] bin/varying-packing-simple triggers memory corruption/failures</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70250">Bug 70250</a> - weston-terminal rendering corrupted with output transform 90 and 270</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70601">Bug 70601</a> - [SNB Bisected]Piglit spec/ARB_texture_float/multisample-formats 2 GL_ARB_texture_float fails</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72230">Bug 72230</a> - Unable to extract MesaLib-10.0.0.tar.{gz,bz2} with bsdtar</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72325">Bug 72325</a> - [swrast] piglit glean fbo regression</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72327">Bug 72327</a> - [swrast] piglit glean pointSprite regression</li>
</ul>
<h2>Changes</h2>
<p>The full set of changes can be viewed by using the following git command:</p>
<pre>
git log mesa-10.0..mesa-10.0.1
</pre>
<p>Axel Davy (2):</p>
<ul>
<li>egl/wayland: Flush the wl_display at the end of SwapBuffers</li>
<li>Enable throttling in SwapBuffers</li>
</ul>
<p>Chad Versace (2):</p>
<ul>
<li>i965/hsw: Apply non-msrt fast color clear w/a to all HSW GTs</li>
<li>i965: Add extra-alignment for non-msrt fast color clear for all hw (v2)</li>
</ul>
<p>Dave Airlie (1):</p>
<ul>
<li>swrast: fix readback regression since inversion fix</li>
</ul>
<p>Emil Velikov (1):</p>
<ul>
<li>automake: include only one copy VERSION in tarball</li>
</ul>
<p>Ian Romanick (3):</p>
<ul>
<li>docs: Add 10.0 release md5sums</li>
<li>Remove a057b83 from the pick list</li>
<li>glsl: Don't emit empty declaration warning for a struct specifier</li>
</ul>
<p>Ilia Mirkin (8):</p>
<ul>
<li>mesa: don't leak performance monitors on context destroy</li>
<li>nv50: Fix GPU_READING/WRITING bit removal</li>
<li>nouveau: avoid leaking fences while waiting</li>
<li>nv50: wait on the buf's fence before sticking it into pushbuf</li>
<li>nv50: enable h264 and mpeg4 for nv98+ (vp3, vp4.0)</li>
<li>nouveau/video: update h264 picparm field names based on usage</li>
<li>nouveau/video: update a few more h264 picparm field names</li>
<li>nv50: report 15 max inputs for fragment programs</li>
</ul>
<p>Jordan Justen (1):</p>
<ul>
<li>dri megadriver_stub: add compatibility for older DRI loaders</li>
</ul>
<p>Kristian Høgsberg (2):</p>
<ul>
<li>egl/wayland: Damage INT32_MAX x INT32_MAX region for eglSwapBuffers</li>
<li>egl/wayland: Send commit after flushing the driver context</li>
</ul>
<p>Maarten Lankhorst (1):</p>
<ul>
<li>nouveau: Fix compiler warning regression</li>
</ul>
<p>Paul Berry (1):</p>
<ul>
<li>i965/gen6: Fix multisample resolve blits for luminance/intensity 32F formats.</li>
</ul>
<p>Thomas Hellstrom (1):</p>
<ul>
<li>st/xa: Bump major version number to 2</li>
</ul>
<p>Tom Stellard (2):</p>
<ul>
<li>r300/compiler/tests: Fix segfault</li>
<li>r300/compiler/tests: Fix line length check in test parser</li>
</ul>
</div>
</body>
</html>

124
docs/relnotes/10.0.1.rst Normal file
View File

@ -0,0 +1,124 @@
Mesa 10.0.1 Release Notes / (December 12, 2013)
===============================================
Mesa 10.0.1 is a bug fix release which fixes bugs found since the 10.0
release.
Mesa 10.0.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts not supported.
MD5 checksums
-------------
::
0a72ca5b36046a658bf6038326ff32ed MesaLib-10.0.1.tar.bz2
01bde35c912e504ba62caf1ef9f7022c MesaLib-10.0.1.tar.gz
59a174a11a89e6b1b8ee9c3f7e3c388c MesaLib-10.0.1.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 64323 <https://bugs.freedesktop.org/show_bug.cgi?id=64323>`__ -
Severe misrendering in Left 4 Dead 2
- `Bug 68838 <https://bugs.freedesktop.org/show_bug.cgi?id=68838>`__ -
GLSL: struct declarations produce a "empty declaration warning" in
9.2
- `Bug 69155 <https://bugs.freedesktop.org/show_bug.cgi?id=69155>`__ -
[NV50 gallium] [piglit] bin/varying-packing-simple triggers memory
corruption/failures
- `Bug 70250 <https://bugs.freedesktop.org/show_bug.cgi?id=70250>`__ -
weston-terminal rendering corrupted with output transform 90 and 270
- `Bug 70601 <https://bugs.freedesktop.org/show_bug.cgi?id=70601>`__ -
[SNB Bisected]Piglit spec/ARB_texture_float/multisample-formats 2
GL_ARB_texture_float fails
- `Bug 72230 <https://bugs.freedesktop.org/show_bug.cgi?id=72230>`__ -
Unable to extract MesaLib-10.0.0.tar.{gz,bz2} with bsdtar
- `Bug 72325 <https://bugs.freedesktop.org/show_bug.cgi?id=72325>`__ -
[swrast] piglit glean fbo regression
- `Bug 72327 <https://bugs.freedesktop.org/show_bug.cgi?id=72327>`__ -
[swrast] piglit glean pointSprite regression
Changes
-------
The full set of changes can be viewed by using the following git
command:
::
git log mesa-10.0..mesa-10.0.1
Axel Davy (2):
- egl/wayland: Flush the wl_display at the end of SwapBuffers
- Enable throttling in SwapBuffers
Chad Versace (2):
- i965/hsw: Apply non-msrt fast color clear w/a to all HSW GTs
- i965: Add extra-alignment for non-msrt fast color clear for all hw
(v2)
Dave Airlie (1):
- swrast: fix readback regression since inversion fix
Emil Velikov (1):
- automake: include only one copy VERSION in tarball
Ian Romanick (3):
- docs: Add 10.0 release md5sums
- Remove a057b83 from the pick list
- glsl: Don't emit empty declaration warning for a struct specifier
Ilia Mirkin (8):
- mesa: don't leak performance monitors on context destroy
- nv50: Fix GPU_READING/WRITING bit removal
- nouveau: avoid leaking fences while waiting
- nv50: wait on the buf's fence before sticking it into pushbuf
- nv50: enable h264 and mpeg4 for nv98+ (vp3, vp4.0)
- nouveau/video: update h264 picparm field names based on usage
- nouveau/video: update a few more h264 picparm field names
- nv50: report 15 max inputs for fragment programs
Jordan Justen (1):
- dri megadriver_stub: add compatibility for older DRI loaders
Kristian Høgsberg (2):
- egl/wayland: Damage INT32_MAX x INT32_MAX region for eglSwapBuffers
- egl/wayland: Send commit after flushing the driver context
Maarten Lankhorst (1):
- nouveau: Fix compiler warning regression
Paul Berry (1):
- i965/gen6: Fix multisample resolve blits for luminance/intensity 32F
formats.
Thomas Hellstrom (1):
- st/xa: Bump major version number to 2
Tom Stellard (2):
- r300/compiler/tests: Fix segfault
- r300/compiler/tests: Fix line length check in test parser

View File

@ -1,161 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.0.2 Release Notes / (January 9, 2014)</h1>
<p>
Mesa 10.0.2 is a bug fix release which fixes bugs found since the 10.0.1 release.
</p>
<p>
Mesa 10.0.2 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
de7d14baf0101b697c140d2f47ef27e9 MesaLib-10.0.2.tar.gz
8544c0ab3e438a08b5103421ea15b6d2 MesaLib-10.0.2.tar.bz2
181b0d6c1afca38e98a930d0e564ed90 MesaLib-10.0.2.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70740">Bug 70740</a> - HiZ on SNB causes GPU hang with WebGL web app</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72026">Bug 72026</a> - SIGSEGV in fs_visitor::visit(ir_dereference_variable*)</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72264">Bug 72264</a> - GLSL error reporting</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72369">Bug 72369</a> - glitches in serious sam 3 with the sb shader backend</li>
</ul>
<h2>Changes</h2>
<p>The full set of changes can be viewed by using the following git command:</p>
<pre>
git log mesa-10.0.1..mesa-10.0.2
</pre>
<p>Aaron Watry (8):</p>
<ul>
<li>clover: Remove unused variable</li>
<li>pipe_loader/sw: close dev-&gt;lib when initialization fails</li>
<li>radeon/compute: Stop leaking LLVMContexts in radeon_llvm_parse_bitcode</li>
<li>r600/compute: Free compiled kernels when deleting compute state</li>
<li>r600/compute: Use the correct FREE macro when deleting compute state</li>
<li>radeon/llvm: Free target data at end of optimization</li>
<li>st/vdpau: Destroy context when initialization fails</li>
<li>r600/pipe: Stop leaking context-&gt;start_compute_cs_cmd.buf on EG/CM</li>
</ul>
<p>Alex Deucher (1):</p>
<ul>
<li>r600g: fix SUMO2 pci id</li>
</ul>
<p>Alexander von Gluck IV (1):</p>
<ul>
<li>Haiku: Add in public GL kit headers</li>
</ul>
<p>Anuj Phogat (1):</p>
<ul>
<li>mesa: Fix error code generation in glBeginConditionalRender()</li>
</ul>
<p>Carl Worth (2):</p>
<ul>
<li>docs: Add md5sums for the 10.0.1 release.</li>
<li>Update version to 10.0.2</li>
</ul>
<p>Chad Versace (1):</p>
<ul>
<li>i965/gen6: Fix HiZ hang in WebGL Google Maps</li>
</ul>
<p>Erik Faye-Lund (1):</p>
<ul>
<li>glcpp: error on multiple #else/#elif directives</li>
</ul>
<p>Henri Verbeet (1):</p>
<ul>
<li>i915: Add support for gl_FragData[0] reads.</li>
</ul>
<p>Ilia Mirkin (1):</p>
<ul>
<li>nv50: fix a small leak on context destroy</li>
</ul>
<p>Jonathan Liu (2):</p>
<ul>
<li>st/mesa: use pipe_sampler_view_release()</li>
<li>llvmpipe: use pipe_sampler_view_release() to avoid segfault</li>
</ul>
<p>Kenneth Graunke (2):</p>
<ul>
<li>i965: Fix 3DSTATE_PUSH_CONSTANT_ALLOC_PS packet creation.</li>
<li>Revert "mesa: Remove GLXContextID typedef from glx.h."</li>
</ul>
<p>Kevin Rogovin (1):</p>
<ul>
<li>Use line number information from entire function expression</li>
</ul>
<p>Kristian Høgsberg (1):</p>
<ul>
<li>dri_util: Don't assume __DRIcontext-&gt;driverPrivate is a gl_context</li>
</ul>
<p>Marek Olšák (2):</p>
<ul>
<li>mesa: fix interpretation of glClearBuffer(drawbuffer)</li>
<li>st/mesa: fix glClear with multiple colorbuffers and different formats</li>
</ul>
<p>Paul Berry (2):</p>
<ul>
<li>glsl: Teach ir_variable_refcount about ir_loop::counter variables.</li>
<li>glsl: Fix inconsistent assumptions about ir_loop::counter.</li>
</ul>
<p>Vadim Girlin (1):</p>
<ul>
<li>r600g/sb: fix stack size computation on evergreen</li>
</ul>
</div>
</body>
</html>

127
docs/relnotes/10.0.2.rst Normal file
View File

@ -0,0 +1,127 @@
Mesa 10.0.2 Release Notes / (January 9, 2014)
=============================================
Mesa 10.0.2 is a bug fix release which fixes bugs found since the 10.0.1
release.
Mesa 10.0.2 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts not supported.
MD5 checksums
-------------
::
de7d14baf0101b697c140d2f47ef27e9 MesaLib-10.0.2.tar.gz
8544c0ab3e438a08b5103421ea15b6d2 MesaLib-10.0.2.tar.bz2
181b0d6c1afca38e98a930d0e564ed90 MesaLib-10.0.2.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 70740 <https://bugs.freedesktop.org/show_bug.cgi?id=70740>`__ -
HiZ on SNB causes GPU hang with WebGL web app
- `Bug 72026 <https://bugs.freedesktop.org/show_bug.cgi?id=72026>`__ -
SIGSEGV in fs_visitor::visit(ir_dereference_variable*)
- `Bug 72264 <https://bugs.freedesktop.org/show_bug.cgi?id=72264>`__ -
GLSL error reporting
- `Bug 72369 <https://bugs.freedesktop.org/show_bug.cgi?id=72369>`__ -
glitches in serious sam 3 with the sb shader backend
Changes
-------
The full set of changes can be viewed by using the following git
command:
::
git log mesa-10.0.1..mesa-10.0.2
Aaron Watry (8):
- clover: Remove unused variable
- pipe_loader/sw: close dev->lib when initialization fails
- radeon/compute: Stop leaking LLVMContexts in
radeon_llvm_parse_bitcode
- r600/compute: Free compiled kernels when deleting compute state
- r600/compute: Use the correct FREE macro when deleting compute state
- radeon/llvm: Free target data at end of optimization
- st/vdpau: Destroy context when initialization fails
- r600/pipe: Stop leaking context->start_compute_cs_cmd.buf on EG/CM
Alex Deucher (1):
- r600g: fix SUMO2 pci id
Alexander von Gluck IV (1):
- Haiku: Add in public GL kit headers
Anuj Phogat (1):
- mesa: Fix error code generation in glBeginConditionalRender()
Carl Worth (2):
- docs: Add md5sums for the 10.0.1 release.
- Update version to 10.0.2
Chad Versace (1):
- i965/gen6: Fix HiZ hang in WebGL Google Maps
Erik Faye-Lund (1):
- glcpp: error on multiple #else/#elif directives
Henri Verbeet (1):
- i915: Add support for gl_FragData[0] reads.
Ilia Mirkin (1):
- nv50: fix a small leak on context destroy
Jonathan Liu (2):
- st/mesa: use pipe_sampler_view_release()
- llvmpipe: use pipe_sampler_view_release() to avoid segfault
Kenneth Graunke (2):
- i965: Fix 3DSTATE_PUSH_CONSTANT_ALLOC_PS packet creation.
- Revert "mesa: Remove GLXContextID typedef from glx.h."
Kevin Rogovin (1):
- Use line number information from entire function expression
Kristian Høgsberg (1):
- dri_util: Don't assume \__DRIcontext->driverPrivate is a gl_context
Marek Olšák (2):
- mesa: fix interpretation of glClearBuffer(drawbuffer)
- st/mesa: fix glClear with multiple colorbuffers and different formats
Paul Berry (2):
- glsl: Teach ir_variable_refcount about ir_loop::counter variables.
- glsl: Fix inconsistent assumptions about ir_loop::counter.
Vadim Girlin (1):
- r600g/sb: fix stack size computation on evergreen

View File

@ -1,206 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.0.3 Release Notes / (February 3, 2014)</h1>
<p>
Mesa 10.0.3 is a bug fix release which fixes bugs found since the 10.0.2 release.
</p>
<p>
Mesa 10.0.3 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
5f9f463ef08129f6762106b434910adb MesaLib-10.0.3.tar.bz2
fb3997b6500e153bc32370cb3fc4ca9e MesaLib-10.0.3.tar.gz
a07b4b6b9eb449b88a6cb5061e51c331 MesaLib-10.0.3.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72708">Bug 72708</a> - Master fails to build with older gcc due to -msse4.1</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72926">Bug 72926</a> - [REGRESSION,swrast] Memory-related crash with anti-aliasing enabled</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73096">Bug 73096</a> - Query GL_RGBA_SIGNED_COMPONENTS_EXT missing</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73100">Bug 73100</a> - Please use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73418">Bug 73418</a> - OpenCL hangs graphics on CAYMAN</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73473">Bug 73473</a> - Potential crash bug in src/gallium/auxiliary/rtasm/rtasm_execmem.c</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73915">Bug 73915</a> - sample shading + centroid broken since f5cfb4a</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73956">Bug 73956</a> - SIGSEGV when passing GL_NONE to glReadBuffer</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74026">Bug 74026</a> - Compiler rejects chained assignments involving array dereferences</li>
</ul>
<h2>Changes</h2>
<p>The full set of changes can be viewed by using the following git command:</p>
<pre>
git log mesa-10.0.2..mesa-10.0.3
</pre>
<p>Aaron Watry (2):</p>
<ul>
<li>radeon: Move gfx/dma cs cleanup to r600_common_context_cleanup</li>
<li>st/dri: prevent leak of dri option default values</li>
</ul>
<p>Andreas Fänger (1):</p>
<ul>
<li>swrast: fix delayed texel buffer allocation regression for OpenMP</li>
</ul>
<p>Anuj Phogat (3):</p>
<ul>
<li>glsl: Disable ARB_texture_rectangle in shader version 100.</li>
<li>i965: Use sample barycentric coordinates with per sample shading</li>
<li>i965: Ignore 'centroid' interpolation qualifier in case of persample shading</li>
</ul>
<p>Brian Paul (3):</p>
<ul>
<li>mesa: implement missing glGet(GL_RGBA_SIGNED_COMPONENTS_EXT) query</li>
<li>st/mesa: fix glReadBuffer(GL_NONE) segfault</li>
<li>draw: fix incorrect vertex size computation in LLVM drawing code</li>
</ul>
<p>Carl Worth (5):</p>
<ul>
<li>Add md5sums for 10.0.2. release.</li>
<li>cherry-ignore: Ignore several patches not yet ready for the stable branch</li>
<li>Drop another couple of patches.</li>
<li>cherry-ignore: Ignore 4 patches at the request of the author, (Anuj).</li>
<li>Update version to 10.0.3</li>
</ul>
<p>Chad Versace (1):</p>
<ul>
<li>i965/gen6/blorp: Emit more flushes to workaround hangs</li>
</ul>
<p>Chris Forbes (1):</p>
<ul>
<li>i965: fold offset into coord for textureOffset(gsampler2DRect)</li>
</ul>
<p>Emil Velikov (5):</p>
<ul>
<li>mesa: use signed temporary variable to store _ColorDrawBufferIndexes</li>
<li>st/mesa: use signed temporary variable to store _ColorDrawBufferIndexes</li>
<li>nv50: access only the available amount of textures</li>
<li>nv50: access only the available amount of constbuf</li>
<li>gallium/rtasm: handle mmap failures appropriately</li>
</ul>
<p>Eric Anholt (2):</p>
<ul>
<li>i965: Fix handling of MESA_pack_invert in blit (PBO) readpixels.</li>
<li>i965: Don't do the temporary-and-blit-copy for INVALIDATE_RANGE maps.</li>
</ul>
<p>Ian Romanick (2):</p>
<ul>
<li>mesa: Add COMPRESSED_RGBA_S3TC_DXT1_EXT to COMPRESSED_TEXTURE_FORMATS for GLES</li>
<li>radeon / r200: Pass the API into _mesa_initialize_context</li>
</ul>
<p>Ilia Mirkin (2):</p>
<ul>
<li>mesa: fix GL_COLOR_SUM enum for drivers without ARB_vertex_program</li>
<li>st/vdpau: don't return a device if the screen doesn't support NPOT</li>
</ul>
<p>José Fonseca (1):</p>
<ul>
<li>mesa: Use IROUND instead of roundf.</li>
</ul>
<p>Kenneth Graunke (2):</p>
<ul>
<li>glsl: Rename "expr" to "lhs_expr" in vector_extract munging code.</li>
<li>glsl: Fix chained assignments of vector channels.</li>
</ul>
<p>Lauri Kasanen (1):</p>
<ul>
<li>mesa: Fix build to properly check for supported compiler flags</li>
</ul>
<p>Marek Olšák (2):</p>
<ul>
<li>st/mesa: use sRGB formats for MSAA resolving if destination is sRGB</li>
<li>gallium/util: util_format_srgb should not return FORMAT_NONE for sRGB formats</li>
</ul>
<p>Matt Turner (2):</p>
<ul>
<li>glcpp: Define GL_EXT_shader_integer_mix in both GL and ES.</li>
<li>glx: Update glxext.h to revision 24777.</li>
</ul>
<p>Michał Górny (1):</p>
<ul>
<li>Use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config.</li>
</ul>
<p>Paul Berry (1):</p>
<ul>
<li>i965: Ensure that all necessary state is re-emitted if we run out of aperture.</li>
</ul>
<p>Paul Seidler (1):</p>
<ul>
<li>build: move ARCH_LIBS definition outside of ASM definition</li>
</ul>
<p>Thomas Sondergaard (4):</p>
<ul>
<li>mesa: Preliminary support for MSVC_VERSION=12.0</li>
<li>mesa: Fix compile error with MSVC 2013</li>
<li>mesa: Work around internal compiler error</li>
<li>mesa: Namespace qualify fma to override ambiguity with fma from math.h</li>
</ul>
<p>Tom Stellard (1):</p>
<ul>
<li>r600g/compute: Emit DEALLOC_STATE on cayman after dispatching a compute shader.</li>
</ul>
</div>
</body>
</html>

174
docs/relnotes/10.0.3.rst Normal file
View File

@ -0,0 +1,174 @@
Mesa 10.0.3 Release Notes / (February 3, 2014)
==============================================
Mesa 10.0.3 is a bug fix release which fixes bugs found since the 10.0.2
release.
Mesa 10.0.3 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts not supported.
MD5 checksums
-------------
::
5f9f463ef08129f6762106b434910adb MesaLib-10.0.3.tar.bz2
fb3997b6500e153bc32370cb3fc4ca9e MesaLib-10.0.3.tar.gz
a07b4b6b9eb449b88a6cb5061e51c331 MesaLib-10.0.3.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 72708 <https://bugs.freedesktop.org/show_bug.cgi?id=72708>`__ -
Master fails to build with older gcc due to -msse4.1
- `Bug 72926 <https://bugs.freedesktop.org/show_bug.cgi?id=72926>`__ -
[REGRESSION,swrast] Memory-related crash with anti-aliasing enabled
- `Bug 73096 <https://bugs.freedesktop.org/show_bug.cgi?id=73096>`__ -
Query GL_RGBA_SIGNED_COMPONENTS_EXT missing
- `Bug 73100 <https://bugs.freedesktop.org/show_bug.cgi?id=73100>`__ -
Please use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config
- `Bug 73418 <https://bugs.freedesktop.org/show_bug.cgi?id=73418>`__ -
OpenCL hangs graphics on CAYMAN
- `Bug 73473 <https://bugs.freedesktop.org/show_bug.cgi?id=73473>`__ -
Potential crash bug in src/gallium/auxiliary/rtasm/rtasm_execmem.c
- `Bug 73915 <https://bugs.freedesktop.org/show_bug.cgi?id=73915>`__ -
sample shading + centroid broken since f5cfb4a
- `Bug 73956 <https://bugs.freedesktop.org/show_bug.cgi?id=73956>`__ -
SIGSEGV when passing GL_NONE to glReadBuffer
- `Bug 74026 <https://bugs.freedesktop.org/show_bug.cgi?id=74026>`__ -
Compiler rejects chained assignments involving array dereferences
Changes
-------
The full set of changes can be viewed by using the following git
command:
::
git log mesa-10.0.2..mesa-10.0.3
Aaron Watry (2):
- radeon: Move gfx/dma cs cleanup to r600_common_context_cleanup
- st/dri: prevent leak of dri option default values
Andreas Fänger (1):
- swrast: fix delayed texel buffer allocation regression for OpenMP
Anuj Phogat (3):
- glsl: Disable ARB_texture_rectangle in shader version 100.
- i965: Use sample barycentric coordinates with per sample shading
- i965: Ignore 'centroid' interpolation qualifier in case of persample
shading
Brian Paul (3):
- mesa: implement missing glGet(GL_RGBA_SIGNED_COMPONENTS_EXT) query
- st/mesa: fix glReadBuffer(GL_NONE) segfault
- draw: fix incorrect vertex size computation in LLVM drawing code
Carl Worth (5):
- Add md5sums for 10.0.2. release.
- cherry-ignore: Ignore several patches not yet ready for the stable
branch
- Drop another couple of patches.
- cherry-ignore: Ignore 4 patches at the request of the author, (Anuj).
- Update version to 10.0.3
Chad Versace (1):
- i965/gen6/blorp: Emit more flushes to workaround hangs
Chris Forbes (1):
- i965: fold offset into coord for textureOffset(gsampler2DRect)
Emil Velikov (5):
- mesa: use signed temporary variable to store \_ColorDrawBufferIndexes
- st/mesa: use signed temporary variable to store
\_ColorDrawBufferIndexes
- nv50: access only the available amount of textures
- nv50: access only the available amount of constbuf
- gallium/rtasm: handle mmap failures appropriately
Eric Anholt (2):
- i965: Fix handling of MESA_pack_invert in blit (PBO) readpixels.
- i965: Don't do the temporary-and-blit-copy for INVALIDATE_RANGE maps.
Ian Romanick (2):
- mesa: Add COMPRESSED_RGBA_S3TC_DXT1_EXT to COMPRESSED_TEXTURE_FORMATS
for GLES
- radeon / r200: Pass the API into \_mesa_initialize_context
Ilia Mirkin (2):
- mesa: fix GL_COLOR_SUM enum for drivers without ARB_vertex_program
- st/vdpau: don't return a device if the screen doesn't support NPOT
José Fonseca (1):
- mesa: Use IROUND instead of roundf.
Kenneth Graunke (2):
- glsl: Rename "expr" to "lhs_expr" in vector_extract munging code.
- glsl: Fix chained assignments of vector channels.
Lauri Kasanen (1):
- mesa: Fix build to properly check for supported compiler flags
Marek Olšák (2):
- st/mesa: use sRGB formats for MSAA resolving if destination is sRGB
- gallium/util: util_format_srgb should not return FORMAT_NONE for sRGB
formats
Matt Turner (2):
- glcpp: Define GL_EXT_shader_integer_mix in both GL and ES.
- glx: Update glxext.h to revision 24777.
Michał Górny (1):
- Use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config.
Paul Berry (1):
- i965: Ensure that all necessary state is re-emitted if we run out of
aperture.
Paul Seidler (1):
- build: move ARCH_LIBS definition outside of ASM definition
Thomas Sondergaard (4):
- mesa: Preliminary support for MSVC_VERSION=12.0
- mesa: Fix compile error with MSVC 2013
- mesa: Work around internal compiler error
- mesa: Namespace qualify fma to override ambiguity with fma from
math.h
Tom Stellard (1):
- r600g/compute: Emit DEALLOC_STATE on cayman after dispatching a
compute shader.

View File

@ -1,191 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.0.4 Release Notes / (March 12, 2014)</h1>
<p>
Mesa 10.0.4 is a bug fix release which fixes bugs found since the 10.0.3 release.
</p>
<p>
Mesa 10.0.4 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
5a3c5b90776ec8a9fcd777c99e0607e2 MesaLib-10.0.4.tar.gz
8b148869d2620b0720c8a8d2b7eb3e38 MesaLib-10.0.4.tar.bz2
da2418d25bfbc273660af7e755fb367e MesaLib-10.0.4.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71870">Bug 71870</a> - Metro: Last Light rendering issues</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72895">Bug 72895</a> - Missing trees in flightgear 2.12.1 with mesa 10.0.1</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74251">Bug 74251</a> - Segfault in st_finalize_texture with Texture Buffer</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74723">Bug 74723</a> - main/shaderapi.c:407: detach_shader: Assertion `shProg-&gt;Shaders[j]-&gt;Type == 0x8B31 || shProg-&gt;Shaders[j]-&gt;Type == 0x8B30' failed.</li>
</ul>
<h2>Changes</h2>
<p>The full set of changes can be viewed by using the following git command:</p>
<pre>
git log mesa-10.0.3..mesa-10.0.4
</pre>
<p>Anuj Phogat (4):</p>
<ul>
<li>mesa: Generate correct error code in glDrawBuffers()</li>
<li>mesa: Add GL_TEXTURE_CUBE_MAP_ARRAY to legal_get_tex_level_parameter_target()</li>
<li>glsl: Fix condition to generate shader link error</li>
<li>i965: Fix the region's pitch condition to use blitter</li>
</ul>
<p>Brian Paul (8):</p>
<ul>
<li>r200: move driContextSetFlags(ctx) call after ctx var is initialized</li>
<li>radeon: move driContextSetFlags(ctx) call after ctx var is initialized</li>
<li>gallium/auxiliary/indices: replace free() with FREE()</li>
<li>draw: fix incorrect color of flat-shaded clipped lines</li>
<li>st/mesa: avoid sw fallback for getting/decompressing textures</li>
<li>mesa: update assertion in detach_shader() for geom shaders</li>
<li>mesa: do depth/stencil format conversion in glGetTexImage</li>
<li>softpipe: use 64-bit arithmetic in softpipe_resource_layout()</li>
</ul>
<p>Carl Worth (4):</p>
<ul>
<li>docs: Add md5sums for 10.0.3 release</li>
<li>main: Avoid double-free of shader Label</li>
<li>get-pick-list: Update to only find patches nominated for the 10.0 branch</li>
<li>Update version to 10.0.4</li>
</ul>
<p>Chris Forbes (1):</p>
<ul>
<li>i965: Validate (and resolve) all the bound textures.</li>
</ul>
<p>Christian König (1):</p>
<ul>
<li>radeon/uvd: fix feedback buffer handling v2</li>
</ul>
<p>Daniel Kurtz (1):</p>
<ul>
<li>glsl: Add locking to builtin_builder singleton</li>
</ul>
<p>Emil Velikov (3):</p>
<ul>
<li>dri/nouveau: Pass the API into _mesa_initialize_context</li>
<li>nv50: correctly calculate the number of vertical blocks during transfer map</li>
<li>dri/i9*5: correctly calculate the amount of system memory</li>
</ul>
<p>Fredrik Höglund (3):</p>
<ul>
<li>mesa: Preserve the NewArrays state when copying a VAO</li>
<li>glx: Fix the default values for GLXFBConfig attributes</li>
<li>glx: Fix the GLXFBConfig attrib sort priorities</li>
</ul>
<p>Hans (2):</p>
<ul>
<li>util: don't define isfinite(), isnan() for MSVC &gt;= 1800</li>
<li>mesa: don't define c99 math functions for MSVC &gt;= 1800</li>
</ul>
<p>Ian Romanick (6):</p>
<ul>
<li>meta: Release resources used by decompress_texture_image</li>
<li>meta: Release resources used by _mesa_meta_DrawPixels</li>
<li>meta: Fallback to software for GetTexImage of compressed GL_TEXTURE_CUBE_MAP_ARRAY</li>
<li>meta: Consistenly use non-Apple VAO functions</li>
<li>glcpp: Only warn for macro names containing __</li>
<li>glsl: Only warn for macro names containing __</li>
</ul>
<p>Ilia Mirkin (3):</p>
<ul>
<li>nv30: report 8 maximum inputs</li>
<li>nouveau/video: make sure that firmware is present when checking caps</li>
<li>nouveau: fix chipset checks for nv1a by using the oclass instead</li>
</ul>
<p>Julien Cristau (1):</p>
<ul>
<li>glx/dri2: fix build failure on HURD</li>
</ul>
<p>Kenneth Graunke (2):</p>
<ul>
<li>glsl: Don't lose precision qualifiers when encountering "centroid".</li>
<li>i965: Create a hardware context before initializing state module.</li>
</ul>
<p>Kusanagi Kouichi (1):</p>
<ul>
<li>targets/vdpau: Always use c++ to link</li>
</ul>
<p>Marek Olšák (1):</p>
<ul>
<li>st/mesa: fix crash when a shader uses a TBO and it's not bound</li>
</ul>
<p>Matt Turner (1):</p>
<ul>
<li>glsl: Initialize ubo_binding_mask flags to zero.</li>
</ul>
<p>Paul Berry (2):</p>
<ul>
<li>glsl: Make condition_to_hir() callable from outside ast_iteration_statement.</li>
<li>glsl: Fix continue statements in do-while loops.</li>
</ul>
<p>Tom Stellard (1):</p>
<ul>
<li>r600g/compute: PIPE_CAP_COMPUTE should be false for pre-evergreen GPUs</li>
</ul>
<p>Topi Pohjolainen (1):</p>
<ul>
<li>i965/blorp: do not use unnecessary hw-blending support</li>
</ul>
</div>
</body>
</html>

162
docs/relnotes/10.0.4.rst Normal file
View File

@ -0,0 +1,162 @@
Mesa 10.0.4 Release Notes / (March 12, 2014)
============================================
Mesa 10.0.4 is a bug fix release which fixes bugs found since the 10.0.3
release.
Mesa 10.0.4 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts not supported.
MD5 checksums
-------------
::
5a3c5b90776ec8a9fcd777c99e0607e2 MesaLib-10.0.4.tar.gz
8b148869d2620b0720c8a8d2b7eb3e38 MesaLib-10.0.4.tar.bz2
da2418d25bfbc273660af7e755fb367e MesaLib-10.0.4.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 71870 <https://bugs.freedesktop.org/show_bug.cgi?id=71870>`__ -
Metro: Last Light rendering issues
- `Bug 72895 <https://bugs.freedesktop.org/show_bug.cgi?id=72895>`__ -
Missing trees in flightgear 2.12.1 with mesa 10.0.1
- `Bug 74251 <https://bugs.freedesktop.org/show_bug.cgi?id=74251>`__ -
Segfault in st_finalize_texture with Texture Buffer
- `Bug 74723 <https://bugs.freedesktop.org/show_bug.cgi?id=74723>`__ -
main/shaderapi.c:407: detach_shader: Assertion
\`shProg->Shaders[j]->Type == 0x8B31 \|\| shProg->Shaders[j]->Type ==
0x8B30' failed.
Changes
-------
The full set of changes can be viewed by using the following git
command:
::
git log mesa-10.0.3..mesa-10.0.4
Anuj Phogat (4):
- mesa: Generate correct error code in glDrawBuffers()
- mesa: Add GL_TEXTURE_CUBE_MAP_ARRAY to
legal_get_tex_level_parameter_target()
- glsl: Fix condition to generate shader link error
- i965: Fix the region's pitch condition to use blitter
Brian Paul (8):
- r200: move driContextSetFlags(ctx) call after ctx var is initialized
- radeon: move driContextSetFlags(ctx) call after ctx var is
initialized
- gallium/auxiliary/indices: replace free() with FREE()
- draw: fix incorrect color of flat-shaded clipped lines
- st/mesa: avoid sw fallback for getting/decompressing textures
- mesa: update assertion in detach_shader() for geom shaders
- mesa: do depth/stencil format conversion in glGetTexImage
- softpipe: use 64-bit arithmetic in softpipe_resource_layout()
Carl Worth (4):
- docs: Add md5sums for 10.0.3 release
- main: Avoid double-free of shader Label
- get-pick-list: Update to only find patches nominated for the 10.0
branch
- Update version to 10.0.4
Chris Forbes (1):
- i965: Validate (and resolve) all the bound textures.
Christian König (1):
- radeon/uvd: fix feedback buffer handling v2
Daniel Kurtz (1):
- glsl: Add locking to builtin_builder singleton
Emil Velikov (3):
- dri/nouveau: Pass the API into \_mesa_initialize_context
- nv50: correctly calculate the number of vertical blocks during
transfer map
- dri/i9*5: correctly calculate the amount of system memory
Fredrik Höglund (3):
- mesa: Preserve the NewArrays state when copying a VAO
- glx: Fix the default values for GLXFBConfig attributes
- glx: Fix the GLXFBConfig attrib sort priorities
Hans (2):
- util: don't define isfinite(), isnan() for MSVC >= 1800
- mesa: don't define c99 math functions for MSVC >= 1800
Ian Romanick (6):
- meta: Release resources used by decompress_texture_image
- meta: Release resources used by \_mesa_meta_DrawPixels
- meta: Fallback to software for GetTexImage of compressed
GL_TEXTURE_CUBE_MAP_ARRAY
- meta: Consistenly use non-Apple VAO functions
- glcpp: Only warn for macro names containing \_\_
- glsl: Only warn for macro names containing \_\_
Ilia Mirkin (3):
- nv30: report 8 maximum inputs
- nouveau/video: make sure that firmware is present when checking caps
- nouveau: fix chipset checks for nv1a by using the oclass instead
Julien Cristau (1):
- glx/dri2: fix build failure on HURD
Kenneth Graunke (2):
- glsl: Don't lose precision qualifiers when encountering "centroid".
- i965: Create a hardware context before initializing state module.
Kusanagi Kouichi (1):
- targets/vdpau: Always use c++ to link
Marek Olšák (1):
- st/mesa: fix crash when a shader uses a TBO and it's not bound
Matt Turner (1):
- glsl: Initialize ubo_binding_mask flags to zero.
Paul Berry (2):
- glsl: Make condition_to_hir() callable from outside
ast_iteration_statement.
- glsl: Fix continue statements in do-while loops.
Tom Stellard (1):
- r600g/compute: PIPE_CAP_COMPUTE should be false for pre-evergreen
GPUs
Topi Pohjolainen (1):
- i965/blorp: do not use unnecessary hw-blending support

View File

@ -1,173 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.0.5 Release Notes / April 18, 2014</h1>
<p>
Mesa 10.0.5 is a bug fix release which fixes bugs found since the 10.0.4 release.
</p>
<p>
Mesa 10.0.5 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
db606aadd0fe321f3664099677d159bc MesaLib-10.0.5.tar.gz
e6009ccd8898d7104bb325b6af9ec354 MesaLib-10.0.5.tar.bz2
c8ab9e502542bf32299a4df85b0b704d MesaLib-10.0.5.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=58660">Bug 58660</a> - CAYMAN broken with HyperZ on</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64471">Bug 64471</a> - Radeon HD6570 lockup in Brütal Legend with HyperZ</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66352">Bug 66352</a> - GPU lockup in L4D2 on TURKS with HyperZ</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68799">Bug 68799</a> - [APITRACE] Hyper-Z lockup with Falcon BMS 4.32u6 on CAYMAN</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71547">Bug 71547</a> - compilation failure :#error &quot;SSE4.1 instruction set not enabled&quot;</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72685">Bug 72685</a> - [radeonsi hyperz] Artifacts in Unigine Sanctuary</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73088">Bug 73088</a> - [HyperZ] Juniper (6770): Gone Home / Unigine Heaven 4.0 lock up system after several minutes of use</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74428">Bug 74428</a> - hyperz causes gpu hang in Counter-strike: Source</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74803">Bug 74803</a> - [r600g] HyperZ broken on RV630 (Cogs shadows are broken)</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74863">Bug 74863</a> - [r600g] HyperZ broken on RV770 and CYPRESS (Left 4 Dead 2 trees corruption) bisected!</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74892">Bug 74892</a> - HyperZ GPU lockup with radeonsi 7970M PITCAIRN and Distance Alpha game</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74988">Bug 74988</a> - Buffer overrun (segfault) decompressing ETC2 texture in GLBenchmark 3.0 Manhattan</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75279">Bug 75279</a> - XCloseDisplay() takes one minute around nouveau_dri.so, freezing Firefox startup</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77102">Bug 77102</a> - gallium nouveau has no profile in vdpau and libva</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77207">Bug 77207</a> - [ivb/hsw] batch overwritten with garbage</li>
</ul>
<h2>Changes</h2>
<p>The full set of changes can be viewed by using the following git command:</p>
<pre>
git log mesa-10.0.4..mesa-10.0.5
</pre>
<p>Alex Deucher (1):</p>
<ul>
<li>radeon: reverse DBG_NO_HYPERZ logic</li>
</ul>
<p>Brian Paul (9):</p>
<ul>
<li>mesa: add unpacking code for MESA_FORMAT_Z32_FLOAT_S8X24_UINT</li>
<li>mesa: fix copy &amp; paste bugs in pack_ubyte_SARGB8()</li>
<li>mesa: fix copy &amp; paste bugs in pack_ubyte_SRGB8()</li>
<li>mesa: fix unpack_Z32_FLOAT_X24S8() / unpack_Z32_FLOAT() mix-up</li>
<li>st/mesa: add null pointer checking in query object functions</li>
<li>mesa: fix glMultiDrawArrays inside a display list</li>
<li>cso: fix sampler view count in cso_set_sampler_views()</li>
<li>svga: replace sampler assertion with conditional</li>
<li>svga: move LIST_INITHEAD(dirty_buffers) earlier in svga_context_create()</li>
</ul>
<p>Carl Worth (3):</p>
<ul>
<li>docs: Add md5sums for the 10.0.4 release.</li>
<li>Ignore patches which don't apply.</li>
<li>Update version to 10.0.5</li>
</ul>
<p>Christian König (2):</p>
<ul>
<li>st/mesa: recreate sampler view on context change v3</li>
<li>st/mesa: fix sampler view handling with shared textures v4</li>
</ul>
<p>Courtney Goeltzenleuchter (1):</p>
<ul>
<li>mesa: add bounds checking to eliminate buffer overrun</li>
</ul>
<p>Emil Velikov (2):</p>
<ul>
<li>mesa: return v.value_int64 when the requested type is TYPE_INT64</li>
<li>glx: drop obsolete _XUnlock_Mutex in __glXInitialize error path</li>
</ul>
<p>Eric Anholt (1):</p>
<ul>
<li>i965: Fix buffer overruns in MSAA MCS buffer clearing.</li>
</ul>
<p>Ilia Mirkin (6):</p>
<ul>
<li>nouveau: fix fence waiting logic in screen destroy</li>
<li>nv50: adjust blit_3d handling of ms output textures</li>
<li>mesa/main: condition GL_DEPTH_STENCIL on ARB_depth_texture</li>
<li>nouveau: add forgotten GL_COMPRESSED_INTENSITY to texture format list</li>
<li>nouveau: there may not have been a texture if the fbo was incomplete</li>
<li>nouveau: fix firmware check on nvd7/nvd9</li>
</ul>
<p>Johannes Nixdorf (1):</p>
<ul>
<li>configure.ac: fix the detection of expat with pkg-config</li>
</ul>
<p>Jonathan Gray (1):</p>
<ul>
<li>gallium: add endian detection for OpenBSD</li>
</ul>
<p>José Fonseca (1):</p>
<ul>
<li>draw: Duplicate TGSI tokens in draw_pipe_pstipple module.</li>
</ul>
<p>Matt Turner (1):</p>
<ul>
<li>mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.</li>
</ul>
<p>Paul Berry (1):</p>
<ul>
<li>i965/gen7: Prefer vertical alignment of 4 when possible.</li>
</ul>
</div>
</body>
</html>

147
docs/relnotes/10.0.5.rst Normal file
View File

@ -0,0 +1,147 @@
Mesa 10.0.5 Release Notes / April 18, 2014
==========================================
Mesa 10.0.5 is a bug fix release which fixes bugs found since the 10.0.4
release.
Mesa 10.0.5 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts not supported.
MD5 checksums
-------------
::
db606aadd0fe321f3664099677d159bc MesaLib-10.0.5.tar.gz
e6009ccd8898d7104bb325b6af9ec354 MesaLib-10.0.5.tar.bz2
c8ab9e502542bf32299a4df85b0b704d MesaLib-10.0.5.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 58660 <https://bugs.freedesktop.org/show_bug.cgi?id=58660>`__ -
CAYMAN broken with HyperZ on
- `Bug 64471 <https://bugs.freedesktop.org/show_bug.cgi?id=64471>`__ -
Radeon HD6570 lockup in Brütal Legend with HyperZ
- `Bug 66352 <https://bugs.freedesktop.org/show_bug.cgi?id=66352>`__ -
GPU lockup in L4D2 on TURKS with HyperZ
- `Bug 68799 <https://bugs.freedesktop.org/show_bug.cgi?id=68799>`__ -
[APITRACE] Hyper-Z lockup with Falcon BMS 4.32u6 on CAYMAN
- `Bug 71547 <https://bugs.freedesktop.org/show_bug.cgi?id=71547>`__ -
compilation failure :#error "SSE4.1 instruction set not enabled"
- `Bug 72685 <https://bugs.freedesktop.org/show_bug.cgi?id=72685>`__ -
[radeonsi hyperz] Artifacts in Unigine Sanctuary
- `Bug 73088 <https://bugs.freedesktop.org/show_bug.cgi?id=73088>`__ -
[HyperZ] Juniper (6770): Gone Home / Unigine Heaven 4.0 lock up
system after several minutes of use
- `Bug 74428 <https://bugs.freedesktop.org/show_bug.cgi?id=74428>`__ -
hyperz causes gpu hang in Counter-strike: Source
- `Bug 74803 <https://bugs.freedesktop.org/show_bug.cgi?id=74803>`__ -
[r600g] HyperZ broken on RV630 (Cogs shadows are broken)
- `Bug 74863 <https://bugs.freedesktop.org/show_bug.cgi?id=74863>`__ -
[r600g] HyperZ broken on RV770 and CYPRESS (Left 4 Dead 2 trees
corruption) bisected!
- `Bug 74892 <https://bugs.freedesktop.org/show_bug.cgi?id=74892>`__ -
HyperZ GPU lockup with radeonsi 7970M PITCAIRN and Distance Alpha
game
- `Bug 74988 <https://bugs.freedesktop.org/show_bug.cgi?id=74988>`__ -
Buffer overrun (segfault) decompressing ETC2 texture in GLBenchmark
3.0 Manhattan
- `Bug 75279 <https://bugs.freedesktop.org/show_bug.cgi?id=75279>`__ -
XCloseDisplay() takes one minute around nouveau_dri.so, freezing
Firefox startup
- `Bug 77102 <https://bugs.freedesktop.org/show_bug.cgi?id=77102>`__ -
gallium nouveau has no profile in vdpau and libva
- `Bug 77207 <https://bugs.freedesktop.org/show_bug.cgi?id=77207>`__ -
[ivb/hsw] batch overwritten with garbage
Changes
-------
The full set of changes can be viewed by using the following git
command:
::
git log mesa-10.0.4..mesa-10.0.5
Alex Deucher (1):
- radeon: reverse DBG_NO_HYPERZ logic
Brian Paul (9):
- mesa: add unpacking code for MESA_FORMAT_Z32_FLOAT_S8X24_UINT
- mesa: fix copy & paste bugs in pack_ubyte_SARGB8()
- mesa: fix copy & paste bugs in pack_ubyte_SRGB8()
- mesa: fix unpack_Z32_FLOAT_X24S8() / unpack_Z32_FLOAT() mix-up
- st/mesa: add null pointer checking in query object functions
- mesa: fix glMultiDrawArrays inside a display list
- cso: fix sampler view count in cso_set_sampler_views()
- svga: replace sampler assertion with conditional
- svga: move LIST_INITHEAD(dirty_buffers) earlier in
svga_context_create()
Carl Worth (3):
- docs: Add md5sums for the 10.0.4 release.
- Ignore patches which don't apply.
- Update version to 10.0.5
Christian König (2):
- st/mesa: recreate sampler view on context change v3
- st/mesa: fix sampler view handling with shared textures v4
Courtney Goeltzenleuchter (1):
- mesa: add bounds checking to eliminate buffer overrun
Emil Velikov (2):
- mesa: return v.value_int64 when the requested type is TYPE_INT64
- glx: drop obsolete \_XUnlock_Mutex in \__glXInitialize error path
Eric Anholt (1):
- i965: Fix buffer overruns in MSAA MCS buffer clearing.
Ilia Mirkin (6):
- nouveau: fix fence waiting logic in screen destroy
- nv50: adjust blit_3d handling of ms output textures
- mesa/main: condition GL_DEPTH_STENCIL on ARB_depth_texture
- nouveau: add forgotten GL_COMPRESSED_INTENSITY to texture format list
- nouveau: there may not have been a texture if the fbo was incomplete
- nouveau: fix firmware check on nvd7/nvd9
Johannes Nixdorf (1):
- configure.ac: fix the detection of expat with pkg-config
Jonathan Gray (1):
- gallium: add endian detection for OpenBSD
José Fonseca (1):
- draw: Duplicate TGSI tokens in draw_pipe_pstipple module.
Matt Turner (1):
- mesa: Wrap SSE4.1 code in #ifdef \__SSE4_1__.
Paul Berry (1):
- i965/gen7: Prefer vertical alignment of 4 when possible.

View File

@ -1,146 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.0 Release Notes / (November 30th, 2013)</h1>
<p>
Mesa 10.0 is a new development release.
People who are concerned with stability and reliability should stick
with a previous release or wait for Mesa 10.0.1.
</p>
<p>
Mesa 10.0 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
b38626b96c664db67a534d7859682436 MesaLib-10.0.0.tar.gz
f3fe55d9735bea158bbe97ed9a0da819 MesaLib-10.0.0.tar.bz2
c6ee1ce51e3bf35947d2978b872daf51 MesaLib-10.0.0.zip
</pre>
<h2>New features</h2>
<p>
Note: some of the new features are only available with certain drivers.
</p>
<ul>
<li>GL_AMD_seamless_cubemap_per_texture on i965.</li>
<li>GL_ARB_conservative_depth on i965.</li>
<li>GL_ARB_texture_gather on i965.</li>
<li>GL_ARB_texture_query_levels on i965.</li>
<li>GL_ARB_texture_mirror_clamp_to_edge.</li>
<li>GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, and GL_ARB_transform_feedback_instanced on i965/Gen7 (with appropriate kernel support).</li>
<li>GL_ARB_sample_shading on i965.</li>
<li>GL_ARB_shader_atomic_counters on i965.</li>
<li>GL_ARB_vertex_attrib_binding</li>
<li>GL_ARB_vertex_type_10f_11f_11f_rev on i965 and r600g</li>
<li>GL_KHR_debug</li>
<li>GLX_MESA_query_renderer</li>
</ul>
<h2>Bug fixes</h2>
<p>Attempts have been made to <b>not</b> include bugs fixed in previous 9.2
releases or bugs that were regressions during 10.0 development. This list is
likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=47755">Bug 47755</a> - [glsl-compiler] no error checking when Interpolation qualifier for built-in variable is different in vertex and fragment shader</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=52171">Bug 52171</a> - [gallium/r600/clover] Simple benchmarks failed to run</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=53077">Bug 53077</a> - [IVB] Output error with msaa when both of framebuffer and source color's alpha are not 1</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54867">Bug 54867</a> - bug in r300 compiler</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60929">Bug 60929</a> - [r600-llvm] mono games with opengl are blocking on start</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=62142">Bug 62142</a> - Mesa/demo mipmap_limits upside down with running by SOFTWARE</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=62698">Bug 62698</a> - [bisected] WebGL demo &quot;Consumed&quot;: texstate.c:628: update_texture_state: Assertion „__builtin_popcount(enabledTargets) == 1“ failed.</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64225">Bug 64225</a> - bfgminer --scyte generates Segmentation Fault on Northern Island</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64226">Bug 64226</a> - python-opencl package generate segmentation fault at pipe_r600.so</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64261">Bug 64261</a> - [SNB Bisected]Ogles3conform GL3Tests_color_buffer_float_color_buffer_float_clamp_fixed.test fail</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66213">Bug 66213</a> - Certain Mesa Demos Rendering Inverted (vertically)</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66806">Bug 66806</a> - [softpipe] glxgears floating point exception</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=67921">Bug 67921</a> - [bisected commit 883987] crosscompiling fails with util/u_cpu_detect.c:247:4: error: 'asm' undeclared (first use in this function)</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68162">Bug 68162</a> - [radeonsi] texture rendering is broken in Source-Engine games</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68451">Bug 68451</a> - Texture flicker in native Dota2 in mesa 9.2.0rc1</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68503">Bug 68503</a> - Graphical glitches in Serious Sam 3 when SB is enabled</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68792">Bug 68792</a> - Problems during playback of h264 files using UVD and VLC on AMD E-350 CPU</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68845">Bug 68845</a> - VDPAU/UVD regression</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69078">Bug 69078</a> - Modern Warfare (1, 2 and 3) broken in Wine on SNB</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69321">Bug 69321</a> - starting openCL crashes/boots system</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70042">Bug 70042</a> - Major texture flickering in Dota 2 (r600g on HD 6950)</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70088">Bug 70088</a> - Glamor on r600g crashes Xserver</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70123">Bug 70123</a> - Freeze caused by 'winsys/radeon: remove cs_queue_empty' commit</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70327">Bug 70327</a> - Casting floating point variable to integer not working properly while constant gets converted properly</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70891">Bug 70891</a> - CL_INVALID_BUILD_OPTIONS results in CL_INVALID_DEVICE when asking for build log</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70913">Bug 70913</a> - [PIGLIT,radeonsi] crash in &quot;spec/EXT_framebuffer_multisample/sample-alpha-to-coverage 4 depth&quot; (buffer overflow)</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71022">Bug 71022</a> - configure: error: Expat required for DRI.</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71110">Bug 71110</a> - xorg_driver.c:1030:2: error: too many arguments to function DamageUnregister</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71172">Bug 71172</a> - Segfault when running glxinfo. NV25GL [Quadro4 900 XGL]</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71512">Bug 71512</a> - dlopen.h:54: undefined reference to `dlopen'</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71870">Bug 71870</a> - Metro: Last Light rendering issues</li>
</ul>
<h2>Changes</h2>
<ul>
<li>Removed X.Org state tracker (unmaintained and broken)</li>
<li>Removed the video-accel r300 targets</li>
<li>Removed the video-accel softpipe targets</li>
</ul>
</div>
</body>
</html>

132
docs/relnotes/10.0.rst Normal file
View File

@ -0,0 +1,132 @@
Mesa 10.0 Release Notes / (November 30th, 2013)
===============================================
Mesa 10.0 is a new development release. People who are concerned with
stability and reliability should stick with a previous release or wait
for Mesa 10.0.1.
Mesa 10.0 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
MD5 checksums
-------------
::
b38626b96c664db67a534d7859682436 MesaLib-10.0.0.tar.gz
f3fe55d9735bea158bbe97ed9a0da819 MesaLib-10.0.0.tar.bz2
c6ee1ce51e3bf35947d2978b872daf51 MesaLib-10.0.0.zip
New features
------------
Note: some of the new features are only available with certain drivers.
- GL_AMD_seamless_cubemap_per_texture on i965.
- GL_ARB_conservative_depth on i965.
- GL_ARB_texture_gather on i965.
- GL_ARB_texture_query_levels on i965.
- GL_ARB_texture_mirror_clamp_to_edge.
- GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, and
GL_ARB_transform_feedback_instanced on i965/Gen7 (with appropriate
kernel support).
- GL_ARB_sample_shading on i965.
- GL_ARB_shader_atomic_counters on i965.
- GL_ARB_vertex_attrib_binding
- GL_ARB_vertex_type_10f_11f_11f_rev on i965 and r600g
- GL_KHR_debug
- GLX_MESA_query_renderer
Bug fixes
---------
Attempts have been made to **not** include bugs fixed in previous 9.2
releases or bugs that were regressions during 10.0 development. This
list is likely incomplete.
- `Bug 47755 <https://bugs.freedesktop.org/show_bug.cgi?id=47755>`__ -
[glsl-compiler] no error checking when Interpolation qualifier for
built-in variable is different in vertex and fragment shader
- `Bug 52171 <https://bugs.freedesktop.org/show_bug.cgi?id=52171>`__ -
[gallium/r600/clover] Simple benchmarks failed to run
- `Bug 53077 <https://bugs.freedesktop.org/show_bug.cgi?id=53077>`__ -
[IVB] Output error with msaa when both of framebuffer and source
color's alpha are not 1
- `Bug 54867 <https://bugs.freedesktop.org/show_bug.cgi?id=54867>`__ -
bug in r300 compiler
- `Bug 60929 <https://bugs.freedesktop.org/show_bug.cgi?id=60929>`__ -
[r600-llvm] mono games with opengl are blocking on start
- `Bug 62142 <https://bugs.freedesktop.org/show_bug.cgi?id=62142>`__ -
Mesa/demo mipmap_limits upside down with running by SOFTWARE
- `Bug 62698 <https://bugs.freedesktop.org/show_bug.cgi?id=62698>`__ -
[bisected] WebGL demo "Consumed": texstate.c:628:
update_texture_state: Assertion „__builtin_popcount(enabledTargets)
== 1“ failed.
- `Bug 64225 <https://bugs.freedesktop.org/show_bug.cgi?id=64225>`__ -
bfgminer --scyte generates Segmentation Fault on Northern Island
- `Bug 64226 <https://bugs.freedesktop.org/show_bug.cgi?id=64226>`__ -
python-opencl package generate segmentation fault at pipe_r600.so
- `Bug 64261 <https://bugs.freedesktop.org/show_bug.cgi?id=64261>`__ -
[SNB Bisected]Ogles3conform
GL3Tests_color_buffer_float_color_buffer_float_clamp_fixed.test fail
- `Bug 66213 <https://bugs.freedesktop.org/show_bug.cgi?id=66213>`__ -
Certain Mesa Demos Rendering Inverted (vertically)
- `Bug 66806 <https://bugs.freedesktop.org/show_bug.cgi?id=66806>`__ -
[softpipe] glxgears floating point exception
- `Bug 67921 <https://bugs.freedesktop.org/show_bug.cgi?id=67921>`__ -
[bisected commit 883987] crosscompiling fails with
util/u_cpu_detect.c:247:4: error: 'asm' undeclared (first use in this
function)
- `Bug 68162 <https://bugs.freedesktop.org/show_bug.cgi?id=68162>`__ -
[radeonsi] texture rendering is broken in Source-Engine games
- `Bug 68451 <https://bugs.freedesktop.org/show_bug.cgi?id=68451>`__ -
Texture flicker in native Dota2 in mesa 9.2.0rc1
- `Bug 68503 <https://bugs.freedesktop.org/show_bug.cgi?id=68503>`__ -
Graphical glitches in Serious Sam 3 when SB is enabled
- `Bug 68792 <https://bugs.freedesktop.org/show_bug.cgi?id=68792>`__ -
Problems during playback of h264 files using UVD and VLC on AMD E-350
CPU
- `Bug 68845 <https://bugs.freedesktop.org/show_bug.cgi?id=68845>`__ -
VDPAU/UVD regression
- `Bug 69078 <https://bugs.freedesktop.org/show_bug.cgi?id=69078>`__ -
Modern Warfare (1, 2 and 3) broken in Wine on SNB
- `Bug 69321 <https://bugs.freedesktop.org/show_bug.cgi?id=69321>`__ -
starting openCL crashes/boots system
- `Bug 70042 <https://bugs.freedesktop.org/show_bug.cgi?id=70042>`__ -
Major texture flickering in Dota 2 (r600g on HD 6950)
- `Bug 70088 <https://bugs.freedesktop.org/show_bug.cgi?id=70088>`__ -
Glamor on r600g crashes Xserver
- `Bug 70123 <https://bugs.freedesktop.org/show_bug.cgi?id=70123>`__ -
Freeze caused by 'winsys/radeon: remove cs_queue_empty' commit
- `Bug 70327 <https://bugs.freedesktop.org/show_bug.cgi?id=70327>`__ -
Casting floating point variable to integer not working properly while
constant gets converted properly
- `Bug 70891 <https://bugs.freedesktop.org/show_bug.cgi?id=70891>`__ -
CL_INVALID_BUILD_OPTIONS results in CL_INVALID_DEVICE when asking for
build log
- `Bug 70913 <https://bugs.freedesktop.org/show_bug.cgi?id=70913>`__ -
[PIGLIT,radeonsi] crash in
"spec/EXT_framebuffer_multisample/sample-alpha-to-coverage 4 depth"
(buffer overflow)
- `Bug 71022 <https://bugs.freedesktop.org/show_bug.cgi?id=71022>`__ -
configure: error: Expat required for DRI.
- `Bug 71110 <https://bugs.freedesktop.org/show_bug.cgi?id=71110>`__ -
xorg_driver.c:1030:2: error: too many arguments to function
DamageUnregister
- `Bug 71172 <https://bugs.freedesktop.org/show_bug.cgi?id=71172>`__ -
Segfault when running glxinfo. NV25GL [Quadro4 900 XGL]
- `Bug 71512 <https://bugs.freedesktop.org/show_bug.cgi?id=71512>`__ -
dlopen.h:54: undefined reference to \`dlopen'
- `Bug 71870 <https://bugs.freedesktop.org/show_bug.cgi?id=71870>`__ -
Metro: Last Light rendering issues
Changes
-------
- Removed X.Org state tracker (unmaintained and broken)
- Removed the video-accel r300 targets
- Removed the video-accel softpipe targets

View File

@ -1,254 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.1.1 Release Notes / April 18, 2014</h1>
<p>
Mesa 10.1.1 is a bug fix release which fixes bugs found since the 10.1 release.
</p>
<p>
Mesa 10.1.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
96e63674ccfa98e7ec6eb4fee3f770c3 MesaLib-10.1.1.tar.gz
1fde7ed079df7aeb9b6a744ca033de8d MesaLib-10.1.1.tar.bz2
e64d0a562638664b13d2edf22321df59 MesaLib-10.1.1.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71547">Bug 71547</a> - compilation failure :#error &quot;SSE4.1 instruction set not enabled&quot;</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74868">Bug 74868</a> - r600g: Diablo III Crashes After a few minutes</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74988">Bug 74988</a> - Buffer overrun (segfault) decompressing ETC2 texture in GLBenchmark 3.0 Manhattan</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75279">Bug 75279</a> - XCloseDisplay() takes one minute around nouveau_dri.so, freezing Firefox startup</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75543">Bug 75543</a> - OSMesa Gallium OSMesaMakeCurrent</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75660">Bug 75660</a> - u_inlines.h:277:pipe_buffer_map_range: Assertion `length' failed.</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76323">Bug 76323</a> - GLSL compiler ignores layout(binding=N) on uniform blocks</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76377">Bug 76377</a> - DRI3 should only be enabled on Linux due to a udev dependency</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76749">Bug 76749</a> - [HSW] DOTA world lighting has no effect</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77102">Bug 77102</a> - gallium nouveau has no profile in vdpau and libva</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77207">Bug 77207</a> - [ivb/hsw] batch overwritten with garbage</li>
</ul>
<h2>Changes</h2>
<p>Aaron Watry (1):</p>
<ul>
<li>gallium/util: Fix memory leak</li>
</ul>
<p>Alexander von Gluck IV (1):</p>
<ul>
<li>haiku: Fix build through scons corrections and viewport fixes</li>
</ul>
<p>Anuj Phogat (2):</p>
<ul>
<li>mesa: Set initial internal format of a texture to GL_RGBA</li>
<li>mesa: Allow GL_DEPTH_COMPONENT and GL_DEPTH_STENCIL combinations in glTexImage{123}D()</li>
</ul>
<p>Brian Paul (12):</p>
<ul>
<li>softpipe: use 64-bit arithmetic in softpipe_resource_layout()</li>
<li>mesa: don't call ctx-&gt;Driver.ClearBufferSubData() if size==0</li>
<li>st/osmesa: check buffer size when searching for buffers</li>
<li>mesa: fix copy &amp; paste bugs in pack_ubyte_SARGB8()</li>
<li>mesa: fix copy &amp; paste bugs in pack_ubyte_SRGB8()</li>
<li>c11/threads: don't include assert.h if the assert macro is already defined</li>
<li>mesa: fix unpack_Z32_FLOAT_X24S8() / unpack_Z32_FLOAT() mix-up</li>
<li>st/mesa: add null pointer checking in query object functions</li>
<li>mesa: fix glMultiDrawArrays inside a display list</li>
<li>cso: fix sampler view count in cso_set_sampler_views()</li>
<li>svga: replace sampler assertion with conditional</li>
<li>svga: move LIST_INITHEAD(dirty_buffers) earlier in svga_context_create()</li>
</ul>
<p>Carl Worth (3):</p>
<ul>
<li>cherry-ignore: Ignore a few patches</li>
<li>glsl: Allow explicit binding on atomics again</li>
<li>Update VERSION to 10.1.1</li>
</ul>
<p>Chia-I Wu (1):</p>
<ul>
<li>i965/vec4: fix record clearing in copy propagation</li>
</ul>
<p>Christian König (2):</p>
<ul>
<li>st/mesa: recreate sampler view on context change v3</li>
<li>st/mesa: fix sampler view handling with shared textures v4</li>
</ul>
<p>Courtney Goeltzenleuchter (1):</p>
<ul>
<li>mesa: add bounds checking to eliminate buffer overrun</li>
</ul>
<p>Emil Velikov (5):</p>
<ul>
<li>nv50: add missing brackets when handling the samplers array</li>
<li>mesa: return v.value_int64 when the requested type is TYPE_INT64</li>
<li>configure: enable dri3 only for linux</li>
<li>glx: drop obsolete _XUnlock_Mutex in __glXInitialize error path</li>
<li>configure: cleanup libudev handling</li>
</ul>
<p>Eric Anholt (1):</p>
<ul>
<li>i965: Fix buffer overruns in MSAA MCS buffer clearing.</li>
</ul>
<p>Hans (2):</p>
<ul>
<li>util: don't define isfinite(), isnan() for MSVC &gt;= 1800</li>
<li>mesa: don't define c99 math functions for MSVC &gt;= 1800</li>
</ul>
<p>Ian Romanick (7):</p>
<ul>
<li>linker: Split set_uniform_binding into separate functions for blocks and samplers</li>
<li>linker: Various trivial clean-ups in set_sampler_binding</li>
<li>linker: Fold set_uniform_binding into call site</li>
<li>linker: Clean up "unused parameter" warnings</li>
<li>linker: Set block bindings based on UniformBlocks rather than UniformStorage</li>
<li>linker: Set binding for all elements of UBO array</li>
<li>glsl: Propagate explicit binding information from the AST all the way to the linker</li>
</ul>
<p>Ilia Mirkin (8):</p>
<ul>
<li>nouveau: fix fence waiting logic in screen destroy</li>
<li>nv50: adjust blit_3d handling of ms output textures</li>
<li>loader: add special logic to distinguish nouveau from nouveau_vieux</li>
<li>mesa/main: condition GL_DEPTH_STENCIL on ARB_depth_texture</li>
<li>nouveau: add forgotten GL_COMPRESSED_INTENSITY to texture format list</li>
<li>nouveau: there may not have been a texture if the fbo was incomplete</li>
<li>nvc0/ir: move sample id to second source arg to fix sampler2DMS</li>
<li>nouveau: fix firmware check on nvd7/nvd9</li>
</ul>
<p>Johannes Nixdorf (1):</p>
<ul>
<li>configure.ac: fix the detection of expat with pkg-config</li>
</ul>
<p>Jonathan Gray (7):</p>
<ul>
<li>gallium: add endian detection for OpenBSD</li>
<li>loader: use 0 instead of FALSE which isn't defined</li>
<li>loader: don't limit the non-udev path to only android</li>
<li>megadriver_stub.c: don't use _GNU_SOURCE to gate the compat code</li>
<li>egl/dri2: don't require libudev to build drm/wayland platforms</li>
<li>egl/dri2: use drm macros to construct device name</li>
<li>configure: don't require libudev for gbm or egl drm/wayland</li>
</ul>
<p>José Fonseca (4):</p>
<ul>
<li>c11/threads: Fix nano to milisecond conversion.</li>
<li>mapi/u_thread: Use GetCurrentThreadId</li>
<li>c11/threads: Don't implement thrd_current on Windows.</li>
<li>draw: Duplicate TGSI tokens in draw_pipe_pstipple module.</li>
</ul>
<p>Kenneth Graunke (4):</p>
<ul>
<li>i965/fs: Fix register comparisons in saturate propagation.</li>
<li>glsl: Fix lack of i2u in lower_ubo_reference.</li>
<li>i965: Stop advertising GL_MESA_ycbcr_texture.</li>
<li>glsl: Try vectorizing when seeing a repeated assignment to a channel.</li>
</ul>
<p>Marek Olšák (13):</p>
<ul>
<li>r600g: fix texelFetchOffset GLSL functions</li>
<li>r600g: fix blitting the last 2 mipmap levels for Evergreen</li>
<li>mesa: fix the format of glEdgeFlagPointer</li>
<li>r600g,radeonsi: fix MAX_TEXTURE_3D_LEVELS and MAX_TEXTURE_ARRAY_LAYERS limits</li>
<li>st/mesa: fix per-vertex edge flags and GLSL support (v2)</li>
<li>mesa: mark GL_RGB9_E5 as not color-renderable</li>
<li>mesa: fix texture border handling for cube arrays</li>
<li>mesa: allow generating mipmaps for cube arrays</li>
<li>mesa: fix software fallback for generating mipmaps for cube arrays</li>
<li>mesa: fix software fallback for generating mipmaps for 3D textures</li>
<li>st/mesa: fix generating mipmaps for cube arrays</li>
<li>st/mesa: drop the lowering of quad strips to triangle strips</li>
<li>r600g: implement edge flags</li>
</ul>
<p>Matt Turner (4):</p>
<ul>
<li>mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.</li>
<li>i965/fs: Fix off-by-one in saturate propagation.</li>
<li>i965/fs: Don't propagate saturate modifiers into partial writes.</li>
<li>i965/fs: Don't propagate saturation modifiers if there are source modifiers.</li>
</ul>
<p>Michel Dänzer (1):</p>
<ul>
<li>r600g: Don't leak bytecode on shader compile failure</li>
</ul>
<p>Mike Stroyan (1):</p>
<ul>
<li>i965: Avoid dependency hints on math opcodes</li>
</ul>
<p>Thomas Hellstrom (5):</p>
<ul>
<li>winsys/svga: Replace the query mm buffer pool with a slab pool v3</li>
<li>winsys/svga: Update the vmwgfx_drm.h header to latest version from kernel</li>
<li>winsys/svga: Fix prime surface references also for guest-backed surfaces</li>
<li>st/xa: Bind destination before setting new state</li>
<li>st/xa: Make sure unused samplers are set to NULL</li>
</ul>
<p>Tom Stellard (1):</p>
<ul>
<li>configure: Use LLVM shared libraries by default</li>
</ul>
</div>
</body>
</html>

223
docs/relnotes/10.1.1.rst Normal file
View File

@ -0,0 +1,223 @@
Mesa 10.1.1 Release Notes / April 18, 2014
==========================================
Mesa 10.1.1 is a bug fix release which fixes bugs found since the 10.1
release.
Mesa 10.1.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
MD5 checksums
-------------
::
96e63674ccfa98e7ec6eb4fee3f770c3 MesaLib-10.1.1.tar.gz
1fde7ed079df7aeb9b6a744ca033de8d MesaLib-10.1.1.tar.bz2
e64d0a562638664b13d2edf22321df59 MesaLib-10.1.1.zip
New features
------------
None
Bug fixes
---------
- `Bug 71547 <https://bugs.freedesktop.org/show_bug.cgi?id=71547>`__ -
compilation failure :#error "SSE4.1 instruction set not enabled"
- `Bug 74868 <https://bugs.freedesktop.org/show_bug.cgi?id=74868>`__ -
r600g: Diablo III Crashes After a few minutes
- `Bug 74988 <https://bugs.freedesktop.org/show_bug.cgi?id=74988>`__ -
Buffer overrun (segfault) decompressing ETC2 texture in GLBenchmark
3.0 Manhattan
- `Bug 75279 <https://bugs.freedesktop.org/show_bug.cgi?id=75279>`__ -
XCloseDisplay() takes one minute around nouveau_dri.so, freezing
Firefox startup
- `Bug 75543 <https://bugs.freedesktop.org/show_bug.cgi?id=75543>`__ -
OSMesa Gallium OSMesaMakeCurrent
- `Bug 75660 <https://bugs.freedesktop.org/show_bug.cgi?id=75660>`__ -
u_inlines.h:277:pipe_buffer_map_range: Assertion \`length' failed.
- `Bug 76323 <https://bugs.freedesktop.org/show_bug.cgi?id=76323>`__ -
GLSL compiler ignores layout(binding=N) on uniform blocks
- `Bug 76377 <https://bugs.freedesktop.org/show_bug.cgi?id=76377>`__ -
DRI3 should only be enabled on Linux due to a udev dependency
- `Bug 76749 <https://bugs.freedesktop.org/show_bug.cgi?id=76749>`__ -
[HSW] DOTA world lighting has no effect
- `Bug 77102 <https://bugs.freedesktop.org/show_bug.cgi?id=77102>`__ -
gallium nouveau has no profile in vdpau and libva
- `Bug 77207 <https://bugs.freedesktop.org/show_bug.cgi?id=77207>`__ -
[ivb/hsw] batch overwritten with garbage
Changes
-------
Aaron Watry (1):
- gallium/util: Fix memory leak
Alexander von Gluck IV (1):
- haiku: Fix build through scons corrections and viewport fixes
Anuj Phogat (2):
- mesa: Set initial internal format of a texture to GL_RGBA
- mesa: Allow GL_DEPTH_COMPONENT and GL_DEPTH_STENCIL combinations in
glTexImage{123}D()
Brian Paul (12):
- softpipe: use 64-bit arithmetic in softpipe_resource_layout()
- mesa: don't call ctx->Driver.ClearBufferSubData() if size==0
- st/osmesa: check buffer size when searching for buffers
- mesa: fix copy & paste bugs in pack_ubyte_SARGB8()
- mesa: fix copy & paste bugs in pack_ubyte_SRGB8()
- c11/threads: don't include assert.h if the assert macro is already
defined
- mesa: fix unpack_Z32_FLOAT_X24S8() / unpack_Z32_FLOAT() mix-up
- st/mesa: add null pointer checking in query object functions
- mesa: fix glMultiDrawArrays inside a display list
- cso: fix sampler view count in cso_set_sampler_views()
- svga: replace sampler assertion with conditional
- svga: move LIST_INITHEAD(dirty_buffers) earlier in
svga_context_create()
Carl Worth (3):
- cherry-ignore: Ignore a few patches
- glsl: Allow explicit binding on atomics again
- Update VERSION to 10.1.1
Chia-I Wu (1):
- i965/vec4: fix record clearing in copy propagation
Christian König (2):
- st/mesa: recreate sampler view on context change v3
- st/mesa: fix sampler view handling with shared textures v4
Courtney Goeltzenleuchter (1):
- mesa: add bounds checking to eliminate buffer overrun
Emil Velikov (5):
- nv50: add missing brackets when handling the samplers array
- mesa: return v.value_int64 when the requested type is TYPE_INT64
- configure: enable dri3 only for linux
- glx: drop obsolete \_XUnlock_Mutex in \__glXInitialize error path
- configure: cleanup libudev handling
Eric Anholt (1):
- i965: Fix buffer overruns in MSAA MCS buffer clearing.
Hans (2):
- util: don't define isfinite(), isnan() for MSVC >= 1800
- mesa: don't define c99 math functions for MSVC >= 1800
Ian Romanick (7):
- linker: Split set_uniform_binding into separate functions for blocks
and samplers
- linker: Various trivial clean-ups in set_sampler_binding
- linker: Fold set_uniform_binding into call site
- linker: Clean up "unused parameter" warnings
- linker: Set block bindings based on UniformBlocks rather than
UniformStorage
- linker: Set binding for all elements of UBO array
- glsl: Propagate explicit binding information from the AST all the way
to the linker
Ilia Mirkin (8):
- nouveau: fix fence waiting logic in screen destroy
- nv50: adjust blit_3d handling of ms output textures
- loader: add special logic to distinguish nouveau from nouveau_vieux
- mesa/main: condition GL_DEPTH_STENCIL on ARB_depth_texture
- nouveau: add forgotten GL_COMPRESSED_INTENSITY to texture format list
- nouveau: there may not have been a texture if the fbo was incomplete
- nvc0/ir: move sample id to second source arg to fix sampler2DMS
- nouveau: fix firmware check on nvd7/nvd9
Johannes Nixdorf (1):
- configure.ac: fix the detection of expat with pkg-config
Jonathan Gray (7):
- gallium: add endian detection for OpenBSD
- loader: use 0 instead of FALSE which isn't defined
- loader: don't limit the non-udev path to only android
- megadriver_stub.c: don't use \_GNU_SOURCE to gate the compat code
- egl/dri2: don't require libudev to build drm/wayland platforms
- egl/dri2: use drm macros to construct device name
- configure: don't require libudev for gbm or egl drm/wayland
José Fonseca (4):
- c11/threads: Fix nano to milisecond conversion.
- mapi/u_thread: Use GetCurrentThreadId
- c11/threads: Don't implement thrd_current on Windows.
- draw: Duplicate TGSI tokens in draw_pipe_pstipple module.
Kenneth Graunke (4):
- i965/fs: Fix register comparisons in saturate propagation.
- glsl: Fix lack of i2u in lower_ubo_reference.
- i965: Stop advertising GL_MESA_ycbcr_texture.
- glsl: Try vectorizing when seeing a repeated assignment to a channel.
Marek Olšák (13):
- r600g: fix texelFetchOffset GLSL functions
- r600g: fix blitting the last 2 mipmap levels for Evergreen
- mesa: fix the format of glEdgeFlagPointer
- r600g,radeonsi: fix MAX_TEXTURE_3D_LEVELS and
MAX_TEXTURE_ARRAY_LAYERS limits
- st/mesa: fix per-vertex edge flags and GLSL support (v2)
- mesa: mark GL_RGB9_E5 as not color-renderable
- mesa: fix texture border handling for cube arrays
- mesa: allow generating mipmaps for cube arrays
- mesa: fix software fallback for generating mipmaps for cube arrays
- mesa: fix software fallback for generating mipmaps for 3D textures
- st/mesa: fix generating mipmaps for cube arrays
- st/mesa: drop the lowering of quad strips to triangle strips
- r600g: implement edge flags
Matt Turner (4):
- mesa: Wrap SSE4.1 code in #ifdef \__SSE4_1__.
- i965/fs: Fix off-by-one in saturate propagation.
- i965/fs: Don't propagate saturate modifiers into partial writes.
- i965/fs: Don't propagate saturation modifiers if there are source
modifiers.
Michel Dänzer (1):
- r600g: Don't leak bytecode on shader compile failure
Mike Stroyan (1):
- i965: Avoid dependency hints on math opcodes
Thomas Hellstrom (5):
- winsys/svga: Replace the query mm buffer pool with a slab pool v3
- winsys/svga: Update the vmwgfx_drm.h header to latest version from
kernel
- winsys/svga: Fix prime surface references also for guest-backed
surfaces
- st/xa: Bind destination before setting new state
- st/xa: Make sure unused samplers are set to NULL
Tom Stellard (1):
- configure: Use LLVM shared libraries by default

View File

@ -1,179 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.1.2 Release Notes / (May 5, 2014)</h1>
<p>
Mesa 10.1.2 is a bug fix release which fixes bugs found since the 10.1.1 release.
</p>
<p>
Mesa 10.1.2 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
37d79f94b1f41852a89d1fc3900bea76 MesaLib-10.1.2.tar.gz
28b60d15ac9f364da1e0155911eaf44e MesaLib-10.1.2.tar.bz2
05300039085a65fc53c5472c4bb5747a MesaLib-10.1.2.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=27499">Bug 27499</a> - [855GM i915] GL_LINE_STIPPLE displays incorrect colors</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75723">Bug 75723</a> - (regression since Linux 3.14?) brw_get_graphics_reset_status: Assertion `brw-&gt;hw_ctx != ((void *)0)' failed</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76894">Bug 76894</a> - Piglit/spec/EXT_framebuffer_object/fbo-bind-renderbuffer failed</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77702">Bug 77702</a> - [i965 Bisected]Piglit spec/NV_conditional_render_blitframebuffer fails</li>
</ul>
<h2>Changes</h2>
<p>Ander Conselvan de Oliveira (2):</p>
<ul>
<li>gbm/dri: Fix out-of-memory error path in dri_device_create()</li>
<li>egl: Protect use of gbm_dri with ifdef HAVE_DRM_PLATFORM</li>
</ul>
<p>Anuj Phogat (27):</p>
<ul>
<li>mesa: Fix glGetVertexAttribi(GL_VERTEX_ATTRIB_ARRAY_SIZE)</li>
<li>swrast: Add glBlitFramebuffer to commands affected by conditional rendering</li>
<li>mesa: Fix error condition for multisample proxy texture targets</li>
<li>i965: Put an assertion to check valid varying_to_slot[varying]</li>
<li>i965: Fix component mask and varying_to_slot mapping for gl_Layer</li>
<li>i965: Fix component mask and varying_to_slot mapping for gl_ViewportIndex</li>
<li>mesa: Add helper function _mesa_is_format_integer()</li>
<li>mesa: Add error condition for integer formats in glGetTexImage()</li>
<li>mesa: Add an error condition in glGetFramebufferAttachmentParameteriv()</li>
<li>mesa: Fix error code generation in glReadPixels()</li>
<li>glsl: Allow overlapping locations for vertex input attributes</li>
<li>mesa: Fix querying location of nth element of an array variable</li>
<li>mesa: Use location VERT_ATTRIB_GENERIC0 for vertex attribute 0</li>
<li>glsl: Compile error if fs defines conflicting qualifiers for gl_FragCoord</li>
<li>glsl: Compile error if fs uses gl_FragCoord before first redeclaration</li>
<li>mesa: Add entry for extension ARB_texture_stencil8</li>
<li>mesa: Add error condition for format=STENCIL_INDEX in glGetTexImage()</li>
<li>i965: Fix crash in do_blit_readpixels()</li>
<li>mesa: Add missing types in _mesa_texstore_xx_xx() functions</li>
<li>mesa: Allow srcFormat=GL_DEPTH_STENCIL in _mesa_texstore_xx_xx() functions</li>
<li>mesa: Add new helper function _mesa_unpack_depth_stencil_row()</li>
<li>mesa: Add support to unpack depth-stencil texture in to FLOAT_32_UNSIGNED_INT_24_8_REV</li>
<li>mesa: Allow FLOAT_32_UNSIGNED_INT_24_8_REV in get_tex_depth_stencil()</li>
<li>i965: Add glBlitFramebuffer to commands affected by conditional rendering</li>
<li>glsl: Use switch to allow adding more shader types</li>
<li>glsl: Link error if fs defines conflicting qualifiers for gl_FragCoord</li>
<li>glsl: Apply the link error conditions to GL_ARB_fragment_coord_conventions</li>
</ul>
<p>Benjamin Bellec (1):</p>
<ul>
<li>mesa: fix GetStringi error message with correct function name</li>
</ul>
<p>Brian Paul (1):</p>
<ul>
<li>swrast: allocate swrast_texture_image::ImageSlices array if needed</li>
</ul>
<p>Carl Worth (4):</p>
<ul>
<li>docs: Add the MD5 sums for the 10.1.1 release tar files.</li>
<li>cherry-ignore: Ignore a patch causing a regression</li>
<li>cherry-ignore: Drop an ignored patch now that piglit has been updated.</li>
<li>Update VERSION to 10.1.2</li>
</ul>
<p>Chris Forbes (1):</p>
<ul>
<li>glsl: Only allow `invariant` on shader in/out between stages.</li>
</ul>
<p>Eric Anholt (1):</p>
<ul>
<li>i965: Fix render-to-texture in non-FinishRenderTexture cases.</li>
</ul>
<p>Ian Romanick (1):</p>
<ul>
<li>dri3: Enable GLX_MESA_query_renderer on DRI3 too</li>
</ul>
<p>Kenneth Graunke (2):</p>
<ul>
<li>i965: Don't enable reset notification support on Gen4-5.</li>
<li>i965: Actually emit PIPELINE_SELECT and 3DSTATE_VF_STATISTICS.</li>
</ul>
<p>Marek Olšák (10):</p>
<ul>
<li>r300g: don't crash when getting NULL colorbuffers</li>
<li>st/mesa: remove trailing NULL colorbuffers</li>
<li>r600g: fix edge flags and layered rendering on R600-R700</li>
<li>r600g: disable async DMA on R700</li>
<li>r600g: fix MSAA resolve on R6xx when the destination is 1D-tiled</li>
<li>r600g: fix flushing on RV670, RS780, RS880 again</li>
<li>r600g: fix buffer copying on R600-R700</li>
<li>r600g: fix for broken CULL_FRONT behavior on R6xx</li>
<li>r600g: fix for an MSAA hang on RV770</li>
<li>r600g: fix hang on RV740 by using DX_RASTERIZATION_KILL instead of SX_MISC</li>
</ul>
<p>Michel Dänzer (2):</p>
<ul>
<li>r600g: Disable LLVM by default at runtime for graphics</li>
<li>st/mesa: Fix NULL pointer dereference for incomplete framebuffers</li>
</ul>
<p>Neil Roberts (1):</p>
<ul>
<li>wayland: Fix the logic in disabling the prime capability</li>
</ul>
<p>Samuel Iglesias Gonsalvez (1):</p>
<ul>
<li>mesa: fix check for dummy renderbuffer in _mesa_FramebufferRenderbufferEXT()</li>
</ul>
<p>Thomas Hellstrom (1):</p>
<ul>
<li>st/xa: Cache render target surface</li>
</ul>
<p>nick (1):</p>
<ul>
<li>swrast: Fix vertex color in _swsetup_Translate()</li>
</ul>
</div>
</body>
</html>

159
docs/relnotes/10.1.2.rst Normal file
View File

@ -0,0 +1,159 @@
Mesa 10.1.2 Release Notes / (May 5, 2014)
=========================================
Mesa 10.1.2 is a bug fix release which fixes bugs found since the 10.1.1
release.
Mesa 10.1.2 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
MD5 checksums
-------------
::
37d79f94b1f41852a89d1fc3900bea76 MesaLib-10.1.2.tar.gz
28b60d15ac9f364da1e0155911eaf44e MesaLib-10.1.2.tar.bz2
05300039085a65fc53c5472c4bb5747a MesaLib-10.1.2.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 27499 <https://bugs.freedesktop.org/show_bug.cgi?id=27499>`__ -
[855GM i915] GL_LINE_STIPPLE displays incorrect colors
- `Bug 75723 <https://bugs.freedesktop.org/show_bug.cgi?id=75723>`__ -
(regression since Linux 3.14?) brw_get_graphics_reset_status:
Assertion \`brw->hw_ctx != ((void \*)0)' failed
- `Bug 76894 <https://bugs.freedesktop.org/show_bug.cgi?id=76894>`__ -
Piglit/spec/EXT_framebuffer_object/fbo-bind-renderbuffer failed
- `Bug 77702 <https://bugs.freedesktop.org/show_bug.cgi?id=77702>`__ -
[i965 Bisected]Piglit spec/NV_conditional_render_blitframebuffer
fails
Changes
-------
Ander Conselvan de Oliveira (2):
- gbm/dri: Fix out-of-memory error path in dri_device_create()
- egl: Protect use of gbm_dri with ifdef HAVE_DRM_PLATFORM
Anuj Phogat (27):
- mesa: Fix glGetVertexAttribi(GL_VERTEX_ATTRIB_ARRAY_SIZE)
- swrast: Add glBlitFramebuffer to commands affected by conditional
rendering
- mesa: Fix error condition for multisample proxy texture targets
- i965: Put an assertion to check valid varying_to_slot[varying]
- i965: Fix component mask and varying_to_slot mapping for gl_Layer
- i965: Fix component mask and varying_to_slot mapping for
gl_ViewportIndex
- mesa: Add helper function \_mesa_is_format_integer()
- mesa: Add error condition for integer formats in glGetTexImage()
- mesa: Add an error condition in
glGetFramebufferAttachmentParameteriv()
- mesa: Fix error code generation in glReadPixels()
- glsl: Allow overlapping locations for vertex input attributes
- mesa: Fix querying location of nth element of an array variable
- mesa: Use location VERT_ATTRIB_GENERIC0 for vertex attribute 0
- glsl: Compile error if fs defines conflicting qualifiers for
gl_FragCoord
- glsl: Compile error if fs uses gl_FragCoord before first
redeclaration
- mesa: Add entry for extension ARB_texture_stencil8
- mesa: Add error condition for format=STENCIL_INDEX in glGetTexImage()
- i965: Fix crash in do_blit_readpixels()
- mesa: Add missing types in \_mesa_texstore_xx_xx() functions
- mesa: Allow srcFormat=GL_DEPTH_STENCIL in \_mesa_texstore_xx_xx()
functions
- mesa: Add new helper function \_mesa_unpack_depth_stencil_row()
- mesa: Add support to unpack depth-stencil texture in to
FLOAT_32_UNSIGNED_INT_24_8_REV
- mesa: Allow FLOAT_32_UNSIGNED_INT_24_8_REV in get_tex_depth_stencil()
- i965: Add glBlitFramebuffer to commands affected by conditional
rendering
- glsl: Use switch to allow adding more shader types
- glsl: Link error if fs defines conflicting qualifiers for
gl_FragCoord
- glsl: Apply the link error conditions to
GL_ARB_fragment_coord_conventions
Benjamin Bellec (1):
- mesa: fix GetStringi error message with correct function name
Brian Paul (1):
- swrast: allocate swrast_texture_image::ImageSlices array if needed
Carl Worth (4):
- docs: Add the MD5 sums for the 10.1.1 release tar files.
- cherry-ignore: Ignore a patch causing a regression
- cherry-ignore: Drop an ignored patch now that piglit has been
updated.
- Update VERSION to 10.1.2
Chris Forbes (1):
- glsl: Only allow \`invariant\` on shader in/out between stages.
Eric Anholt (1):
- i965: Fix render-to-texture in non-FinishRenderTexture cases.
Ian Romanick (1):
- dri3: Enable GLX_MESA_query_renderer on DRI3 too
Kenneth Graunke (2):
- i965: Don't enable reset notification support on Gen4-5.
- i965: Actually emit PIPELINE_SELECT and 3DSTATE_VF_STATISTICS.
Marek Olšák (10):
- r300g: don't crash when getting NULL colorbuffers
- st/mesa: remove trailing NULL colorbuffers
- r600g: fix edge flags and layered rendering on R600-R700
- r600g: disable async DMA on R700
- r600g: fix MSAA resolve on R6xx when the destination is 1D-tiled
- r600g: fix flushing on RV670, RS780, RS880 again
- r600g: fix buffer copying on R600-R700
- r600g: fix for broken CULL_FRONT behavior on R6xx
- r600g: fix for an MSAA hang on RV770
- r600g: fix hang on RV740 by using DX_RASTERIZATION_KILL instead of
SX_MISC
Michel Dänzer (2):
- r600g: Disable LLVM by default at runtime for graphics
- st/mesa: Fix NULL pointer dereference for incomplete framebuffers
Neil Roberts (1):
- wayland: Fix the logic in disabling the prime capability
Samuel Iglesias Gonsalvez (1):
- mesa: fix check for dummy renderbuffer in
\_mesa_FramebufferRenderbufferEXT()
Thomas Hellstrom (1):
- st/xa: Cache render target surface
nick (1):
- swrast: Fix vertex color in \_swsetup_Translate()

View File

@ -1,90 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.1.3 Release Notes / (May 9, 2014)</h1>
<p>
Mesa 10.1.3 is a bug fix release which fixes bugs found since the 10.1.2 release.
</p>
<p>
Note: Mesa 10.1.3 is being released sooner than originally scheduled to make
available a fix for a performance rgression that was inadvertently introduced
to Mesa 10.1.2. The performance regression is reported to make vmware
swapbuffers fall back to software.
</p>
<p>
Mesa 10.1.3 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
665fe1656aaa2c37b32042068aff92cb MesaLib-10.1.3.tar.gz
ba6dbe2b9cab0b4de840c996b9b6a3ad MesaLib-10.1.3.tar.bz2
4e6f26330a63d3c47e62ac4bdead39e8 MesaLib-10.1.3.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77245">Bug 77245</a> - Bogus GL_ARB_explicit_attrib_location layout identifier warnings</li>
</ul>
<h2>Changes</h2>
<p>Carl Worth (3):</p>
<ul>
<li>docs: Add MD5 sums for Mesa 10.1.2</li>
<li>get-pick-list.sh: Require explicit "10.1" for nominating stable patches</li>
<li>VERSION: Update to 10.1.3</li>
</ul>
<p>Kenneth Graunke (2):</p>
<ul>
<li>mesa: Fix MaxNumLayers for 1D array textures.</li>
<li>i965: Fix depth (array slices) computation for 1D_ARRAY render targets.</li>
</ul>
<p>Tapani Pälli (1):</p>
<ul>
<li>glsl: fix bogus layout qualifier warnings</li>
</ul>
<p>Thomas Hellstrom (1):</p>
<ul>
<li>st/xa: Fix performance regression introduced by commit "Cache render target surface"</li>
</ul>
</div>
</body>
</html>

64
docs/relnotes/10.1.3.rst Normal file
View File

@ -0,0 +1,64 @@
Mesa 10.1.3 Release Notes / (May 9, 2014)
=========================================
Mesa 10.1.3 is a bug fix release which fixes bugs found since the 10.1.2
release.
Note: Mesa 10.1.3 is being released sooner than originally scheduled to
make available a fix for a performance rgression that was inadvertently
introduced to Mesa 10.1.2. The performance regression is reported to
make vmware swapbuffers fall back to software.
Mesa 10.1.3 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
MD5 checksums
-------------
::
665fe1656aaa2c37b32042068aff92cb MesaLib-10.1.3.tar.gz
ba6dbe2b9cab0b4de840c996b9b6a3ad MesaLib-10.1.3.tar.bz2
4e6f26330a63d3c47e62ac4bdead39e8 MesaLib-10.1.3.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 77245 <https://bugs.freedesktop.org/show_bug.cgi?id=77245>`__ -
Bogus GL_ARB_explicit_attrib_location layout identifier warnings
Changes
-------
Carl Worth (3):
- docs: Add MD5 sums for Mesa 10.1.2
- get-pick-list.sh: Require explicit "10.1" for nominating stable
patches
- VERSION: Update to 10.1.3
Kenneth Graunke (2):
- mesa: Fix MaxNumLayers for 1D array textures.
- i965: Fix depth (array slices) computation for 1D_ARRAY render
targets.
Tapani Pälli (1):
- glsl: fix bogus layout qualifier warnings
Thomas Hellstrom (1):
- st/xa: Fix performance regression introduced by commit "Cache render
target surface"

View File

@ -1,100 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.1.4 Release Notes / (May 20, 2014)</h1>
<p>
Mesa 10.1.4 is a bug fix release which fixes bugs found since the 10.1.3 release.
</p>
<p>
Mesa 10.1.4 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
e934365d77f384bfaec844999440bef8 MesaLib-10.1.4.tar.gz
6fddee101f49b7409cd29994c34ddee7 MesaLib-10.1.4.tar.bz2
ba5f48e7d5e373922c804c2651fec6c1 MesaLib-10.1.4.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78225">Bug 78225</a> - Compile error due to undefined reference to `gbm_dri_backend', fix attached</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78537">Bug 78537</a> - no anisotropic filtering in a native Half-Life 2</li>
</ul>
<h2>Changes</h2>
<p>Brian Paul (1):</p>
<ul>
<li>mesa: fix double-freeing of dispatch tables inside glBegin/End.</li>
</ul>
<p>Carl Worth (3):</p>
<ul>
<li>docs: Add MD5 sums for 10.1.3</li>
<li>cherry-ignore: Roland and Michel agreed to drop these patches.</li>
<li>VERSION: Update to 10.1.4</li>
</ul>
<p>Emil Velikov (1):</p>
<ul>
<li>configure: error out if building GBM without dri</li>
</ul>
<p>Eric Anholt (1):</p>
<ul>
<li>i965/vs: Use samplers for UBOs in the VS like we do for non-UBO pulls.</li>
</ul>
<p>Ilia Mirkin (3):</p>
<ul>
<li>nv50/ir: make sure to reverse cond codes on all the OP_SET variants</li>
<li>nv50: fix setting of texture ms info to be per-stage</li>
<li>nv50/ir: fix integer mul lowering for u32 x u32 -&gt; high u32</li>
</ul>
<p>Michel Dänzer (1):</p>
<ul>
<li>radeonsi: Fix anisotropic filtering state setup</li>
</ul>
<p>Tom Stellard (2):</p>
<ul>
<li>configure.ac: Add LLVM_VERSION_PATCH to DEFINES</li>
<li>radeonsi: Enable geometry shaders with LLVM 3.4.1</li>
</ul>
</div>
</body>
</html>

74
docs/relnotes/10.1.4.rst Normal file
View File

@ -0,0 +1,74 @@
Mesa 10.1.4 Release Notes / (May 20, 2014)
==========================================
Mesa 10.1.4 is a bug fix release which fixes bugs found since the 10.1.3
release.
Mesa 10.1.4 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
MD5 checksums
-------------
::
e934365d77f384bfaec844999440bef8 MesaLib-10.1.4.tar.gz
6fddee101f49b7409cd29994c34ddee7 MesaLib-10.1.4.tar.bz2
ba5f48e7d5e373922c804c2651fec6c1 MesaLib-10.1.4.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 78225 <https://bugs.freedesktop.org/show_bug.cgi?id=78225>`__ -
Compile error due to undefined reference to \`gbm_dri_backend', fix
attached
- `Bug 78537 <https://bugs.freedesktop.org/show_bug.cgi?id=78537>`__ -
no anisotropic filtering in a native Half-Life 2
Changes
-------
Brian Paul (1):
- mesa: fix double-freeing of dispatch tables inside glBegin/End.
Carl Worth (3):
- docs: Add MD5 sums for 10.1.3
- cherry-ignore: Roland and Michel agreed to drop these patches.
- VERSION: Update to 10.1.4
Emil Velikov (1):
- configure: error out if building GBM without dri
Eric Anholt (1):
- i965/vs: Use samplers for UBOs in the VS like we do for non-UBO
pulls.
Ilia Mirkin (3):
- nv50/ir: make sure to reverse cond codes on all the OP_SET variants
- nv50: fix setting of texture ms info to be per-stage
- nv50/ir: fix integer mul lowering for u32 x u32 -> high u32
Michel Dänzer (1):
- radeonsi: Fix anisotropic filtering state setup
Tom Stellard (2):
- configure.ac: Add LLVM_VERSION_PATCH to DEFINES
- radeonsi: Enable geometry shaders with LLVM 3.4.1

View File

@ -1,105 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.1.5 Release Notes / (June 6, 2014)</h1>
<p>
Mesa 10.1.5 is a bug fix release which fixes bugs found since the 10.1.4 release.
</p>
<p>
Mesa 10.1.5 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
b0aceaa75bc9a9b2d9215a113e2ad488b5cf85c99005a7624f8cf7c37c5d0eaa MesaLib-10.1.5.tar.gz
bc6c5ec7836f254a49d055a29d9aa34c97c54c038f47ad3a00fa57a5fef15bbc MesaLib-10.1.5.tar.bz2
78b7255cab0af7918945452a84de7989096ebcdd27e99b31c56c0589274cbc77 MesaLib-10.1.5.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79115">Bug 79115</a> - </li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79421">Bug 79421</a> - </li>
</ul>
<h2>Changes</h2>
<p>Brian Paul (1):</p>
<ul>
<li>glsl: fix use-after free bug/crash in ast_declarator_list::hir()</li>
</ul>
<p>Carl Worth (5):</p>
<ul>
<li>docs: Add md5sums for 10.1.4 release</li>
<li>Merge remote-tracking branch 'origin/10.1' into 10.1</li>
<li>cherry-ignore: Ignore two commits.</li>
<li>Ignore a patch that is not needed for the 10.1 branch.</li>
<li>Update version to 10.1.5</li>
</ul>
<p>Emil Velikov (1):</p>
<ul>
<li>glx: do not leak dri3Display</li>
</ul>
<p>Ilia Mirkin (2):</p>
<ul>
<li>nv50/ir: fix s32 x s32 -&gt; high s32 multiply logic</li>
<li>nv50/ir: fix constant folding for OP_MUL subop HIGH</li>
</ul>
<p>James Legg (1):</p>
<ul>
<li>mesa: Fix unbinding GL_DEPTH_STENCIL_ATTACHMENT</li>
</ul>
<p>Jeremy Huddleston Sequoia (2):</p>
<ul>
<li>glapi: Avoid heap corruption in _glapi_table</li>
<li>darwin: Fix test for kCGLPFAOpenGLProfile support at runtime</li>
</ul>
<p>Pavel Popov (2):</p>
<ul>
<li>i965: Properly return *RESET* status in glGetGraphicsResetStatusARB</li>
<li>i965: Fix Line Stipple enable bit in 3DSTATE_SF for Haswell.</li>
</ul>
<p>Roland Scheidegger (1):</p>
<ul>
<li>llvmpipe: fix crash when not all attachments are populated in a fb</li>
</ul>
</div>
</body>
</html>

76
docs/relnotes/10.1.5.rst Normal file
View File

@ -0,0 +1,76 @@
Mesa 10.1.5 Release Notes / (June 6, 2014)
==========================================
Mesa 10.1.5 is a bug fix release which fixes bugs found since the 10.1.4
release.
Mesa 10.1.5 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
b0aceaa75bc9a9b2d9215a113e2ad488b5cf85c99005a7624f8cf7c37c5d0eaa MesaLib-10.1.5.tar.gz
bc6c5ec7836f254a49d055a29d9aa34c97c54c038f47ad3a00fa57a5fef15bbc MesaLib-10.1.5.tar.bz2
78b7255cab0af7918945452a84de7989096ebcdd27e99b31c56c0589274cbc77 MesaLib-10.1.5.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 79115 <https://bugs.freedesktop.org/show_bug.cgi?id=79115>`__ -
- `Bug 79421 <https://bugs.freedesktop.org/show_bug.cgi?id=79421>`__ -
Changes
-------
Brian Paul (1):
- glsl: fix use-after free bug/crash in ast_declarator_list::hir()
Carl Worth (5):
- docs: Add md5sums for 10.1.4 release
- Merge remote-tracking branch 'origin/10.1' into 10.1
- cherry-ignore: Ignore two commits.
- Ignore a patch that is not needed for the 10.1 branch.
- Update version to 10.1.5
Emil Velikov (1):
- glx: do not leak dri3Display
Ilia Mirkin (2):
- nv50/ir: fix s32 x s32 -> high s32 multiply logic
- nv50/ir: fix constant folding for OP_MUL subop HIGH
James Legg (1):
- mesa: Fix unbinding GL_DEPTH_STENCIL_ATTACHMENT
Jeremy Huddleston Sequoia (2):
- glapi: Avoid heap corruption in \_glapi_table
- darwin: Fix test for kCGLPFAOpenGLProfile support at runtime
Pavel Popov (2):
- i965: Properly return \*RESET\* status in glGetGraphicsResetStatusARB
- i965: Fix Line Stipple enable bit in 3DSTATE_SF for Haswell.
Roland Scheidegger (1):
- llvmpipe: fix crash when not all attachments are populated in a fb

View File

@ -1,138 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.1.6 Release Notes / (June 24, 2014)</h1>
<p>
Mesa 10.1.6 is a bug fix release which fixes bugs found since the 10.1.5 release.
</p>
<p>
Mesa 10.1.6 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
cde60e06b340d7598802fe4a4484b3fb8befd714f9ab9caabe1f27d3149e8815 MesaLib-10.1.6.tar.bz2
e4e726d7805a442f7ed07d12f71335e6126796ec85328a5989eb5348a8042d00 MesaLib-10.1.6.tar.gz
bf7e3f721a7ad0c2057a034834b6fea688e64f26a66cf8d1caa2827e405e72dd MesaLib-10.1.6.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - </li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
</ul>
<h2>Changes</h2>
<p>Adrian Negreanu (7):</p>
<ul>
<li>add megadriver_stub_FILES</li>
<li>android: adapt to the megadriver mechanism</li>
<li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
<li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
<li>android, egl: add correct drm include for libmesa_egl_dri2</li>
<li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
<li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
</ul>
<p>Beren Minor (1):</p>
<ul>
<li>egl/main: Fix eglMakeCurrent when releasing context from current thread.</li>
</ul>
<p>Carl Worth (3):</p>
<ul>
<li>docs: Add SHA256 checksums for the 10.1.5 release</li>
<li>cherry-ignore: Add a patch to ignore</li>
<li>Update VERSION to 10.1.6</li>
</ul>
<p>Daniel Manjarres (1):</p>
<ul>
<li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
</ul>
<p>Emil Velikov (1):</p>
<ul>
<li>configure: error out when building opencl without LLVM</li>
</ul>
<p>Iago Toral Quiroga (1):</p>
<ul>
<li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
</ul>
<p>José Fonseca (3):</p>
<ul>
<li>mesa/main: Make get_hash.c values constant.</li>
<li>mesa: Make glGetIntegerv(GL_*_ARRAY_SIZE) return GL_BGRA.</li>
<li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
</ul>
<p>Kristian Høgsberg (1):</p>
<ul>
<li>mesa: Remove glClear optimization based on drawable size</li>
</ul>
<p>Michel Dänzer (1):</p>
<ul>
<li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
</ul>
<p>Neil Roberts (1):</p>
<ul>
<li>i965: Set the fast clear color value for texture surfaces</li>
</ul>
<p>Roland Scheidegger (1):</p>
<ul>
<li>draw: (trivial) fix clamping of viewport index</li>
</ul>
<p>Tobias Klausmann (1):</p>
<ul>
<li>nv50/ir: clear subop when folding constant expressions</li>
</ul>
<p>Tom Stellard (2):</p>
<ul>
<li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
<li>clover: Don't use llvm's global context</li>
</ul>
</div>
</body>
</html>

110
docs/relnotes/10.1.6.rst Normal file
View File

@ -0,0 +1,110 @@
Mesa 10.1.6 Release Notes / (June 24, 2014)
===========================================
Mesa 10.1.6 is a bug fix release which fixes bugs found since the 10.1.5
release.
Mesa 10.1.6 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
cde60e06b340d7598802fe4a4484b3fb8befd714f9ab9caabe1f27d3149e8815 MesaLib-10.1.6.tar.bz2
e4e726d7805a442f7ed07d12f71335e6126796ec85328a5989eb5348a8042d00 MesaLib-10.1.6.tar.gz
bf7e3f721a7ad0c2057a034834b6fea688e64f26a66cf8d1caa2827e405e72dd MesaLib-10.1.6.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 54372 <https://bugs.freedesktop.org/show_bug.cgi?id=54372>`__ -
GLX_INTEL_swap_event crashes driver when swapping window buffers
- `Bug 74005 <https://bugs.freedesktop.org/show_bug.cgi?id=74005>`__ -
[i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails
- `Bug 78581 <https://bugs.freedesktop.org/show_bug.cgi?id=78581>`__ -
- `Bug 79729 <https://bugs.freedesktop.org/show_bug.cgi?id=79729>`__ -
[i965] glClear on a multisample texture doesn't work
Changes
-------
Adrian Negreanu (7):
- add megadriver_stub_FILES
- android: adapt to the megadriver mechanism
- android: add libloader to libGLES_mesa and libmesa_egl_dri2
- android: add src/gallium/auxiliary as include path for
libmesa_dricore
- android, egl: add correct drm include for libmesa_egl_dri2
- android, mesa_gen_matypes: pull in timespec POSIX definition
- android, dricore: undefined reference to \_mesa_streaming_load_memcpy
Beren Minor (1):
- egl/main: Fix eglMakeCurrent when releasing context from current
thread.
Carl Worth (3):
- docs: Add SHA256 checksums for the 10.1.5 release
- cherry-ignore: Add a patch to ignore
- Update VERSION to 10.1.6
Daniel Manjarres (1):
- glx: Don't crash on swap event for a Window (non-GLXWindow)
Emil Velikov (1):
- configure: error out when building opencl without LLVM
Iago Toral Quiroga (1):
- mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.
José Fonseca (3):
- mesa/main: Make get_hash.c values constant.
- mesa: Make glGetIntegerv(GL_*_ARRAY_SIZE) return GL_BGRA.
- mesa/main: Prevent sefgault on
glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).
Kristian Høgsberg (1):
- mesa: Remove glClear optimization based on drawable size
Michel Dänzer (1):
- configure: Only check for OpenCL without LLVM when the latter is
certain
Neil Roberts (1):
- i965: Set the fast clear color value for texture surfaces
Roland Scheidegger (1):
- draw: (trivial) fix clamping of viewport index
Tobias Klausmann (1):
- nv50/ir: clear subop when folding constant expressions
Tom Stellard (2):
- clover: Prevent Clang from printing number of errors and warnings to
stderr.
- clover: Don't use llvm's global context

View File

@ -1,75 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.1 Release Notes / March 4, 2014</h1>
<p>
Mesa 10.1 is a new development release.
People who are concerned with stability and reliability should stick
with a previous release or wait for Mesa 10.1.1.
</p>
<p>
Mesa 10.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
3ec43f79dbcd9aa2a4a27bf1f51655b6 MesaLib-10.1.0.tar.bz2
08e796ec7122aa299d32d4f67a254315 MesaLib-10.1.0.tar.gz
bd365356543f4b38e57c1ddf7a317c40 MesaLib-10.1.0.zip
</pre>
<h2>New features</h2>
<p>
Note: some of the new features are only available with certain drivers.
</p>
<ul>
<li>GL_ARB_draw_indirect on i965.</li>
<li>GL_ARB_clear_buffer_object</li>
<li>GL_ARB_viewport_array on i965.</li>
<li>GL_ARB_map_buffer_alignment on all drivers that did not previously support
it.</li>
<li>GL_AMD_shader_trinary_minmax.</li>
<li>GL_EXT_framebuffer_blit on r200 and radeon.</li>
<li>Reduced memory usage for display lists.</li>
<li>OpenGL 3.3 support on nv50, nvc0, r600 and radeonsi</li>
</ul>
<h2>Bug fixes</h2>
TBD.
<h2>Changes</h2>
<ul>
<li>Removed support for the GL_MESA_texture_array extension. This extension
enabled the use of texture array with fixed-function and assembly fragment
shaders. No applications are known to use this extension.</li>
</ul>
</div>
</body>
</html>

50
docs/relnotes/10.1.rst Normal file
View File

@ -0,0 +1,50 @@
Mesa 10.1 Release Notes / March 4, 2014
=======================================
Mesa 10.1 is a new development release. People who are concerned with
stability and reliability should stick with a previous release or wait
for Mesa 10.1.1.
Mesa 10.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
MD5 checksums
-------------
::
3ec43f79dbcd9aa2a4a27bf1f51655b6 MesaLib-10.1.0.tar.bz2
08e796ec7122aa299d32d4f67a254315 MesaLib-10.1.0.tar.gz
bd365356543f4b38e57c1ddf7a317c40 MesaLib-10.1.0.zip
New features
------------
Note: some of the new features are only available with certain drivers.
- GL_ARB_draw_indirect on i965.
- GL_ARB_clear_buffer_object
- GL_ARB_viewport_array on i965.
- GL_ARB_map_buffer_alignment on all drivers that did not previously
support it.
- GL_AMD_shader_trinary_minmax.
- GL_EXT_framebuffer_blit on r200 and radeon.
- Reduced memory usage for display lists.
- OpenGL 3.3 support on nv50, nvc0, r600 and radeonsi
Bug fixes
---------
TBD.
Changes
-------
- Removed support for the GL_MESA_texture_array extension. This
extension enabled the use of texture array with fixed-function and
assembly fragment shaders. No applications are known to use this
extension.

View File

@ -1,61 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.2.1 Release Notes / June 6, 2014</h1>
<p>
Mesa 10.2.1 is a bug fix release which fixes bugs found since the 10.2 release.
</p>
<p>
Mesa 10.2.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>MD5 checksums</h2>
<pre>
96f892dae2d0bb14ac9c2113f586c909 MesaLib-10.2.1.tar.gz
093f9b5d077e5f6061dcd7b01b7aa51a MesaLib-10.2.1.tar.bz2
6ab76c1608e5deed1eb8b54c62d7a48a MesaLib-10.2.1.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>
Mesa 10.2 had a build problem in the radeonsi driver due to an error resolving
conflicts in a patch cherry-pick from master. The build error is fixed.
</p>
<h2>Changes</h2>
<p>Ian Romanick (3):</p>
<ul>
<li>docs: Add MD5 checksum, etc. for 10.1 release</li>
<li>radeonsi: Fix build error introduced in 5ab9a9c</li>
<li>Bump version to 10.2.1</li>
</ul>
</div>
</body>
</html>

42
docs/relnotes/10.2.1.rst Normal file
View File

@ -0,0 +1,42 @@
Mesa 10.2.1 Release Notes / June 6, 2014
========================================
Mesa 10.2.1 is a bug fix release which fixes bugs found since the 10.2
release.
Mesa 10.2.1 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
MD5 checksums
-------------
::
96f892dae2d0bb14ac9c2113f586c909 MesaLib-10.2.1.tar.gz
093f9b5d077e5f6061dcd7b01b7aa51a MesaLib-10.2.1.tar.bz2
6ab76c1608e5deed1eb8b54c62d7a48a MesaLib-10.2.1.zip
New features
------------
None
Bug fixes
---------
Mesa 10.2 had a build problem in the radeonsi driver due to an error
resolving conflicts in a patch cherry-pick from master. The build error
is fixed.
Changes
-------
Ian Romanick (3):
- docs: Add MD5 checksum, etc. for 10.1 release
- radeonsi: Fix build error introduced in 5ab9a9c
- Bump version to 10.2.1

View File

@ -1,181 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.2.2 Release Notes / June 24, 2014</h1>
<p>
Mesa 10.2.2 is a bug fix release which fixes bugs found since the 10.2.1 release.
</p>
<p>
Mesa 10.2.2 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
38c4a40364000f89cddaa1694f6f3cfb444981d1110238ce603093585477399c MesaLib-10.2.2.tar.bz2
2af2ec8b4db624c352e961eefbcce6c8d1f86d44c5542f6f378c50e1b958d453 MesaLib-10.2.2.tar.gz
d4c0372da59367a344d62ebcdf5cf61039c9cae6925f40f2dab8f8d95cf22da9 MesaLib-10.2.2.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452">Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865">Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029">Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907">Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115">Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
</ul>
<h2>Changes</h2>
<p>Adrian Negreanu (8):</p>
<ul>
<li>add megadriver_stub_FILES</li>
<li>android: adapt to the megadriver mechanism</li>
<li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
<li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
<li>android, egl: add correct drm include for libmesa_egl_dri2</li>
<li>android, egl: typo dri2_fallback_pixmap_surface -&gt; dri2_fallback_create_pixmap_surface</li>
<li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
<li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
</ul>
<p>Carl Worth (1):</p>
<ul>
<li>Update VERSION to 10.2.2</li>
</ul>
<p>Daniel Manjarres (1):</p>
<ul>
<li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
</ul>
<p>Emil Velikov (3):</p>
<ul>
<li>targets/xa: limit the amount of exported symbols</li>
<li>configure: error out when building opencl without LLVM</li>
<li>configure: correctly autodetect xvmc/vdpau/omx</li>
</ul>
<p>Grigori Goronzy (1):</p>
<ul>
<li>radeon/uvd: disable VC-1 simple/main on UVD 2.x</li>
</ul>
<p>Iago Toral Quiroga (1):</p>
<ul>
<li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
</ul>
<p>Ian Romanick (3):</p>
<ul>
<li>docs: Add initial 10.2.1 release notes</li>
<li>docs: Add MD5 checksum, etc. for 10.2.1 release</li>
<li>meta: Respect the driver's maximum number of draw buffers</li>
</ul>
<p>Ilia Mirkin (7):</p>
<ul>
<li>gk110/ir: emit saturate flag on fadd when needed</li>
<li>gk110/ir: fix emitting constbuf file index</li>
<li>gk110/ir: fix bfind emission</li>
<li>nv50: make sure to mark first scissor dirty after blit</li>
<li>nv30: plug some memory leaks on screen destroy and shader compile</li>
<li>nv30: avoid dangling references to deleted contexts</li>
<li>nv30: hack to avoid errors on unexpected color/zeta combinations</li>
</ul>
<p>Jason Ekstrand (1):</p>
<ul>
<li>meta_blit: properly compute texture width for the CopyTexSubImage fallback</li>
</ul>
<p>José Fonseca (1):</p>
<ul>
<li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
</ul>
<p>Kenneth Graunke (9):</p>
<ul>
<li>i965: Don't use the head sentinel as an fs_inst in Gen4 workaround code.</li>
<li>i965: Invalidate live intervals when inserting Gen4 SEND workarounds.</li>
<li>i965/vec4: Fix dead code elimination for VGRFs of size &gt; 1.</li>
<li>i965: Add missing MOCS setup for 3DSTATE_INDEX_BUFFER on Broadwell.</li>
<li>i965: Drop Broadwell perf_debugs about missing MOCS that aren't missing.</li>
<li>i965: Add missing newlines to a few perf_debug messages.</li>
<li>i965/vec4: Use the sampler for pull constant loads on Broadwell.</li>
<li>i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.</li>
<li>i965: Save meta stencil blit programs in the context.</li>
</ul>
<p>Kristian Høgsberg (1):</p>
<ul>
<li>mesa: Remove glClear optimization based on drawable size</li>
</ul>
<p>Michel Dänzer (1):</p>
<ul>
<li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
</ul>
<p>Neil Roberts (1):</p>
<ul>
<li>i965: Set the fast clear color value for texture surfaces</li>
</ul>
<p>Tom Stellard (2):</p>
<ul>
<li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
<li>clover: Don't use llvm's global context</li>
</ul>
<p>Ville Syrjälä (1):</p>
<ul>
<li>i915: Fix gen2 texblend setup</li>
</ul>
</div>
</body>
</html>

152
docs/relnotes/10.2.2.rst Normal file
View File

@ -0,0 +1,152 @@
Mesa 10.2.2 Release Notes / June 24, 2014
=========================================
Mesa 10.2.2 is a bug fix release which fixes bugs found since the 10.2.1
release.
Mesa 10.2.2 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
38c4a40364000f89cddaa1694f6f3cfb444981d1110238ce603093585477399c MesaLib-10.2.2.tar.bz2
2af2ec8b4db624c352e961eefbcce6c8d1f86d44c5542f6f378c50e1b958d453 MesaLib-10.2.2.tar.gz
d4c0372da59367a344d62ebcdf5cf61039c9cae6925f40f2dab8f8d95cf22da9 MesaLib-10.2.2.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 54372 <https://bugs.freedesktop.org/show_bug.cgi?id=54372>`__ -
GLX_INTEL_swap_event crashes driver when swapping window buffers
- `Bug 66452 <https://bugs.freedesktop.org/show_bug.cgi?id=66452>`__ -
JUNIPER UVD accelerated playback of WMV3 streams does not work
- `Bug 74005 <https://bugs.freedesktop.org/show_bug.cgi?id=74005>`__ -
[i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails
- `Bug 77865 <https://bugs.freedesktop.org/show_bug.cgi?id=77865>`__ -
[BDW] Many Ogles3conform framebuffer_blit cases fail
- `Bug 78581 <https://bugs.freedesktop.org/show_bug.cgi?id=78581>`__ -
OpenCL: clBuildProgram prints error messages directly rather than
storing them
- `Bug 79029 <https://bugs.freedesktop.org/show_bug.cgi?id=79029>`__ -
INTEL_DEBUG=shader_time is full of lies
- `Bug 79729 <https://bugs.freedesktop.org/show_bug.cgi?id=79729>`__ -
[i965] glClear on a multisample texture doesn't work
- `Bug 79907 <https://bugs.freedesktop.org/show_bug.cgi?id=79907>`__ -
Mesa 10.2.1 --enable-vdpau default=auto broken
- `Bug 80115 <https://bugs.freedesktop.org/show_bug.cgi?id=80115>`__ -
MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors
Changes
-------
Adrian Negreanu (8):
- add megadriver_stub_FILES
- android: adapt to the megadriver mechanism
- android: add libloader to libGLES_mesa and libmesa_egl_dri2
- android: add src/gallium/auxiliary as include path for
libmesa_dricore
- android, egl: add correct drm include for libmesa_egl_dri2
- android, egl: typo dri2_fallback_pixmap_surface ->
dri2_fallback_create_pixmap_surface
- android, mesa_gen_matypes: pull in timespec POSIX definition
- android, dricore: undefined reference to \_mesa_streaming_load_memcpy
Carl Worth (1):
- Update VERSION to 10.2.2
Daniel Manjarres (1):
- glx: Don't crash on swap event for a Window (non-GLXWindow)
Emil Velikov (3):
- targets/xa: limit the amount of exported symbols
- configure: error out when building opencl without LLVM
- configure: correctly autodetect xvmc/vdpau/omx
Grigori Goronzy (1):
- radeon/uvd: disable VC-1 simple/main on UVD 2.x
Iago Toral Quiroga (1):
- mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.
Ian Romanick (3):
- docs: Add initial 10.2.1 release notes
- docs: Add MD5 checksum, etc. for 10.2.1 release
- meta: Respect the driver's maximum number of draw buffers
Ilia Mirkin (7):
- gk110/ir: emit saturate flag on fadd when needed
- gk110/ir: fix emitting constbuf file index
- gk110/ir: fix bfind emission
- nv50: make sure to mark first scissor dirty after blit
- nv30: plug some memory leaks on screen destroy and shader compile
- nv30: avoid dangling references to deleted contexts
- nv30: hack to avoid errors on unexpected color/zeta combinations
Jason Ekstrand (1):
- meta_blit: properly compute texture width for the CopyTexSubImage
fallback
José Fonseca (1):
- mesa/main: Prevent sefgault on
glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).
Kenneth Graunke (9):
- i965: Don't use the head sentinel as an fs_inst in Gen4 workaround
code.
- i965: Invalidate live intervals when inserting Gen4 SEND workarounds.
- i965/vec4: Fix dead code elimination for VGRFs of size > 1.
- i965: Add missing MOCS setup for 3DSTATE_INDEX_BUFFER on Broadwell.
- i965: Drop Broadwell perf_debugs about missing MOCS that aren't
missing.
- i965: Add missing newlines to a few perf_debug messages.
- i965/vec4: Use the sampler for pull constant loads on Broadwell.
- i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.
- i965: Save meta stencil blit programs in the context.
Kristian Høgsberg (1):
- mesa: Remove glClear optimization based on drawable size
Michel Dänzer (1):
- configure: Only check for OpenCL without LLVM when the latter is
certain
Neil Roberts (1):
- i965: Set the fast clear color value for texture surfaces
Tom Stellard (2):
- clover: Prevent Clang from printing number of errors and warnings to
stderr.
- clover: Don't use llvm's global context
Ville Syrjälä (1):
- i915: Fix gen2 texblend setup

View File

@ -1,130 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.2.3 Release Notes / July 7, 2014</h1>
<p>
Mesa 10.2.3 is a bug fix release which fixes bugs found since the 10.2.2 release.
</p>
<p>
Mesa 10.2.3 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
e482a96170c98b17d6aba0d6e4dda4b9a2e61c39587bb64ac38cadfa4aba4aeb MesaLib-10.2.3.tar.bz2
96cffacaa1c52ae659b3b0f91be2eebf5528b748934256751261fb79ea3d6636 MesaLib-10.2.3.tar.gz
82cab6ff14c8038ee39842dbdea0d447a78d119efd8d702d1497bc7c246434e9 MesaLib-10.2.3.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76223">Bug 76223</a> - </li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79823">Bug 79823</a> - </li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80015">Bug 80015</a> - </li>
</ul>
<h2>Changes</h2>
<p>Aaron Watry (1):</p>
<ul>
<li>radeon/llvm: Allocate space for kernel metadata operands</li>
</ul>
<p>Carl Worth (2):</p>
<ul>
<li>docs: Add sha256 sums for the 10.2.2 release</li>
<li>cherry-ignore: Add a patch that's been rejected</li>
</ul>
<p>Ilia Mirkin (4):</p>
<ul>
<li>nouveau: dup fd before passing it to device</li>
<li>nv50: disable dedicated ubo upload method</li>
<li>nv50: do an explicit flush on draw when there are persistent buffers</li>
<li>nvc0: add a memory barrier when there are persistent UBOs</li>
</ul>
<p>Jasper St. Pierre (1):</p>
<ul>
<li>glxext: Send the Drawable's ID in the GLX_BufferSwapComplete event</li>
</ul>
<p>Kenneth Graunke (3):</p>
<ul>
<li>i965: Don't emit SURFACE_STATEs for gather workarounds on Broadwell.</li>
<li>i965: Include marketing names for Broadwell GPUs.</li>
<li>i965/disasm: Fix INTEL_DEBUG=fs on Broadwell for ARB_fp applications.</li>
</ul>
<p>Michel Dänzer (1):</p>
<ul>
<li>radeon/llvm: Use the llvm.rsq.clamped intrinsic for RSQ</li>
</ul>
<p>Rob Clark (9):</p>
<ul>
<li>xa: fix segfault</li>
<li>freedreno: use OUT_RELOCW when buffer is written</li>
<li>freedreno/a3xx: fix depth/stencil GMEM positioning</li>
<li>freedreno/a3xx: fix depth/stencil gmem restore</li>
<li>freedreno/a3xx: fix blend opcode</li>
<li>freedreno: few caps fixes</li>
<li>freedreno/a3xx: texture fixes</li>
<li>freedreno: fix for null textures</li>
<li>freedreno/a3xx: vtx formats</li>
</ul>
<p>Roland Scheidegger (1):</p>
<ul>
<li>draw: (trivial) fix clamping of viewport index</li>
</ul>
<p>Takashi Iwai (1):</p>
<ul>
<li>llvmpipe: Fix zero-division in llvmpipe_texture_layout()</li>
</ul>
<p>Thomas Hellstrom (1):</p>
<ul>
<li>st/xa: Don't close the drm fd on failure v2</li>
</ul>
<p>Tobias Klausmann (1):</p>
<ul>
<li>nv50/ir: allow gl_ViewportIndex to work on non-provoking vertices</li>
</ul>
</div>
</body>
</html>

96
docs/relnotes/10.2.3.rst Normal file
View File

@ -0,0 +1,96 @@
Mesa 10.2.3 Release Notes / July 7, 2014
========================================
Mesa 10.2.3 is a bug fix release which fixes bugs found since the 10.2.2
release.
Mesa 10.2.3 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
e482a96170c98b17d6aba0d6e4dda4b9a2e61c39587bb64ac38cadfa4aba4aeb MesaLib-10.2.3.tar.bz2
96cffacaa1c52ae659b3b0f91be2eebf5528b748934256751261fb79ea3d6636 MesaLib-10.2.3.tar.gz
82cab6ff14c8038ee39842dbdea0d447a78d119efd8d702d1497bc7c246434e9 MesaLib-10.2.3.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 76223 <https://bugs.freedesktop.org/show_bug.cgi?id=76223>`__ -
- `Bug 79823 <https://bugs.freedesktop.org/show_bug.cgi?id=79823>`__ -
- `Bug 80015 <https://bugs.freedesktop.org/show_bug.cgi?id=80015>`__ -
Changes
-------
Aaron Watry (1):
- radeon/llvm: Allocate space for kernel metadata operands
Carl Worth (2):
- docs: Add sha256 sums for the 10.2.2 release
- cherry-ignore: Add a patch that's been rejected
Ilia Mirkin (4):
- nouveau: dup fd before passing it to device
- nv50: disable dedicated ubo upload method
- nv50: do an explicit flush on draw when there are persistent buffers
- nvc0: add a memory barrier when there are persistent UBOs
Jasper St. Pierre (1):
- glxext: Send the Drawable's ID in the GLX_BufferSwapComplete event
Kenneth Graunke (3):
- i965: Don't emit SURFACE_STATEs for gather workarounds on Broadwell.
- i965: Include marketing names for Broadwell GPUs.
- i965/disasm: Fix INTEL_DEBUG=fs on Broadwell for ARB_fp applications.
Michel Dänzer (1):
- radeon/llvm: Use the llvm.rsq.clamped intrinsic for RSQ
Rob Clark (9):
- xa: fix segfault
- freedreno: use OUT_RELOCW when buffer is written
- freedreno/a3xx: fix depth/stencil GMEM positioning
- freedreno/a3xx: fix depth/stencil gmem restore
- freedreno/a3xx: fix blend opcode
- freedreno: few caps fixes
- freedreno/a3xx: texture fixes
- freedreno: fix for null textures
- freedreno/a3xx: vtx formats
Roland Scheidegger (1):
- draw: (trivial) fix clamping of viewport index
Takashi Iwai (1):
- llvmpipe: Fix zero-division in llvmpipe_texture_layout()
Thomas Hellstrom (1):
- st/xa: Don't close the drm fd on failure v2
Tobias Klausmann (1):
- nv50/ir: allow gl_ViewportIndex to work on non-provoking vertices

View File

@ -1,127 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.2.4 Release Notes / July 18, 2014</h1>
<p>
Mesa 10.2.4 is a bug fix release which fixes bugs found since the 10.2.3 release.
</p>
<p>
Mesa 10.2.4 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
06a2341244eb85c283f59f70161e06ded106f835ed9b6be1ef0243bd9344811a MesaLib-10.2.4.tar.bz2
33e3c8b4343503e7d7d17416c670438860a2fd99ec93ea3327f73c3abe33b5e4 MesaLib-10.2.4.tar.gz
e26791a4a62a61b82e506e6ba031812d09697d1a831e8239af67e5722a8ee538 MesaLib-10.2.4.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81157">Bug 81157</a> - [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail</li>
</ul>
<h2>Changes</h2>
<p>Abdiel Janulgue (3):</p>
<ul>
<li>i965/fs: Refactor check for potential copy propagated instructions.</li>
<li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
<li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
</ul>
<p>Brian Paul (3):</p>
<ul>
<li>mesa: fix geometry shader memory leaks</li>
<li>st/mesa: fix geometry shader memory leak</li>
<li>gallium/u_blitter: fix some shader memory leaks</li>
</ul>
<p>Carl Worth (2):</p>
<ul>
<li>docs: Add sha256 checksums for the 10.2.3 release</li>
<li>Update VERSION to 10.2.4</li>
</ul>
<p>Eric Anholt (1):</p>
<ul>
<li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
</ul>
<p>Ilia Mirkin (4):</p>
<ul>
<li>nv50/ir: retrieve shadow compare from first arg</li>
<li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
<li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
<li>nvc0/ir: use manual TXD when offsets are involved</li>
</ul>
<p>Jordan Justen (1):</p>
<ul>
<li>i965: Add auxiliary surface field #defines for Broadwell.</li>
</ul>
<p>Kenneth Graunke (9):</p>
<ul>
<li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
<li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
<li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
<li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
<li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
<li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
<li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
<li>i965: Add 2x MSAA support to the MCS allocation function.</li>
<li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
</ul>
<p>Marek Olšák (4):</p>
<ul>
<li>gallium: fix u_default_transfer_inline_write for textures</li>
<li>st/mesa: fix samplerCubeShadow with bias</li>
<li>radeonsi: fix samplerCubeShadow with bias</li>
<li>radeonsi: add support for TXB2</li>
</ul>
<p>Matt Turner (8):</p>
<ul>
<li>i965/vec4: Don't return void from a void function.</li>
<li>i965/vec4: Don't fix_math_operand() on Gen &gt;= 8.</li>
<li>i965/fs: Don't fix_math_operand() on Gen &gt;= 8.</li>
<li>i965/fs: Make try_constant_propagate() static.</li>
<li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
<li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
<li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
<li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
</ul>
</div>
</body>
</html>

103
docs/relnotes/10.2.4.rst Normal file
View File

@ -0,0 +1,103 @@
Mesa 10.2.4 Release Notes / July 18, 2014
=========================================
Mesa 10.2.4 is a bug fix release which fixes bugs found since the 10.2.3
release.
Mesa 10.2.4 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
06a2341244eb85c283f59f70161e06ded106f835ed9b6be1ef0243bd9344811a MesaLib-10.2.4.tar.bz2
33e3c8b4343503e7d7d17416c670438860a2fd99ec93ea3327f73c3abe33b5e4 MesaLib-10.2.4.tar.gz
e26791a4a62a61b82e506e6ba031812d09697d1a831e8239af67e5722a8ee538 MesaLib-10.2.4.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 81157 <https://bugs.freedesktop.org/show_bug.cgi?id=81157>`__ -
[BDW]Piglit some spec_glsl-1.50_execution_built-in-functions\* cases
fail
Changes
-------
Abdiel Janulgue (3):
- i965/fs: Refactor check for potential copy propagated instructions.
- i965/fs: skip copy-propate for logical instructions with negated src
entries
- i965/vec4: skip copy-propate for logical instructions with negated
src entries
Brian Paul (3):
- mesa: fix geometry shader memory leaks
- st/mesa: fix geometry shader memory leak
- gallium/u_blitter: fix some shader memory leaks
Carl Worth (2):
- docs: Add sha256 checksums for the 10.2.3 release
- Update VERSION to 10.2.4
Eric Anholt (1):
- i965: Generalize the pixel_x/y workaround for all UW types.
Ilia Mirkin (4):
- nv50/ir: retrieve shadow compare from first arg
- nv50/ir: ignore bias for samplerCubeShadow on nv50
- nvc0/ir: do quadops on the right texture coordinates for TXD
- nvc0/ir: use manual TXD when offsets are involved
Jordan Justen (1):
- i965: Add auxiliary surface field #defines for Broadwell.
Kenneth Graunke (9):
- i965: Don't copy propagate abs into Broadwell logic instructions.
- i965: Set execution size to 8 for instructions with force_sechalf
set.
- i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.
- i965/fs: Use WE_all for gl_SampleID header register munging.
- i965: Add plumbing for Broadwell's auxiliary surface support.
- i965: Drop SINT workaround for CMS layout on Broadwell.
- i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.
- i965: Add 2x MSAA support to the MCS allocation function.
- i965: Enable compressed multisample support (CMS) on Broadwell.
Marek Olšák (4):
- gallium: fix u_default_transfer_inline_write for textures
- st/mesa: fix samplerCubeShadow with bias
- radeonsi: fix samplerCubeShadow with bias
- radeonsi: add support for TXB2
Matt Turner (8):
- i965/vec4: Don't return void from a void function.
- i965/vec4: Don't fix_math_operand() on Gen >= 8.
- i965/fs: Don't fix_math_operand() on Gen >= 8.
- i965/fs: Make try_constant_propagate() static.
- i965/fs: Constant propagate into 2-src math instructions on Gen8.
- i965/vec4: Constant propagate into 2-src math instructions on Gen8.
- i965/fs: Don't use brw_imm_\* unnecessarily.
- i965/fs: Set correct number of regs_written for MCS fetches.

View File

@ -1,188 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.2.5 Release Notes / August 2, 2014</h1>
<p>
Mesa 10.2.5 is a bug fix release which fixes bugs found since the 10.2.4 release.
</p>
<p>
Mesa 10.2.5 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
b4459f0bf7f4a3c8fb78ece3c9d2eac3d0e5bf38cb470f2a72705e744bd0310d MesaLib-10.2.5.tar.bz2
7b4dd0cb683f8c7dc48a3e7a315742bed58ddcd7b756c462aca4177bd1acdc79 MesaLib-10.2.5.tar.gz
6180565914fb238dd77ccdaff96b6155d9a6e1b3e981ebbf6a6851301b384fed MesaLib-10.2.5.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80991">Bug 80991</a> - [BDW]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 fails</li>
</ul>
<h2>Changes</h2>
<p>Abdiel Janulgue (3):</p>
<ul>
<li>i965/fs: Refactor check for potential copy propagated instructions.</li>
<li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
<li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
</ul>
<p>Adel Gadllah (1):</p>
<ul>
<li>i915: Fix up intelInitScreen2 for DRI3</li>
</ul>
<p>Anuj Phogat (2):</p>
<ul>
<li>i965: Fix z_offset computation in intel_miptree_unmap_depthstencil()</li>
<li>mesa: Don't use memcpy() in _mesa_texstore() for float depth texture data</li>
</ul>
<p>Brian Paul (3):</p>
<ul>
<li>mesa: fix geometry shader memory leaks</li>
<li>st/mesa: fix geometry shader memory leak</li>
<li>gallium/u_blitter: fix some shader memory leaks</li>
</ul>
<p>Carl Worth (6):</p>
<ul>
<li>docs: Add sha256 checksums for the 10.2.3 release</li>
<li>Update VERSION to 10.2.4</li>
<li>Add release notes for 10.2.4</li>
<li>docs: Add SHA256 checksums for the 10.2.4 release</li>
<li>cherry-ignore: Ignore a few patches picked in the previous stable release</li>
<li>Update version to 10.2.5</li>
</ul>
<p>Christian König (1):</p>
<ul>
<li>radeonsi: fix order of r600_need_dma_space and r600_context_bo_reloc</li>
</ul>
<p>Eric Anholt (1):</p>
<ul>
<li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
</ul>
<p>Ian Romanick (2):</p>
<ul>
<li>mesa: Don't allow GL_TEXTURE_BORDER queries outside compat profile</li>
<li>mesa: Don't allow GL_TEXTURE_{LUMINANCE,INTENSITY}_* queries outside compat profile</li>
</ul>
<p>Ilia Mirkin (5):</p>
<ul>
<li>nv50/ir: retrieve shadow compare from first arg</li>
<li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
<li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
<li>nvc0/ir: use manual TXD when offsets are involved</li>
<li>nvc0: make sure that the local memory allocation is aligned to 0x10</li>
</ul>
<p>Jason Ekstrand (2):</p>
<ul>
<li>main/format_pack: Fix a wrong datatype in pack_ubyte_R8G8_UNORM</li>
<li>main/get_hash_params: Add GL_SAMPLE_SHADING_ARB</li>
</ul>
<p>Jordan Justen (1):</p>
<ul>
<li>i965: Add auxiliary surface field #defines for Broadwell.</li>
</ul>
<p>José Fonseca (1):</p>
<ul>
<li>st/wgl: Clamp wglChoosePixelFormatARB's output nNumFormats to nMaxFormats.</li>
</ul>
<p>Kenneth Graunke (13):</p>
<ul>
<li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
<li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
<li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
<li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
<li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
<li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
<li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
<li>i965: Add 2x MSAA support to the MCS allocation function.</li>
<li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
<li>i965: Add missing persample_shading field to brw_wm_debug_recompile.</li>
<li>i965/fs: Fix gl_SampleID for 2x MSAA and SIMD16 mode.</li>
<li>i965/fs: Fix gl_SampleMask handling for SIMD16 on Gen8+.</li>
<li>i965/fs: Set LastRT on the final FB write on Broadwell.</li>
</ul>
<p>Marek Olšák (14):</p>
<ul>
<li>gallium: fix u_default_transfer_inline_write for textures</li>
<li>st/mesa: fix samplerCubeShadow with bias</li>
<li>radeonsi: fix samplerCubeShadow with bias</li>
<li>radeonsi: add support for TXB2</li>
<li>r600g: switch SNORM conversion to DX and GLES behavior</li>
<li>radeonsi: fix CMASK and HTILE calculations for Hawaii</li>
<li>gallium/util: add a helper for calculating primitive count from vertex count</li>
<li>radeonsi: fix a hang with instancing on Hawaii</li>
<li>radeonsi: fix a hang with streamout on Hawaii</li>
<li>winsys/radeon: fix vram_size overflow with Hawaii</li>
<li>radeonsi: fix occlusion queries on Hawaii</li>
<li>r600g,radeonsi: switch all occurences of array_size to util_max_layer</li>
<li>radeonsi: fix build because of lack of draw_indirect infrastructure in 10.2</li>
<li>radeonsi: use DRAW_PREAMBLE on CIK</li>
</ul>
<p>Matt Turner (8):</p>
<ul>
<li>i965/vec4: Don't return void from a void function.</li>
<li>i965/vec4: Don't fix_math_operand() on Gen &gt;= 8.</li>
<li>i965/fs: Don't fix_math_operand() on Gen &gt;= 8.</li>
<li>i965/fs: Make try_constant_propagate() static.</li>
<li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
<li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
<li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
<li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
</ul>
<p>Thorsten Glaser (1):</p>
<ul>
<li>nv50: fix build failure on m68k due to invalid struct alignment assumptions</li>
</ul>
<p>Tom Stellard (1):</p>
<ul>
<li>clover: Call end_query before getting timestamp result v2</li>
</ul>
</div>
</body>
</html>

163
docs/relnotes/10.2.5.rst Normal file
View File

@ -0,0 +1,163 @@
Mesa 10.2.5 Release Notes / August 2, 2014
==========================================
Mesa 10.2.5 is a bug fix release which fixes bugs found since the 10.2.4
release.
Mesa 10.2.5 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
b4459f0bf7f4a3c8fb78ece3c9d2eac3d0e5bf38cb470f2a72705e744bd0310d MesaLib-10.2.5.tar.bz2
7b4dd0cb683f8c7dc48a3e7a315742bed58ddcd7b756c462aca4177bd1acdc79 MesaLib-10.2.5.tar.gz
6180565914fb238dd77ccdaff96b6155d9a6e1b3e981ebbf6a6851301b384fed MesaLib-10.2.5.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 80991 <https://bugs.freedesktop.org/show_bug.cgi?id=80991>`__ -
[BDW]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 fails
Changes
-------
Abdiel Janulgue (3):
- i965/fs: Refactor check for potential copy propagated instructions.
- i965/fs: skip copy-propate for logical instructions with negated src
entries
- i965/vec4: skip copy-propate for logical instructions with negated
src entries
Adel Gadllah (1):
- i915: Fix up intelInitScreen2 for DRI3
Anuj Phogat (2):
- i965: Fix z_offset computation in intel_miptree_unmap_depthstencil()
- mesa: Don't use memcpy() in \_mesa_texstore() for float depth texture
data
Brian Paul (3):
- mesa: fix geometry shader memory leaks
- st/mesa: fix geometry shader memory leak
- gallium/u_blitter: fix some shader memory leaks
Carl Worth (6):
- docs: Add sha256 checksums for the 10.2.3 release
- Update VERSION to 10.2.4
- Add release notes for 10.2.4
- docs: Add SHA256 checksums for the 10.2.4 release
- cherry-ignore: Ignore a few patches picked in the previous stable
release
- Update version to 10.2.5
Christian König (1):
- radeonsi: fix order of r600_need_dma_space and r600_context_bo_reloc
Eric Anholt (1):
- i965: Generalize the pixel_x/y workaround for all UW types.
Ian Romanick (2):
- mesa: Don't allow GL_TEXTURE_BORDER queries outside compat profile
- mesa: Don't allow GL_TEXTURE_{LUMINANCE,INTENSITY}_\* queries outside
compat profile
Ilia Mirkin (5):
- nv50/ir: retrieve shadow compare from first arg
- nv50/ir: ignore bias for samplerCubeShadow on nv50
- nvc0/ir: do quadops on the right texture coordinates for TXD
- nvc0/ir: use manual TXD when offsets are involved
- nvc0: make sure that the local memory allocation is aligned to 0x10
Jason Ekstrand (2):
- main/format_pack: Fix a wrong datatype in pack_ubyte_R8G8_UNORM
- main/get_hash_params: Add GL_SAMPLE_SHADING_ARB
Jordan Justen (1):
- i965: Add auxiliary surface field #defines for Broadwell.
José Fonseca (1):
- st/wgl: Clamp wglChoosePixelFormatARB's output nNumFormats to
nMaxFormats.
Kenneth Graunke (13):
- i965: Don't copy propagate abs into Broadwell logic instructions.
- i965: Set execution size to 8 for instructions with force_sechalf
set.
- i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.
- i965/fs: Use WE_all for gl_SampleID header register munging.
- i965: Add plumbing for Broadwell's auxiliary surface support.
- i965: Drop SINT workaround for CMS layout on Broadwell.
- i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.
- i965: Add 2x MSAA support to the MCS allocation function.
- i965: Enable compressed multisample support (CMS) on Broadwell.
- i965: Add missing persample_shading field to brw_wm_debug_recompile.
- i965/fs: Fix gl_SampleID for 2x MSAA and SIMD16 mode.
- i965/fs: Fix gl_SampleMask handling for SIMD16 on Gen8+.
- i965/fs: Set LastRT on the final FB write on Broadwell.
Marek Olšák (14):
- gallium: fix u_default_transfer_inline_write for textures
- st/mesa: fix samplerCubeShadow with bias
- radeonsi: fix samplerCubeShadow with bias
- radeonsi: add support for TXB2
- r600g: switch SNORM conversion to DX and GLES behavior
- radeonsi: fix CMASK and HTILE calculations for Hawaii
- gallium/util: add a helper for calculating primitive count from
vertex count
- radeonsi: fix a hang with instancing on Hawaii
- radeonsi: fix a hang with streamout on Hawaii
- winsys/radeon: fix vram_size overflow with Hawaii
- radeonsi: fix occlusion queries on Hawaii
- r600g,radeonsi: switch all occurences of array_size to util_max_layer
- radeonsi: fix build because of lack of draw_indirect infrastructure
in 10.2
- radeonsi: use DRAW_PREAMBLE on CIK
Matt Turner (8):
- i965/vec4: Don't return void from a void function.
- i965/vec4: Don't fix_math_operand() on Gen >= 8.
- i965/fs: Don't fix_math_operand() on Gen >= 8.
- i965/fs: Make try_constant_propagate() static.
- i965/fs: Constant propagate into 2-src math instructions on Gen8.
- i965/vec4: Constant propagate into 2-src math instructions on Gen8.
- i965/fs: Don't use brw_imm_\* unnecessarily.
- i965/fs: Set correct number of regs_written for MCS fetches.
Thorsten Glaser (1):
- nv50: fix build failure on m68k due to invalid struct alignment
assumptions
Tom Stellard (1):
- clover: Call end_query before getting timestamp result v2

View File

@ -1,118 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.2.6 Release Notes / August 19, 2014</h1>
<p>
Mesa 10.2.6 is a bug fix release which fixes bugs found since the 10.2.5 release.
</p>
<p>
Mesa 10.2.6 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
193314d2adba98e43697d726739ac46b4299aae324fa1821aa226890c28ac806 MesaLib-10.2.6.tar.bz2
f7a45a5977b485eb95ac024205c584a0c112fe3951c2313c797579bb16a7a448 MesaLib-10.2.6.tar.gz
6d086d6fcda8f317adfaaae40011decf2f2e2dc80819c4a7a77c76f73512e8d8 MesaLib-10.2.6.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81450">Bug 81450</a> - [BDW]Piglit spec_glsl-1.30_execution_tex-miplevel-selection_textureGrad_1DArray cases intel_do_flush_locked failed</li>
</ul>
<h2>Changes</h2>
<p>Anuj Phogat (15):</p>
<ul>
<li>mesa: Fix error condition for valid texture targets in glTexStorage* functions</li>
<li>mesa: Turn target_can_be_compressed() in to a utility function</li>
<li>mesa: Add error condition for using compressed internalformat in glTexStorage3D()</li>
<li>mesa: Fix condition for using compressed internalformat in glCompressedTexImage3D()</li>
<li>mesa: Add utility function _mesa_is_enum_format_snorm()</li>
<li>mesa: Don't allow snorm internal formats in glCopyTexImage*() in GLES3</li>
<li>mesa: Add a helper function _mesa_is_enum_format_unsized()</li>
<li>mesa: Add a gles3 error condition for sized internalformat in glCopyTexImage*()</li>
<li>mesa: Add gles3 error condition for GL_RGBA10_A2 buffer format in glCopyTexImage*()</li>
<li>mesa: Add utility function _mesa_is_enum_format_unorm()</li>
<li>mesa: Add gles3 condition for normalized internal formats in glCopyTexImage*()</li>
<li>mesa: Allow GL_TEXTURE_CUBE_MAP target with compressed internal formats</li>
<li>meta: Use _mesa_get_format_bits() to get the GL_RED_BITS</li>
<li>egl: Fix OpenGL ES version checks in _eglParseContextAttribList()</li>
<li>meta: Fix datatype computation in get_temp_image_type()</li>
</ul>
<p>Brian Paul (1):</p>
<ul>
<li>mesa: fix assertion in _mesa_drawbuffers()</li>
</ul>
<p>Carl Worth (2):</p>
<ul>
<li>docs: Add sha256 sums to the 10.2.5 release notes</li>
<li>Update VERSION to 10.2.6</li>
</ul>
<p>Ilia Mirkin (1):</p>
<ul>
<li>mesa/st: only convert AND(a, NOT(b)) into MAD when not using native integers</li>
</ul>
<p>Jordan Justen (1):</p>
<ul>
<li>i965/miptree: Layout 1D Array as 2D Array with height of 1</li>
</ul>
<p>Maarten Lankhorst (1):</p>
<ul>
<li>configure.ac: Do not require llvm on x32</li>
</ul>
<p>Marek Olšák (4):</p>
<ul>
<li>st/mesa: fix blit-based partial TexSubImage for 1D arrays</li>
<li>radeon,r200: fix buffer validation after CS flush</li>
<li>radeonsi: fix a hang with instancing in Unigine Heaven/Valley on Hawaii</li>
<li>radeonsi: fix CMASK and HTILE allocation on Tahiti</li>
</ul>
<p>Pali Rohár (1):</p>
<ul>
<li>configure: check for dladdr via AC_CHECK_FUNC/AC_CHECK_LIB</li>
</ul>
<p>Roland Scheidegger (1):</p>
<ul>
<li>gallivm: fix up out-of-bounds level when using conformant out-of-bound behavior</li>
</ul>
</div>
</body>
</html>

104
docs/relnotes/10.2.6.rst Normal file
View File

@ -0,0 +1,104 @@
Mesa 10.2.6 Release Notes / August 19, 2014
===========================================
Mesa 10.2.6 is a bug fix release which fixes bugs found since the 10.2.5
release.
Mesa 10.2.6 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
193314d2adba98e43697d726739ac46b4299aae324fa1821aa226890c28ac806 MesaLib-10.2.6.tar.bz2
f7a45a5977b485eb95ac024205c584a0c112fe3951c2313c797579bb16a7a448 MesaLib-10.2.6.tar.gz
6d086d6fcda8f317adfaaae40011decf2f2e2dc80819c4a7a77c76f73512e8d8 MesaLib-10.2.6.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 81450 <https://bugs.freedesktop.org/show_bug.cgi?id=81450>`__ -
[BDW]Piglit
spec_glsl-1.30_execution_tex-miplevel-selection_textureGrad_1DArray
cases intel_do_flush_locked failed
Changes
-------
Anuj Phogat (15):
- mesa: Fix error condition for valid texture targets in glTexStorage\*
functions
- mesa: Turn target_can_be_compressed() in to a utility function
- mesa: Add error condition for using compressed internalformat in
glTexStorage3D()
- mesa: Fix condition for using compressed internalformat in
glCompressedTexImage3D()
- mesa: Add utility function \_mesa_is_enum_format_snorm()
- mesa: Don't allow snorm internal formats in glCopyTexImage*() in
GLES3
- mesa: Add a helper function \_mesa_is_enum_format_unsized()
- mesa: Add a gles3 error condition for sized internalformat in
glCopyTexImage*()
- mesa: Add gles3 error condition for GL_RGBA10_A2 buffer format in
glCopyTexImage*()
- mesa: Add utility function \_mesa_is_enum_format_unorm()
- mesa: Add gles3 condition for normalized internal formats in
glCopyTexImage*()
- mesa: Allow GL_TEXTURE_CUBE_MAP target with compressed internal
formats
- meta: Use \_mesa_get_format_bits() to get the GL_RED_BITS
- egl: Fix OpenGL ES version checks in \_eglParseContextAttribList()
- meta: Fix datatype computation in get_temp_image_type()
Brian Paul (1):
- mesa: fix assertion in \_mesa_drawbuffers()
Carl Worth (2):
- docs: Add sha256 sums to the 10.2.5 release notes
- Update VERSION to 10.2.6
Ilia Mirkin (1):
- mesa/st: only convert AND(a, NOT(b)) into MAD when not using native
integers
Jordan Justen (1):
- i965/miptree: Layout 1D Array as 2D Array with height of 1
Maarten Lankhorst (1):
- configure.ac: Do not require llvm on x32
Marek Olšák (4):
- st/mesa: fix blit-based partial TexSubImage for 1D arrays
- radeon,r200: fix buffer validation after CS flush
- radeonsi: fix a hang with instancing in Unigine Heaven/Valley on
Hawaii
- radeonsi: fix CMASK and HTILE allocation on Tahiti
Pali Rohár (1):
- configure: check for dladdr via AC_CHECK_FUNC/AC_CHECK_LIB
Roland Scheidegger (1):
- gallivm: fix up out-of-bounds level when using conformant
out-of-bound behavior

View File

@ -1,211 +0,0 @@
<!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 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>
<div class="header">
The Mesa 3D Graphics Library
</div>
<iframe src="../contents.html"></iframe>
<div class="content">
<h1>Mesa 10.2.7 Release Notes / September 06, 2014</h1>
<p>
Mesa 10.2.7 is a bug fix release which fixes bugs found since the 10.2.6 release.
</p>
<p>
Mesa 10.2.7 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
3.3 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>
<h2>SHA256 checksums</h2>
<pre>
cb67dfaabf88acba29aa2cf0dd58ee17b21ebf9594f8d1226c41794da8de3e9d MesaLib-10.2.7.tar.gz
27b958063a4c002071f14ed45c7d2a1ee52cd85e4ac8876e8a1c273495a7d43f MesaLib-10.2.7.tar.bz2
a2796a2d5bbbc2edd22857ecc267cba68dfe5d0296f5d84ba7510877b216cc40 MesaLib-10.2.7.zip
</pre>
<h2>New features</h2>
<p>None</p>
<h2>Bug fixes</h2>
<p>This list is likely incomplete.</p>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36193">Bug 36193</a> - [i965] brw_eu_emit.c:182: validate_reg: Assertion `execsize &gt;= width' failed.</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66184">Bug 66184</a> - src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3216:simplify_cmp: Assertion `inst-&gt;dst.index &lt; 4096' failed.</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70441">Bug 70441</a> - [Gen4-5 clip] Piglit spec_OpenGL_1.1_polygon-offset hits (execsize &gt;= width) assertion</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76188">Bug 76188</a> - EGL_EXT_image_dma_buf_import fd ownership is incorrect</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76789">Bug 76789</a> - [radeonsi] si_descriptors.c requires -std=gnu99 or -fms-extensions</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82139">Bug 82139</a> - [r600g, bisected] multiple ubo piglit regressions</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82255">Bug 82255</a> - [VP2] Chroma planes are vertically stretched during VDPAU playback</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82671">Bug 82671</a> - [r600g-evergreen][compute]Empty kernel execution causes crash</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82709">Bug 82709</a> - OpenCL not working on radeon hainan</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82814">Bug 82814</a> - glDrawBuffers(0, NULL) segfaults in _mesa_drawbuffers</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83079">Bug 83079</a> - [NVC0] Dota 2 (Linux native and Wine) crash with Nouveau Drivers</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83355">Bug 83355</a> - FTBFS: src/mesa/program/program_lexer.l:122:64: error: unknown type name 'YYSTYPE'</li>
</ul>
<h2>Changes</h2>
<p>Adam Jackson (1):</p>
<ul>
<li>radeonsi: Don't use anonymous struct trick in atom tracking</li>
</ul>
<p>Alex Deucher (2):</p>
<ul>
<li>radeonsi: add new CIK pci ids</li>
<li>radeonsi: add new SI pci ids</li>
</ul>
<p>Andreas Boll (1):</p>
<ul>
<li>winsys/radeon: fix nop packet padding for hawaii</li>
</ul>
<p>Anuj Phogat (1):</p>
<ul>
<li>i965: Bail on vec4 copy propagation for scratch writes with source modifiers</li>
</ul>
<p>Brian Paul (1):</p>
<ul>
<li>mesa: fix NULL pointer deref bug in _mesa_drawbuffers()</li>
</ul>
<p>Carl Worth (2):</p>
<ul>
<li>docs: Add sha256 sums for the 10.2.6 release</li>
<li>Makefile: Switch from md5sums to sha256sums</li>
</ul>
<p>Dave Airlie (1):</p>
<ul>
<li>i965: add missing parens in vec4 visitor</li>
</ul>
<p>Emil Velikov (17):</p>
<ul>
<li>configure.ac: bail out if building gallium_gbm without gallium_egl</li>
<li>android: gallium/nouveau: fix include folders, link against libstlport</li>
<li>android: egl/main: fixup the nouveau build</li>
<li>automake: gallium/freedreno: drop spurious include dirs</li>
<li>android: gallium/freedreno: add preliminary build</li>
<li>android: egl/main: add/enable freedreno</li>
<li>android: gallium/auxiliary: drop log2/log2f redefitions</li>
<li>android: drop HAL_PIXEL_FORMAT_RGBA_{5551,4444}</li>
<li>android: glsl: the stlport over the limited Android STL</li>
<li>android: dri/i915: do not build an 'empty' driver</li>
<li>cherry-ignore: remove patch that lacking previous dependencies</li>
<li>cherry-ignore: PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE is not it 10.2</li>
<li>cherry-ignore: drop whitespace fix</li>
<li>cherry-ignore: reject a15088338eb</li>
<li>get-pick-list.sh: Require explicit "10.2" for nominating stable patches</li>
<li>mesa: fix make tarballs</li>
<li>Update VERSION to 10.2.7</li>
</ul>
<p>Ian Romanick (1):</p>
<ul>
<li>mesa: Handle uninitialized textures like other textures in get_tex_level_parameter_image</li>
</ul>
<p>Ilia Mirkin (9):</p>
<ul>
<li>nouveau: make sure to invalidate any vbo state as well</li>
<li>nouveau: don't keep stale pointer to free'd data</li>
<li>nvc0/ir: avoid infinite recursion when finding first uses of tex</li>
<li>nv50: zero out unbound samplers</li>
<li>nvc0: don't make 1d staging textures linear</li>
<li>nv50/ir: avoid creating instructions that can't be emitted</li>
<li>nv50: set the miptree address when clearing bo's in vp2 init</li>
<li>nv50: mt address may not be the underlying bo's start address</li>
<li>nv50: attach the buffer bo to the miptree structures</li>
</ul>
<p>Jan Vesely (1):</p>
<ul>
<li>gallivm: Fix build with latest LLVM</li>
</ul>
<p>José Fonseca (1):</p>
<ul>
<li>mesa: Move declaration to top of block.</li>
</ul>
<p>Kenneth Graunke (3):</p>
<ul>
<li>i965/vec4: Set NoMask for GS_OPCODE_SET_VERTEX_COUNT on Gen8+.</li>
<li>i965/vec4: Respect ir-&gt;force_writemask_all in Gen8 code generation.</li>
<li>i965/clip: Fix brw_clip_unfilled.c/compute_offset's assembly.</li>
</ul>
<p>Marek Olšák (3):</p>
<ul>
<li>r600g: fix constant buffer fetches</li>
<li>radeonsi: save scissor state and sample mask for u_blitter</li>
<li>glsl_to_tgsi: allocate and enlarge arrays for temporaries on demand</li>
</ul>
<p>Paulo Sergio Travaglia (2):</p>
<ul>
<li>android: gallium/radeon: attempt to fix the android build</li>
<li>android: egl/main: resolve radeon linking issues</li>
</ul>
<p>Pekka Paalanen (1):</p>
<ul>
<li>egl_dri2: fix EXT_image_dma_buf_import fds</li>
</ul>
<p>Robert Bragg (1):</p>
<ul>
<li>meta: save and restore swizzle for _GenerateMipmap</li>
</ul>
<p>Tom Stellard (7):</p>
<ul>
<li>radeon/compute: Fix reported values for MAX_GLOBAL_SIZE and MAX_MEM_ALLOC_SIZE</li>
<li>radeonsi/compute: Update reference counts for buffers in si_set_global_binding()</li>
<li>radeonsi/compute: Call si_pm4_free_state() after emitting compute state</li>
<li>clover: Flush the command queue in clReleaseCommandQueue()</li>
<li>radeon: Add work-around for missing Hainan support in clang &lt; 3.6 v2</li>
<li>pipe-loader: Fix memory leak v2</li>
<li>r600g/compute: Don't initialize vertex_buffer_state masks to 0x2</li>
</ul>
<p>Vinson Lee (1):</p>
<ul>
<li>gallivm: Fix build with LLVM &gt;= 3.6 r215967.</li>
</ul>
</div>
</body>
</html>

183
docs/relnotes/10.2.7.rst Normal file
View File

@ -0,0 +1,183 @@
Mesa 10.2.7 Release Notes / September 06, 2014
==============================================
Mesa 10.2.7 is a bug fix release which fixes bugs found since the 10.2.6
release.
Mesa 10.2.7 implements the OpenGL 3.3 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.
SHA256 checksums
----------------
::
cb67dfaabf88acba29aa2cf0dd58ee17b21ebf9594f8d1226c41794da8de3e9d MesaLib-10.2.7.tar.gz
27b958063a4c002071f14ed45c7d2a1ee52cd85e4ac8876e8a1c273495a7d43f MesaLib-10.2.7.tar.bz2
a2796a2d5bbbc2edd22857ecc267cba68dfe5d0296f5d84ba7510877b216cc40 MesaLib-10.2.7.zip
New features
------------
None
Bug fixes
---------
This list is likely incomplete.
- `Bug 36193 <https://bugs.freedesktop.org/show_bug.cgi?id=36193>`__ -
[i965] brw_eu_emit.c:182: validate_reg: Assertion \`execsize >=
width' failed.
- `Bug 66184 <https://bugs.freedesktop.org/show_bug.cgi?id=66184>`__ -
src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3216:simplify_cmp:
Assertion \`inst->dst.index < 4096' failed.
- `Bug 70441 <https://bugs.freedesktop.org/show_bug.cgi?id=70441>`__ -
[Gen4-5 clip] Piglit spec_OpenGL_1.1_polygon-offset hits (execsize >=
width) assertion
- `Bug 76188 <https://bugs.freedesktop.org/show_bug.cgi?id=76188>`__ -
EGL_EXT_image_dma_buf_import fd ownership is incorrect
- `Bug 76789 <https://bugs.freedesktop.org/show_bug.cgi?id=76789>`__ -
[radeonsi] si_descriptors.c requires -std=gnu99 or -fms-extensions
- `Bug 82139 <https://bugs.freedesktop.org/show_bug.cgi?id=82139>`__ -
[r600g, bisected] multiple ubo piglit regressions
- `Bug 82255 <https://bugs.freedesktop.org/show_bug.cgi?id=82255>`__ -
[VP2] Chroma planes are vertically stretched during VDPAU playback
- `Bug 82671 <https://bugs.freedesktop.org/show_bug.cgi?id=82671>`__ -
[r600g-evergreen][compute]Empty kernel execution causes crash
- `Bug 82709 <https://bugs.freedesktop.org/show_bug.cgi?id=82709>`__ -
OpenCL not working on radeon hainan
- `Bug 82814 <https://bugs.freedesktop.org/show_bug.cgi?id=82814>`__ -
glDrawBuffers(0, NULL) segfaults in \_mesa_drawbuffers
- `Bug 83079 <https://bugs.freedesktop.org/show_bug.cgi?id=83079>`__ -
[NVC0] Dota 2 (Linux native and Wine) crash with Nouveau Drivers
- `Bug 83355 <https://bugs.freedesktop.org/show_bug.cgi?id=83355>`__ -
FTBFS: src/mesa/program/program_lexer.l:122:64: error: unknown type
name 'YYSTYPE'
Changes
-------
Adam Jackson (1):
- radeonsi: Don't use anonymous struct trick in atom tracking
Alex Deucher (2):
- radeonsi: add new CIK pci ids
- radeonsi: add new SI pci ids
Andreas Boll (1):
- winsys/radeon: fix nop packet padding for hawaii
Anuj Phogat (1):
- i965: Bail on vec4 copy propagation for scratch writes with source
modifiers
Brian Paul (1):
- mesa: fix NULL pointer deref bug in \_mesa_drawbuffers()
Carl Worth (2):
- docs: Add sha256 sums for the 10.2.6 release
- Makefile: Switch from md5sums to sha256sums
Dave Airlie (1):
- i965: add missing parens in vec4 visitor
Emil Velikov (17):
- configure.ac: bail out if building gallium_gbm without gallium_egl
- android: gallium/nouveau: fix include folders, link against
libstlport
- android: egl/main: fixup the nouveau build
- automake: gallium/freedreno: drop spurious include dirs
- android: gallium/freedreno: add preliminary build
- android: egl/main: add/enable freedreno
- android: gallium/auxiliary: drop log2/log2f redefitions
- android: drop HAL_PIXEL_FORMAT_RGBA_{5551,4444}
- android: glsl: the stlport over the limited Android STL
- android: dri/i915: do not build an 'empty' driver
- cherry-ignore: remove patch that lacking previous dependencies
- cherry-ignore: PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE is not it 10.2
- cherry-ignore: drop whitespace fix
- cherry-ignore: reject a15088338eb
- get-pick-list.sh: Require explicit "10.2" for nominating stable
patches
- mesa: fix make tarballs
- Update VERSION to 10.2.7
Ian Romanick (1):
- mesa: Handle uninitialized textures like other textures in
get_tex_level_parameter_image
Ilia Mirkin (9):
- nouveau: make sure to invalidate any vbo state as well
- nouveau: don't keep stale pointer to free'd data
- nvc0/ir: avoid infinite recursion when finding first uses of tex
- nv50: zero out unbound samplers
- nvc0: don't make 1d staging textures linear
- nv50/ir: avoid creating instructions that can't be emitted
- nv50: set the miptree address when clearing bo's in vp2 init
- nv50: mt address may not be the underlying bo's start address
- nv50: attach the buffer bo to the miptree structures
Jan Vesely (1):
- gallivm: Fix build with latest LLVM
José Fonseca (1):
- mesa: Move declaration to top of block.
Kenneth Graunke (3):
- i965/vec4: Set NoMask for GS_OPCODE_SET_VERTEX_COUNT on Gen8+.
- i965/vec4: Respect ir->force_writemask_all in Gen8 code generation.
- i965/clip: Fix brw_clip_unfilled.c/compute_offset's assembly.
Marek Olšák (3):
- r600g: fix constant buffer fetches
- radeonsi: save scissor state and sample mask for u_blitter
- glsl_to_tgsi: allocate and enlarge arrays for temporaries on demand
Paulo Sergio Travaglia (2):
- android: gallium/radeon: attempt to fix the android build
- android: egl/main: resolve radeon linking issues
Pekka Paalanen (1):
- egl_dri2: fix EXT_image_dma_buf_import fds
Robert Bragg (1):
- meta: save and restore swizzle for \_GenerateMipmap
Tom Stellard (7):
- radeon/compute: Fix reported values for MAX_GLOBAL_SIZE and
MAX_MEM_ALLOC_SIZE
- radeonsi/compute: Update reference counts for buffers in
si_set_global_binding()
- radeonsi/compute: Call si_pm4_free_state() after emitting compute
state
- clover: Flush the command queue in clReleaseCommandQueue()
- radeon: Add work-around for missing Hainan support in clang < 3.6 v2
- pipe-loader: Fix memory leak v2
- r600g/compute: Don't initialize vertex_buffer_state masks to 0x2
Vinson Lee (1):
- gallivm: Fix build with LLVM >= 3.6 r215967.

Some files were not shown because too many files have changed in this diff Show More