<!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 19.0.1 Release Notes / March 27, 2019</h1>

<p>
Mesa 19.0.1 is a bug fix release which fixes bugs found since the 19.0.0 release.
</p>
<p>
Mesa 19.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.
Compatibility contexts may report a lower version depending on each driver.
</p>


<h2>SHA256 checksums</h2>
<pre>
f1dd1980ed628edea3935eed7974fbc5d8353e9578c562728b880d63ac613dbd  mesa-19.0.1.tar.gz
6884163c0ea9e4c98378ab8fecd72fe7b5f437713a14471beda378df247999d4  mesa-19.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=100316">Bug 100316</a> - Linking GLSL 1.30 shaders with invariant and deprecated variables triggers an 'mismatching invariant qualifiers' error</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107563">Bug 107563</a> - [RADV] Broken rendering in Unity demos</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109698">Bug 109698</a> - dri.pc contents invalid when built with meson</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109980">Bug 109980</a> - [i915 CI][HSW] spec&#64;arb_fragment_shader_interlock&#64;arb_fragment_shader_interlock-image-load-store - fail</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110211">Bug 110211</a> - If DESTDIR is set to an empty string, the dri drivers are not installed</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110221">Bug 110221</a> - build error with meson</li>

</ul>

<h2>Changes</h2>

<p>Andres Gomez (4):</p>
<ul>
  <li>glsl: correctly validate component layout qualifier for dvec{3,4}</li>
  <li>glsl/linker: don't fail non static used inputs without matching outputs</li>
  <li>glsl/linker: simplify xfb_offset vs xfb_stride overflow check</li>
  <li>Revert "glsl: relax input-&gt;output validation for SSO programs"</li>
</ul>

<p>Bas Nieuwenhuizen (2):</p>
<ul>
  <li>radv: Use correct image view comparison for fast clears.</li>
  <li>ac/nir: Return frag_coord as integer.</li>
</ul>

<p>Danylo Piliaiev (2):</p>
<ul>
  <li>anv: Treat zero size XFB buffer as disabled</li>
  <li>glsl: Cross validate variable's invariance by explicit invariance only</li>
</ul>

<p>Dave Airlie (1):</p>
<ul>
  <li>softpipe: fix texture view crashes</li>
</ul>

<p>Dylan Baker (5):</p>
<ul>
  <li>docs: Add SHA256 sums for 19.0.0</li>
  <li>cherry-ignore: Add commit that doesn't apply</li>
  <li>bin/install_megadrivers.py: Correctly handle DESTDIR=''</li>
  <li>bin/install_megadrivers.py: Fix regression for set DESTDIR</li>
  <li>bump version for 19.0.1</li>
</ul>

<p>Eric Anholt (1):</p>
<ul>
  <li>v3d: Fix leak of the renderonly struct on screen destruction.</li>
</ul>

<p>Jason Ekstrand (6):</p>
<ul>
  <li>glsl/lower_vector_derefs: Don't use a temporary for TCS outputs</li>
  <li>glsl/list: Add a list variant of insert_after</li>
  <li>anv/pass: Flag the need for a RT flush for resolve attachments</li>
  <li>nir/builder: Add a vector extract helper</li>
  <li>nir: Add a new pass to lower array dereferences on vectors</li>
  <li>intel/nir: Lower array-deref-of-vector UBO and SSBO loads</li>
</ul>

<p>Józef Kucia (2):</p>
<ul>
  <li>radv: Fix driverUUID</li>
  <li>mesa: Fix GL_NUM_DEVICE_UUIDS_EXT</li>
</ul>

<p>Kenneth Graunke (1):</p>
<ul>
  <li>intel/fs: Fix opt_peephole_csel to not throw away saturates.</li>
</ul>

<p>Kevin Strasser (1):</p>
<ul>
  <li>egl/dri: Avoid out of bounds array access</li>
</ul>

<p>Mark Janes (1):</p>
<ul>
  <li>mesa: properly report the length of truncated log messages</li>
</ul>

<p>Plamena Manolova (1):</p>
<ul>
  <li>i965: Disable ARB_fragment_shader_interlock for platforms prior to GEN9</li>
</ul>

<p>Samuel Pitoiset (3):</p>
<ul>
  <li>radv: set the maximum number of IBs per submit to 192</li>
  <li>radv: always initialize HTILE when the src layout is UNDEFINED</li>
  <li>radv: fix binding transform feedback buffers</li>
</ul>

<p>Sergii Romantsov (1):</p>
<ul>
  <li>d3d: meson: do not prefix user provided d3d-drivers-path</li>
</ul>

<p>Tapani Pälli (2):</p>
<ul>
  <li>isl: fix automake build when sse41 is not supported</li>
  <li>anv/radv: release memory allocated by glsl types during spirv_to_nir</li>
</ul>


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