<!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.4 Release Notes / May 17, 2018</h1>

<p>
Mesa 18.0.4 is a bug fix release which fixes bugs found since the 18.0.3 release.
</p>
<p>
Mesa 18.0.4 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>
d1dc3469faccdd73439479426952d71a9e8f684e8d03b6687063c12b13430801  mesa-18.0.4.tar.gz
1f3bcfe7cef0a5c20dae2b41df5d7e0a985e06be0183fa4d43b6068fcba2920f  mesa-18.0.4.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=91808">Bug 91808</a> - trine1 misrender r600g</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100430">Bug 100430</a> - [radv] graphical glitches on dolphin emulator</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106243">Bug 106243</a> - [kbl] GPU HANG: 9:0:0x85dffffb, in Cinnamon</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106480">Bug 106480</a> - A2B10G10R10_SNORM vertex attribute doesn't work.</li>

</ul>


<h2>Changes</h2>

<p>Bas Nieuwenhuizen (3):</p>
<ul>
  <li>radv: Translate logic ops.</li>
  <li>radv: Fix up 2_10_10_10 alpha sign.</li>
  <li>radv: Disable texel buffers with A2 SNORM/SSCALED/SINT for pre-vega.</li>
</ul>

<p>Dave Airlie (3):</p>
<ul>
  <li>r600: fix constant buffer bounds.</li>
  <li>radv: resolve all layers in compute resolve path.</li>
  <li>radv: use compute path for multi-layer images.</li>
</ul>

<p>Deepak Rawat (1):</p>
<ul>
  <li>egl/x11: Send invalidate to driver on copy_region path in swap_buffer</li>
</ul>

<p>Ian Romanick (1):</p>
<ul>
  <li>mesa: Add missing support for glFogiv(GL_FOG_DISTANCE_MODE_NV)</li>
</ul>

<p>Jan Vesely (8):</p>
<ul>
  <li>clover: Add explicit virtual destructor to argument class</li>
  <li>eg/compute: Drop reference on code_bo in destructor.</li>
  <li>r600: Cleanup constant buffers on context destruction</li>
  <li>eg/compute: Drop reference to kernel_param bo in destructor</li>
  <li>pipe-loader: Free driver_name in error path</li>
  <li>gallium/auxiliary: Add helper function to count the number of entries in hash table</li>
  <li>winsys/radeon: Destroy fd_hash table when the last winsys is removed.</li>
  <li>winsys/amdgpu: Destroy dev_hash table when the last winsys is removed.</li>
</ul>

<p>Jason Ekstrand (1):</p>
<ul>
  <li>i965,anv: Set the CS stall bit on the ISP disable PIPE_CONTROL</li>
</ul>

<p>Jose Maria Casanova Crespo (2):</p>
<ul>
  <li>intel/compiler: fix 16-bit int brw_negate_immediate and brw_abs_immediate</li>
  <li>intel/compiler: fix brw_imm_w for negative 16-bit integers</li>
</ul>

<p>Juan A. Suarez Romero (7):</p>
<ul>
  <li>docs: add sha256 checksums for 18.0.3</li>
  <li>cherry-ignore: add explicit 18.1 only nominations</li>
  <li>cherry-ignore: glsl: change ast_type_qualifier bitset size to work around GCC 5.4 bug</li>
  <li>cherry-ignore: mesa: fix glGetInteger/Float/etc queries for vertex arrays attribs</li>
  <li>cherry-ignore: mesa: revert GL_[SECONDARY_]COLOR_ARRAY_SIZE glGet type to TYPE_INT</li>
  <li>cherry-ignore: radv/resolve: do fmask decompress on all layers.</li>
  <li>Update version to 18.0.4</li>
</ul>

<p>Kai Wasserbäch (1):</p>
<ul>
  <li>opencl: autotools: Fix linking order for OpenCL target</li>
</ul>

<p>Kenneth Graunke (1):</p>
<ul>
  <li>i965: Don't leak blorp on Gen4-5.</li>
</ul>

<p>Lionel Landwerlin (2):</p>
<ul>
  <li>i965: require pixel scoreboard stall prior to ISP disable</li>
  <li>anv: emit pixel scoreboard stall before ISP disable</li>
</ul>

<p>Matthew Nicholls (1):</p>
<ul>
  <li>radv: fix multisample image copies</li>
</ul>

<p>Neil Roberts (1):</p>
<ul>
  <li>spirv: Apply OriginUpperLeft to FragCoord</li>
</ul>

<p>Rhys Perry (1):</p>
<ul>
  <li>mesa: fix error handling in get_framebuffer_parameteriv</li>
</ul>

<p>Ross Burton (1):</p>
<ul>
  <li>src/intel/Makefile.vulkan.am: add missing MKDIR_GEN</li>
</ul>


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