<!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.3 Release Notes / February 21th, 2013</h1>

<p>
Mesa 9.0.3 is a bug fix release which fixes bugs found since the 9.0.2 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>
168384ac0101f4600a15edd3561acdc7  MesaLib-9.0.3.tar.gz
d7515cc5116c72ac63d735655bd63689  MesaLib-9.0.3.tar.bz2
a2e1c794572440fd0d839a7d7dfea00c  MesaLib-9.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=25201">Bug 25201</a> - Pink artifacts on objects in the distance in ETQW/Quake 4</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31598">Bug 31598</a> - configure: Doesn't check for python libxml2</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=40404">Bug 40404</a> - [softpipe] piglit glsl-max-varyings regression</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=47220">Bug 47220</a> - [bisected] Oglc pxconv-gettex(basic.allCases) regressed</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=48629">Bug 48629</a> - [bisected i965]Oglc shad-compiler(advanced.TestLessThani) regressed</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54240">Bug 54240</a> - [swrast] piglit fbo-generatemipmap-filtering regression</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=56920">Bug 56920</a> - [sandybridge][uxa] graphics very glitchy and always flickering</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=57166">Bug 57166</a> - [GM45] Chrome experiment &quot;Stars&quot; crash: brw_fs_emit.cpp:708: brw_reg brw_reg_from_fs_reg(fs_reg*): Assertion „!&quot;not reached&quot;“ failed.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=57746">Bug 57746</a> - build test failure:  nouveau_fbo.c:198:3: error: too few arguments to function 'nouveau_renderbuffer_del'</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=57754">Bug 57754</a> - [swrast] Mesa 9.1-devel implementation error: Unable to delete renderbuffer, no context</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=58680">Bug 58680</a> - [IVB] Graphical glitches in 0 A.D</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=58972">Bug 58972</a> - [softpipe] util/u_tile.c:795:pipe_put_tile_z: Assertion `0' failed.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=59364">Bug 59364</a> - [bisected] Mesa build fails: clientattrib.c:33:22: fatal error: indirect.h: No such file or directory</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=59700">Bug 59700</a> - [ILK/SNB/IVB Bisected]Oglc vertexshader(advanced.TestLightsTwoSided) causes GPU hung</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=59873">Bug 59873</a> - [swrast] piglit ext_framebuffer_multisample-interpolation 0 centroid-edges regression</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60052">Bug 60052</a> - [Bisected]Piglit glx_extension_string_sanity fail</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60172">Bug 60172</a> - Planeshift: triangles where grass would be</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.2..mesa-9.0.3
</pre>

<p>Adam Jackson (1):</p>
<ul>
  <li>r200: Fix probable thinko in r200EmitArrays</li>
</ul>

<p>Andreas Boll (7):</p>
<ul>
  <li>docs: Add 9.0.2 release md5sums</li>
  <li>docs: add news item for 9.0.2 release</li>
  <li>configure.ac: Allow OpenGL ES1 and ES2 only with enabled OpenGL</li>
  <li>build: require python module libxml2</li>
  <li>cherry-ignore: Ignore candidates for the 9.1 branch.</li>
  <li>mesa: Bump version to 9.0.3</li>
  <li>docs: Add 9.0.3 release notes</li>
</ul>

<p>Anuj Phogat (1):</p>
<ul>
  <li>mesa: Fix GL_LUMINANCE handling for textures in glGetTexImage</li>
</ul>

<p>Brian Paul (29):</p>
<ul>
  <li>st/glx: accept GLX_SAMPLE_BUFFERS/SAMPLES_ARB == 0</li>
  <li>draw: set precalc_flat flag for AA lines too</li>
  <li>softpipe: fix up FS variant unbinding / deletion</li>
  <li>softpipe: fix unreliable FS variant binding bug</li>
  <li>xlib: handle _mesa_initialize_visual()'s return value</li>
  <li>xlib: allow GLX_DONT_CARE for glXChooseFBConfig() attribute values</li>
  <li>st/glx: allow GLX_DONT_CARE for glXChooseFBConfig() attribute values</li>
  <li>util: fix addressing bug in pipe_put_tile_z() for PIPE_FORMAT_Z32_FLOAT</li>
  <li>util: add get/put_tile_z() support for PIPE_FORMAT_Z32_FLOAT_S8X24_UINT</li>
  <li>mesa: use GLbitfield64 when copying program inputs</li>
  <li>svga: add NULL pointer check in svga_create_sampler_state()</li>
  <li>vbo: add a null pointer check to handle OOM instead of crashing</li>
  <li>osmesa: use _mesa_generate_mipmap() for mipmap generation, not meta</li>
  <li>xlib: use _mesa_generate_mipmap() for mipmap generation, not meta</li>
  <li>st/mesa: set ctx-&gt;Const.MaxSamples = 0, not 1</li>
  <li>mesa: fix-up and use _mesa_delete_renderbuffer()</li>
  <li>mesa: pass context parameter to gl_renderbuffer::Delete()</li>
  <li>st/mesa: fix context use-after-free problem in st_renderbuffer_delete()</li>
  <li>dri_glx: fix use after free report</li>
  <li>mesa: remove warning message in _mesa_reference_renderbuffer_()</li>
  <li>st/mesa: add null pointer check in st_renderbuffer_delete()</li>
  <li>util: add some defensive coding in u_upload_alloc()</li>
  <li>st/mesa: do proper error checking for u_upload_alloc() calls</li>
  <li>util: add new error checking code in vbuf helper</li>
  <li>mesa: don't enable GL_EXT_framebuffer_multisample for software drivers</li>
  <li>st/mesa: only enable GL_EXT_framebuffer_multisample if GL_MAX_SAMPLES &gt;= 2</li>
  <li>mesa: don't expose IBM_rasterpos_clip in a core context</li>
  <li>svga: fix sRGB rendering</li>
  <li>nouveau: Fix build.</li>
</ul>

<p>Chad Versace (1):</p>
<ul>
  <li>i965/disasm: Fix horizontal stride of dest registers</li>
</ul>

<p>Eric Anholt (5):</p>
<ul>
  <li>i965/fs: Fix the gen6-specific if handling for 80ecb8f15b9ad7d6edc</li>
  <li>i965/fs: Don't generate saturates over existing variable values.</li>
  <li>i965: Actually add support for GL_ANY_SAMPLES_PASSED from GL_ARB_oq2.</li>
  <li>i965/vs: Try again when we've successfully spilled a reg.</li>
  <li>i965/gen7: Set up all samplers even if samplers are sparsely used.</li>
</ul>

<p>Frank Henigman (1):</p>
<ul>
  <li>mesa: add bounds checking for uniform array access</li>
</ul>

<p>Jerome Glisse (1):</p>
<ul>
  <li>r600g: add cs memory usage accounting and limit it v3 (backport for mesa 9.0)</li>
</ul>

<p>Jordan Justen (1):</p>
<ul>
  <li>unpack: support unpacking MESA_FORMAT_ARGB2101010</li>
</ul>

<p>José Fonseca (2):</p>
<ul>
  <li>mesa/st: Don't use 4bits for GL_UNSIGNED_BYTE_3_3_2(_REV)</li>
  <li>draw: Properly limit vertex buffer fetches on draw arrays.</li>
</ul>

<p>Kenneth Graunke (19):</p>
<ul>
  <li>i965: Fix primitive restart on Haswell.</li>
  <li>i965: Refactor texture swizzle generation into a helper.</li>
  <li>i965: Do texture swizzling in hardware on Haswell.</li>
  <li>i965: Lower textureGrad() with samplerCubeShadow.</li>
  <li>i965: Use Haswell's sample_d_c for textureGrad with shadow samplers.</li>
  <li>i965: Add chipset limits for Haswell GT1/GT2.</li>
  <li>cherry-ignore: Ignore i965 guardband bug fixes.</li>
  <li>i965: Add missing _NEW_BUFFERS dirty bit in Gen7 SBE state.</li>
  <li>i965/vs: Create a 'lod_type' temporary for ir-&gt;lod_info.lod-&gt;type.</li>
  <li>i965/vs: Set LOD to 0 for ordinary texture() calls.</li>
  <li>i965/vs: Store texturing results into a vec4 temporary.</li>
  <li>cherry-ignore: Ignore candidates for the 9.1 branch.</li>
  <li>mesa: Disable GL_NV_primitive_restart extension in core contexts.</li>
  <li>glsl: Track UBO block names in the symbol table.</li>
  <li>build: Fix build on systems where /usr/bin/python isn't python 2.</li>
  <li>i965: Refactor Gen6+ SF attribute override code.</li>
  <li>i965: Compute the maximum SF source attribute.</li>
  <li>i965: Fix the SF Vertex URB Read Length calculation for Sandybridge.</li>
  <li>i965: Fix the SF Vertex URB Read Length calculation for Gen7 platforms.</li>
</ul>

<p>Marek Olšák (3):</p>
<ul>
  <li>r600g: fix int-&gt;bool conversion in fence_signalled</li>
  <li>gallium/u_upload_mgr: fix a serious memory leak</li>
  <li>r300g: fix blending with blend color and RGBA formats</li>
</ul>

<p>Matt Turner (3):</p>
<ul>
  <li>mesa: Return 0 for XFB_VARYING_MAX_LENGTH if no varyings</li>
  <li>mesa: Set transform feedback's default buffer mode to INTERLEAVED_ATTRIBS</li>
  <li>mesa/uniform_query: Don't write to *params if there is an error</li>
</ul>

<p>Michel Dänzer (1):</p>
<ul>
  <li>configure.ac: GLX cannot work without OpenGL</li>
</ul>

<p>Paul Berry (1):</p>
<ul>
  <li>mesa: Allow glReadBuffer(GL_NONE) for winsys framebuffers.</li>
</ul>

<p>Roland Scheidegger (1):</p>
<ul>
  <li>softpipe: fix using optimized filter function</li>
</ul>

<p>Stefan Dösinger (3):</p>
<ul>
  <li>meta: Disable GL_FRAGMENT_SHADER_ATI in MESA_META_SHADER</li>
  <li>radeon: Initialize swrast before setting limits</li>
  <li>r200: Initialize swrast before setting limits</li>
</ul>

<p>Zack Rusin (2):</p>
<ul>
  <li>glx: only advertise GLX_INTEL_swap_event if it's supported</li>
  <li>DRI2: Don't disable GLX_INTEL_swap_event unconditionally</li>
</ul>

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