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

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

<h1>Mesa 18.0.1 Release Notes / April 18, 2018</h1>

<p>
Mesa 18.0.1 is a bug fix release which fixes bugs found since the 18.0.0 release.
</p>
<p>
Mesa 18.0.1 implements the OpenGL 4.5 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 4.5.  OpenGL
4.5 is <strong>only</strong> available if requested at context creation
because compatibility contexts are not supported.
</p>


<h2>SHA256 checksums</h2>
<pre>
0c93ba892c0610f5dd87f2e2673b9445187995c395b3ddb33fd4260bfb291e89  mesa-18.0.1.tar.gz
b2d2f5b5dbaab13e15cb0dcb5ec81887467f55ebc9625945b303a3647cd87954  mesa-18.0.1.tar.xz
</pre>


<h2>New features</h2>
<p>None</p>


<h2>Bug fixes</h2>

<ul>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101408">Bug 101408</a> - [Gen8+] Xonotic fails to render one of the weapons</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102342">Bug 102342</a> - mesa-17.1.7/src/gallium/auxiliary/pipebuffer/pb_cache.c:169]: (style) Suspicious condition</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102542">Bug 102542</a> - mesa-17.2.0/src/gallium/state_trackers/nine/nine_ff.c:1938: bad assignment ?</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105317">Bug 105317</a> - The GPU Vega 56 was hang while try to pass #GraphicsFuzz shader15 test</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105440">Bug 105440</a> - GEN7: rendering issue on citra</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105442">Bug 105442</a> - Hang when running nine ff lighting shader with radeonsi</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105567">Bug 105567</a> - meson/ninja: 1. mesa/vdpau incorrect symlinks in DESTDIR and 2. Ddri-drivers-path Dvdpau-libs-path overrides DESTDIR</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105670">Bug 105670</a> - [regression][hang] Trine1EE hangs GPU after loading screen on Mesa3D-17.3 and later</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105704">Bug 105704</a> - compiler assertion hit</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105717">Bug 105717</a> - [bisected] Mesa build tests fails: BIGENDIAN_CPU or LITTLEENDIAN_CPU must be defined</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105942">Bug 105942</a> - Graphical artefacts after update to mesa 18.0.0-2</li>

</ul>


<h2>Changes</h2>

<p>Andres Gomez (2):</p>
<ul>
  <li>dri_util: when overriding, always reset the core version</li>
  <li>mesa: adds some comments regarding MESA_GLES_VERSION_OVERRIDE usage</li>
</ul>

<p>Axel Davy (5):</p>
<ul>
  <li>st/nine: Fix bad tracking of vs textures for NINESBT_ALL</li>
  <li>st/nine: Fixes warning about implicit conversion</li>
  <li>st/nine: Fix non inversible matrix check</li>
  <li>st/nine: Declare lighting consts for ff shaders</li>
  <li>st/nine: Do not use scratch for face register</li>
</ul>

<p>Bas Nieuwenhuizen (3):</p>
<ul>
  <li>ac/nir: Add workaround for GFX9 buffer views.</li>
  <li>radv: Don't set instance count using predication.</li>
  <li>radv: Always reset draw user SGPRs after secondary command buffer.</li>
</ul>

<p>Caio Marcelo de Oliveira Filho (1):</p>
<ul>
  <li>anv/pipeline: fail if TCS/TES compile fail</li>
</ul>

<p>Daniel Stone (1):</p>
<ul>
  <li>st/dri: Initialise modifier to INVALID for DRI2</li>
</ul>

<p>Derek Foreman (1):</p>
<ul>
  <li>egl/wayland: Make swrast display_sync the correct queue</li>
</ul>

<p>Dylan Baker (4):</p>
<ul>
  <li>meson: don't use compiler.has_header</li>
  <li>autotools: include meson_get_version</li>
  <li>meson: Set .so version for xa like autotools does</li>
  <li>meson: fix megadriver symlinking</li>
</ul>

<p>Emil Velikov (1):</p>
<ul>
  <li>docs: add sha256 checksums for 18.0.0</li>
</ul>

<p>Eric Engestrom (3):</p>
<ul>
  <li>meson/configure: detect endian.h instead of trying to guess when it's available</li>
  <li>docs: fix 18.0 release note version</li>
  <li>gbm: remove never-implemented function</li>
</ul>

<p>Henri Verbeet (1):</p>
<ul>
  <li>mesa: Inherit texture view multi-sample information from the original texture images.</li>
</ul>

<p>Iago Toral Quiroga (1):</p>
<ul>
  <li>compiler/spirv: set is_shadow for depth comparitor sampling opcodes</li>
</ul>

<p>Ian Romanick (1):</p>
<ul>
  <li>i965/vec4: Fix null destination register in 3-source instructions</li>
</ul>

<p>Jason Ekstrand (4):</p>
<ul>
  <li>nir/vars_to_ssa: Remove copies from the correct set</li>
  <li>nir/lower_indirect_derefs: Support interp_var_at intrinsics</li>
  <li>intel/vec4: Set channel_sizes for MOV_INDIRECT sources</li>
  <li>nir/lower_vec_to_movs: Only coalesce if the vec had a SSA destination</li>
</ul>

<p>Juan A. Suarez Romero (5):</p>
<ul>
  <li>cherry-ignore anv: Be more careful about fast-clear colors</li>
  <li>cherry-ignore: ac/shader: fix vertex input with components.</li>
  <li>cherry-ignore: radv: handle exporting view index to fragment shader. (v1.1)</li>
  <li>cherry-ignore: omx: always define ENABLE_ST_OMX_{BELLAGIO,TIZONIA}</li>
  <li>Update version to 18.0.1</li>
</ul>

<p>Leo Liu (1):</p>
<ul>
  <li>radeon/vce: move feedback command inside of destroy function</li>
</ul>

<p>Lionel Landwerlin (1):</p>
<ul>
  <li>i965/perf: fix config registration when uploading to kernel</li>
</ul>

<p>Marc Dietrich (1):</p>
<ul>
  <li>meson: fix HAVE_LLVM version define in meson build</li>
</ul>

<p>Marek Olšák (1):</p>
<ul>
  <li>mesa: simplify MESA_GL_VERSION_OVERRIDE behavior of API override</li>
</ul>

<p>Mark Thompson (1):</p>
<ul>
  <li>st/va: Enable vaExportSurfaceHandle()</li>
</ul>

<p>Rob Clark (3):</p>
<ul>
  <li>nir: fix per_vertex_output intrinsic</li>
  <li>freedreno/a5xx: fix page faults on last level</li>
  <li>freedreno/a5xx: don't align height for PIPE_BUFFER</li>
</ul>

<p>Samuel Pitoiset (2):</p>
<ul>
  <li>radv: fix picking the method for resolve subpass</li>
  <li>radv: fix radv_layout_dcc_compressed() when image doesn't have DCC</li>
</ul>

<p>Sergii Romantsov (1):</p>
<ul>
  <li>i965: Extend the negative 32-bit deltas to 64-bits</li>
</ul>

<p>Timothy Arceri (7):</p>
<ul>
  <li>ac: add if/loop build helpers</li>
  <li>radeonsi: make use of if/loop build helpers in ac</li>
  <li>ac: make use of if/loop build helpers</li>
  <li>glsl: fix infinite loop caused by bug in loop unrolling pass</li>
  <li>nir: fix crash in loop unroll corner case</li>
  <li>gallium/pipebuffer: fix parenthesis location</li>
  <li>glsl: always call do_lower_jumps() after loop unrolling</li>
</ul>

<p>Xiong, James (1):</p>
<ul>
  <li>i965: return the fourcc saved in __DRIimage when possible</li>
</ul>


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