<!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.4.7 Release Notes / March 20, 2015</h1>

<p>
Mesa 10.4.7 is a bug fix release which fixes bugs found since the 10.4.6 release.
</p>
<p>
Mesa 10.4.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>
9e7b59267199658808f8b33e0410b86fbafbdcd52378658b9df65fac9d24947f  MesaLib-10.4.7.tar.gz
2c351c98671f9a7ab3fd9c601bb7a255801b1580f5dd0992639f99152801b0d2  MesaLib-10.4.7.tar.bz2
d14ac578b5ce16560757b53fbd1cb4d6b34652f8e110e4b10a019adc82e67ffd  MesaLib-10.4.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=79202">Bug 79202</a> - valgrind errors in glsl-fs-uniform-array-loop-unroll.shader_test; random code generation</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89156">Bug 89156</a> - r300g: GL_COMPRESSED_RED_RGTC1 / ATI1N support broken</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89224">Bug 89224</a> - Incorrect rendering of Unigine Valley running in VM on VMware Workstation</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89530">Bug 89530</a> - FTBFS in loader: missing fstat</li>

</ul>

<h2>Changes</h2>

<p>Andrey Sudnik (1):</p>
<ul>
  <li>i965/vec4: Don't lose the saturate modifier in copy propagation.</li>
</ul>

<p>Daniel Stone (1):</p>
<ul>
  <li>egl: Take alpha bits into account when selecting GBM formats</li>
</ul>

<p>Emil Velikov (6):</p>
<ul>
  <li>docs: Add sha256 sums for the 10.4.6 release</li>
  <li>cherry-ignore: add not applicable/rejected commits</li>
  <li>mesa: rename format_info.c to format_info.h</li>
  <li>loader: include &lt;sys/stat.h&gt; for non-sysfs builds</li>
  <li>auxiliary/os: fix the android build - s/drm_munmap/os_munmap/</li>
  <li>Update version to 10.4.7</li>
</ul>

<p>Iago Toral Quiroga (1):</p>
<ul>
  <li>i965: Fix out-of-bounds accesses into pull_constant_loc array</li>
</ul>

<p>Ilia Mirkin (4):</p>
<ul>
  <li>freedreno: move fb state copy after checking for size change</li>
  <li>freedreno/ir3: fix array count returned by TXQ</li>
  <li>freedreno/ir3: get the # of miplevels from getinfo</li>
  <li>freedreno: fix slice pitch calculations</li>
</ul>

<p>Marc-Andre Lureau (1):</p>
<ul>
  <li>gallium/auxiliary/indices: fix start param</li>
</ul>

<p>Marek Olšák (4):</p>
<ul>
  <li>r300g: fix RGTC1 and LATC1 SNORM formats</li>
  <li>r300g: fix a crash when resolving into an sRGB texture</li>
  <li>r300g: fix sRGB-&gt;sRGB blits</li>
  <li>radeonsi: increase coords array size for radeon_llvm_emit_prepare_cube_coords</li>
</ul>

<p>Mario Kleiner (1):</p>
<ul>
  <li>glx: Handle out-of-sequence swap completion events correctly. (v2)</li>
</ul>

<p>Matt Turner (2):</p>
<ul>
  <li>r300g: Use PATH_MAX instead of limiting ourselves to 100 chars.</li>
  <li>r300g: Check return value of snprintf().</li>
</ul>

<p>Rob Clark (2):</p>
<ul>
  <li>freedreno/ir3: fix silly typo for binning pass shaders</li>
  <li>freedreno: update generated headers</li>
</ul>

<p>Samuel Iglesias Gonsalvez (1):</p>
<ul>
  <li>glsl: optimize (0 cmp x + y) into (-x cmp y).</li>
</ul>

<p>Stefan Dösinger (1):</p>
<ul>
  <li>r300g: Fix the ATI1N swizzle (RGTC1 and LATC1)</li>
</ul>

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