<!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">
  <h1>The Mesa 3D Graphics Library</h1>
</div>

<iframe src="../contents.html"></iframe>
<div class="content">

<h1>Mesa 9.0.1 Release Notes / November 16th, 2012</h1>

<p>
Mesa 9.0.1 is a bug fix release which fixes bugs found since the 9.0 release.
</p>
<p>
Mesa 9.0 implements the OpenGL 3.1 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.1.  OpenGL
3.1 is <strong>only</strong> available if requested at context creation
because GL_ARB_compatibility is not supported.
</p>

<h2>MD5 checksums</h2>
<pre>
97d6554c05ea7449398afe3a0ede7018  MesaLib-9.0.1.tar.bz2
fd0fd5a6e56bc3dd210c80e42baef975  MesaLib-9.0.1.tar.gz
c2683d957acd530a00f747f50317186f  MesaLib-9.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=44912">Bug 44912</a> - [bisected] WebGL conformance/textures/texture-mips tests fails</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=55856">Bug 55856</a> - kwin with gles window content is not updating (gen4)</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=56057">Bug 56057</a> - INTEL_swap_event not correctly listed</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=56211">Bug 56211</a> - src/mesa/state_tracker/st_cb_texture.c:1123:copy_image_data_to_texture: Assertion `u_minify(stImage-&gt;pt-&gt;height0, src_level) == stImage-&gt;base.Height' failed.</li>

<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </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-9.0..mesa-9.0.1
</pre>

<p>Adam Jackson (1):</p>
<ul>
  <li>glx: Add GLXBadProfileARB to the error string list</li>
</ul>

<p>Andreas Boll (7):</p>
<ul>
  <li>docs: add news item for 9.0 release</li>
  <li>mesa: add get-pick-list.sh script into bin/</li>
  <li>mesa: add initial .cherry-ignore file for the 9.0 branch</li>
  <li>mesa: use .cherry-ignore in the get-pick-list.sh script</li>
  <li>build: add config.sub and config.guess to tarballs target</li>
  <li>build: add missing Makefile.in files to tarballs target</li>
  <li>build: add missing files to tarballs target</li>
</ul>

<p>Brian Paul (2):</p>
<ul>
  <li>mesa: don't call TexImage driver hooks for zero-sized images</li>
  <li>mesa: fix error check for zero-sized compressed subtexture</li>
</ul>

<p>Fredrik Höglund (1):</p>
<ul>
  <li>egl_dri2/x11: Fix eglPostSubBufferNV()</li>
</ul>

<p>Ian Romanick (5):</p>
<ul>
  <li>docs: Add 9.0 release md5sums</li>
  <li>i965: Fix regression in depth texture rendering on pre-SNB</li>
  <li>glx: Set sRGBCapable to a default value</li>
  <li>docs: Add 9.0.1 release notes</li>
  <li>mesa: Bump version to 9.0.1</li>
</ul>

<p>Imre Deak (7):</p>
<ul>
  <li>mesa: glGet: fix indentation of _mesa_init_get_hash</li>
  <li>mesa: glGet: fix indentation of find_value</li>
  <li>mesa: glGet: fix indentation of print_table_stats</li>
  <li>mesa: glGet: fix API check for EGL_image_external enums</li>
  <li>glapi: rename/move GL_POLYGON_OFFSET_BIAS to its extension section</li>
  <li>mesa: glGet: fix parameter lookup for apps using multiple APIs</li>
  <li>glget: fix make check for glGet GL_POLYGON_OFFSET_BIAS</li>
</ul>

<p>Jonas Ådahl (1):</p>
<ul>
  <li>wayland: Destroy frame callback when destroying surface</li>
</ul>

<p>Kenneth Graunke (1):</p>
<ul>
  <li>glsl: Allow ir_if in the linker's move_non_declarations function.</li>
</ul>

<p>Kristian Høgsberg (5):</p>
<ul>
  <li>gbm: Reject buffers that are not wl_drm buffers in gbm_bo_import()</li>
  <li>gbm: Use the kms dumb ioctls for cursor instead of libkms</li>
  <li>egl/wayland: Update to Wayland 0.99 API</li>
  <li>wayland: Remove 0.85 compatibility #ifdefs</li>
  <li>wayland: Drop support for ill-defined, unused wl_egl_pixmap</li>
</ul>

<p>Marcin Slusarz (1):</p>
<ul>
  <li>nouveau: use pre-calculated stride for resource_get_handle</li>
</ul>

<p>Matt Turner (4):</p>
<ul>
  <li>egl: Return EGL_BAD_MATCH for invalid profile attributes</li>
  <li>Re-add HAVE_PTHREADS preprocessor macro</li>
  <li>build: Ship install-sh in the tarball</li>
  <li>ralloc: Annotate printf functions with PRINTFLIKE(...)</li>
</ul>

<p>Michel Dänzer (2):</p>
<ul>
  <li>st/mesa: Fix source miptree level for copying data to finalized miptree.</li>
  <li>st/mesa: Fix assertions for copying texture image to finalized miptree.</li>
</ul>

<p>Owen W. Taylor (1):</p>
<ul>
  <li>glx: Fix listing of INTEL_swap_event in glXQueryExtensionsString()</li>
</ul>

<p>Quentin Glidic (1):</p>
<ul>
  <li>intel: Add missing #include &lt;time.h&gt;</li>
</ul>

<p>Tomeu Vizoso (1):</p>
<ul>
  <li>mesa/es: Define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT enum for all GLs</li>
</ul>

</div>
</body>
</html>
