<!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 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>
