<!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 8.0.3 Release Notes / May 18, 2012</h1>

<p>
Mesa 8.0.3 is a bug fix release which fixes bugs found since the 8.0.2 release.
</p>
<p>
Mesa 8.0.3 implements the OpenGL 3.0 API, but the version reported by
glGetString(GL_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 3.0.
</p>
<p>
See the <a href="../install.html">Compiling/Installing page</a> for prerequisites
for DRI hardware acceleration.
</p>


<h2>MD5 checksums</h2>
<pre>
b7210a6d6e4584bd852ab29294ce717e  MesaLib-8.0.3.tar.gz
cc5ee15e306b8c15da6a478923797171  MesaLib-8.0.3.tar.bz2
32773634a0f7e70a680505a81426eccf  MesaLib-8.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=28138">Bug 28138</a> - [G45] Regnum Online, sparkling in in-game rendering</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=30102">Bug 30102</a> - glean depthStencil test fails BadLength with indirect non-swrast rendering</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=40361">Bug 40361</a> - Glitches on X3100 after upgrade to 7.11</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=41152">Bug 41152</a> - [glsl] Shader backend in Regnum Online does not work</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=41216">Bug 41216</a> - [bisected pineview]oglc filtercubemin(basic.sizedRGBA) fails</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=41372">Bug 41372</a> - i830_state.c PBO crash</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=41495">Bug 41495</a> - i830: intel_get_vb_max / intel_batchbuffer_space mismatch.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=44701">Bug 44701</a> - Regnum online textures flickering</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=44961">Bug 44961</a> - [bisected i965] oglc sRGB(Mipmap.1D_textures) regressed</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=44970">Bug 44970</a> - [i965]oglc max_values(negative.textureSize.textureCube) segfaults</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45214">Bug 45214</a> - Textures disappearing or missing in RegnumOnline OpenGL game</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45558">Bug 45558</a> - cannot render on a drawable of size equal the max framebuffer size</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45921">Bug 45921</a> - [r300g, bisected] Multiple piglit regressions after glsl_to_tgsi changes</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46303">Bug 46303</a> - [SNB] segfault in intel_miptree_release()</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46739">Bug 46739</a> - [snb-m-gt2+] compiz crashed with SIGSEGV in intel_miptree_release()</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46834">Bug 46834</a> - small performance when playing flightgear (swrast fallback through GTT mapping)</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=47126">Bug 47126</a> - tests/fbo/fbo-array.c:109: create_array_fbo: Assertion `glGetError() == 0' failed.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=48218">Bug 48218</a> - brw_fs_schedule_instructions.cpp segfault due to accessing not allocated last_mrf_write[16]</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=48545">Bug 48545</a> - LLVMpipe glReadPixels Firefox hits the slow path (WebGL rendering)</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=49124">Bug 49124</a> - swrast/s_texfetch.c:1156: set_fetch_functions: Assertion `texImage-&gt;FetchTexel' 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-8.0.2..mesa-8.0.3
</pre>

<p>Alban Browaeys (1):</p>
<ul>
  <li>dri/i915: Fix off-by-one in i830 clip region size.</li>
</ul>

<p>Alex Deucher (2):</p>
<ul>
  <li>r200: fix fog coordinate emit</li>
  <li>radeon: fix fog coordinate emit</li>
</ul>

<p>Alexander von Gluck (4):</p>
<ul>
  <li>llvmpipe: fix symbol conflict on Haiku</li>
  <li>svga: fix typedef conflicts on Haiku</li>
  <li>mesa: Don't use newlocale on Haiku</li>
  <li>glsl: Don't use newlocale on Haiku</li>
</ul>

<p>Anuj Phogat (4):</p>
<ul>
  <li>mesa: fix issues with texture border and array textures</li>
  <li>mesa: Fix valid texture target test in _mesa_GetTexLevelParameteriv()</li>
  <li>mesa: Fix the cause of piglit test fbo-array failure</li>
  <li>intel: Fix a case when mapping large texture fails</li>
</ul>

<p>Brian Paul (17):</p>
<ul>
  <li>mesa: add a couple fast-paths to fast_read_rgba_pixels_memcpy()</li>
  <li>mesa/gdi: remove wmesa_set_renderbuffer_funcs() function</li>
  <li>mesa/gdi: remove clear_color() function</li>
  <li>mesa: bump version to 8.0.2 in configs/default</li>
  <li>swrast: include s_fragprog.h to silence warnings</li>
  <li>mesa: remove LSB-first pixel packing check in glReadPixels</li>
  <li>mesa: fix error in _mesa_format_matches_format_and_type() for RGB888</li>
  <li>mesa: add BGR888 code in _mesa_format_matches_format_and_type()</li>
  <li>vbo: fix node_attrsz[] usage in vbo_bind_vertex_list()</li>
  <li>mesa: add missing texture integer test in glTexSubImage()</li>
  <li>mesa: add missing return after _mesa_error() in update_array()</li>
  <li>glsl: propagate MaxUnrollIterations to the optimizer's loop unroller</li>
  <li>st/mesa: set MaxUnrollIterations = 255</li>
  <li>st/mesa: no-op glCopyPixels if source region is out of bounds</li>
  <li>mesa: do more teximage error checking for generic compressed formats</li>
  <li>mesa: fix/add error check in _mesa_ColorMaterial()</li>
  <li>mesa: fix glMaterial / dlist bug</li>
</ul>

<p>Chad Versace (3):</p>
<ul>
  <li>glsl: Fix Android build</li>
  <li>main: Fix memory leak in _mesa_make_extension_string()</li>
  <li>intel: Disable ARB_framebuffer_object in ES contexts</li>
</ul>

<p>Chris Wilson (1):</p>
<ul>
  <li>i830: Compute initial number of vertices from remaining batch space</li>
</ul>

<p>Dave Airlie (4):</p>
<ul>
  <li>mesa/format_unpack: add LUMINANCE 8/16 UINT/INT</li>
  <li>glx/drisw: avoid segfaults when we fail to get visual</li>
  <li>drisw: fix image stride calculation for 16-bit.</li>
  <li>intel: fix TFP at 16-bpp</li>
</ul>

<p>Dylan Noblesmith (7):</p>
<ul>
  <li>intel: fix null dereference processing HiZ buffer</li>
  <li>util: fix undefined behavior</li>
  <li>util: fix uninitialized table</li>
  <li>egl: fix uninitialized values</li>
  <li>st/vega: fix uninitialized values</li>
  <li>egl-static: fix printf warning</li>
  <li>i965: fix typo</li>
</ul>

<p>Eric Anholt (19):</p>
<ul>
  <li>i965/fs: Jump from discard statements to the end of the program when done.</li>
  <li>intel: Fix rendering from textures after RenderTexture().</li>
  <li>mesa: Fix handling of glCopyBufferSubData() for src == dst.</li>
  <li>i965/fs: Move GL_CLAMP handling to coordinate setup.</li>
  <li>i965/fs: Implement GL_CLAMP behavior on texture rectangles on gen6+.</li>
  <li>mesa: Fix push/pop of multisample coverage invert.</li>
  <li>mesa: Include the multisample enables under GL_MULTISAMPLE_BIT attrib as well.</li>
  <li>mesa: Fix display list handling for GL_ARB_draw_instanced.</li>
  <li>mesa: Fix display lists for draw_elements_base_vertex with draw_instanced.</li>
  <li>mesa: Add missing error check for first &lt; 0 in glDrawArraysInstanced().</li>
  <li>i915: Fix piglit fbo-nodepth-test on i830.</li>
  <li>intel: Return success when asked to allocate a 0-width/height renderbuffer.</li>
  <li>mesa: Throw error on glGetActiveUniform inside Begin/End.</li>
  <li>i965/vs: Fix up swizzle for dereference_array of matrices.</li>
  <li>glsl: Fix indentation of switch code.</li>
  <li>glsl: Let the constructor figure out the types of switch-related expressions.</li>
  <li>glsl: Reject non-scalar switch expressions.</li>
  <li>glsl: Fix assertion failure on handling switch on uint expressions.</li>
  <li>mesa: Check for framebuffer completeness before looking at the rb.</li>
</ul>

<p>Eugeni Dodonov (1):</p>
<ul>
  <li>intel: add PCI IDs for Ivy Bridge GT2 server variant</li>
</ul>

<p>Han Shen(沈涵) (1):</p>
<ul>
  <li>bin/mklib: remove '-m32' for arm linux</li>
</ul>

<p>Ian Romanick (1):</p>
<ul>
  <li>mesa: Bump version number to 8.0.3</li>
</ul>

<p>Jakob Bornecrantz (1):</p>
<ul>
  <li>docs: Add 8.0.2 md5sums</li>
</ul>

<p>Jeremy Huddleston (7):</p>
<ul>
  <li>darwin: Eliminate a pthread mutex leak</li>
  <li>darwin: Fix an error message</li>
  <li>darwin: Make reported errors more user-friendly</li>
  <li>darwin: Use ASL for logging</li>
  <li>darwin: Unlock our mutex before destroying it</li>
  <li>darwin: Eliminate a possible race condition while destroying a surface</li>
  <li>darwin: Address a build failure on Leopard and earlier OS versions</li>
</ul>

<p>Jon TURNEY (1):</p>
<ul>
  <li>Have __glImageSize handle format GL_DEPTH_STENCIL_NV the same way as the server does</li>
</ul>

<p>Jonas Maebe (2):</p>
<ul>
  <li>glapi: Correct size of allocated _glapi_table struct</li>
  <li>apple: Fix a use after free</li>
</ul>

<p>Jordan Justen (1):</p>
<ul>
  <li>mesa: Add primitive restart support to glArrayElement</li>
</ul>

<p>Kenneth Graunke (12):</p>
<ul>
  <li>i965: Actually upload sampler state pointers for the VS unit on Gen6.</li>
  <li>i965/fs: Fix FB writes that tried to use the non-existent m16 register.</li>
  <li>vbo: Remove pedantic warning about 'end' beind out of bounds.</li>
  <li>vbo: Ignore invalid element ranges which are outside VBO bounds.</li>
  <li>vbo: Rework checking of 'end' against _MaxElement.</li>
  <li>vbo: Eliminate short-circuiting in invalid-start case.</li>
  <li>i965: Fix GPU hangs in the dummy fragment shader.</li>
  <li>i965: Make the dummy fragment shader work in SIMD16 mode.</li>
  <li>drirc: Add force_glsl_extensions_warn workaround for Unigine Heaven.</li>
  <li>i965: Avoid explicit accumulator operands in SIMD16 mode on Gen7.</li>
  <li>intel: Remove pointless software fallback for glBitmap on Gen6.</li>
  <li>glsl: Fix broken constant expression handling for &lt;, &lt;=, &gt;, and &gt;=.</li>
</ul>

<p>Kurt Roeckx (2):</p>
<ul>
  <li>i915: Compute maximum number of verts using the actual batchbuffer size.</li>
  <li>i915: Fix i830 polygon stipple from PBOs.</li>
</ul>

<p>Marek Olšák (5):</p>
<ul>
  <li>r300g/swtcl: don't print an error when getting ClipVertex</li>
  <li>r300g/swtcl: don't enter u_vbuf_mgr</li>
  <li>r300g/swtcl: don't expose shader subroutine support</li>
  <li>r300g/swtcl: fix polygon offset</li>
  <li>r300g/swtcl: fix crash when back color is present in vertex shader</li>
</ul>

<p>Mathias Fröhlich (1):</p>
<ul>
  <li>glsl: Avoid excessive loop unrolling.</li>
</ul>

<p>Matt Turner (1):</p>
<ul>
  <li>Remove -ffast-math from default CFLAGS</li>
</ul>

<p>Paul Berry (1):</p>
<ul>
  <li>i915: Initialize swrast_texture_image structure fields.</li>
</ul>

<p>Roland Scheidegger (1):</p>
<ul>
  <li>mesa: check_index_bounds off-by-one fix</li>
</ul>

<p>Tom Stellard (2):</p>
<ul>
  <li>r300/compiler: Clear loop registers in vertex shaders w/o loops</li>
  <li>r300/compiler: Copy all instruction attributes during local transfoms</li>
</ul>

<p>Vinson Lee (5):</p>
<ul>
  <li>mesa: Fix memory leak in _mesa_get_uniform_location.</li>
  <li>linker: Fix memory leak in count_uniform_size::visit_field.</li>
  <li>swrast: Fix memory leaks in blit_linear.</li>
  <li>ir_to_mesa: Fix uninitialized member in add_uniform_to_shader.</li>
  <li>mesa: Fix memory leak in generate_mipmap_compressed.</li>
</ul>

<p>Yuanhan Liu (2):</p>
<ul>
  <li>i915: set SPRITE_POINT_ENABLE bit correctly</li>
  <li>i965: fix wrong cube/3D texture layout</li>
</ul>

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