Mesa 18.1.4 Release Notes / July 13 2018
========================================

Mesa 18.1.5 is a bug fix release which fixes bugs found since the 18.1.4
release.

Mesa 18.1.5 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 **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each
driver.

SHA256 checksums
----------------

::

   SHA256: f966d5d5d373a5b8a16ed5036c1e7f05d4ad46d130f793bf9782c3ac9133a02e  mesa-18.1.5.tar.gz
   SHA256: 69dbe6f1a6660386f5beb85d4fcf003ee23023ed7b9a603de84e9a37e8d98dea  mesa-18.1.5.tar.xz

New features
------------

None

Bug fixes
---------

-  `Bug 103274 <https://bugs.freedesktop.org/show_bug.cgi?id=103274>`__
   - BRW allocates too much heap memory
-  `Bug 107275 <https://bugs.freedesktop.org/show_bug.cgi?id=107275>`__
   - NIR segfaults after spirv-opt
-  `Bug 107295 <https://bugs.freedesktop.org/show_bug.cgi?id=107295>`__
   - Access violation on glDrawArrays with count >= 2048
-  `Bug 107312 <https://bugs.freedesktop.org/show_bug.cgi?id=107312>`__
   - Mesa-git RPM build fails after commit
   8cacf38f527d42e41441ef8c25d95d4b2f4e8602
-  `Bug 107366 <https://bugs.freedesktop.org/show_bug.cgi?id=107366>`__
   - NIR verification crashes on piglit tests

Changes
-------

Alex Smith (1):

-  anv: Pay attention to VK_ACCESS_MEMORY_(READ|WRITE)_BIT

Bas Nieuwenhuizen (7):

-  radv: Select correct entries for binning.
-  radv: Fix number of samples used for binning.
-  radv: Disable disabled color buffers in rbplus opts.
-  nir: Do not use continue block after removing it.
-  util/disk_cache: Fix disk_cache_get_function_timestamp with disabled
   cache.
-  nir: Fix end of function without return warning/error.
-  radv: Still enable inmemory & API level caching if disk cache is not
   enabled.

Chad Versace (2):

-  anv/android: Fix type error in call to vk_errorf()
-  anv/android: Fix Autotools build for VK_ANDROID_native_buffer

Chih-Wei Huang (1):

-  Android: fix a missing nir_intrinsics.h error

Danylo Piliaiev (1):

-  i965: Sweep NIR after linking phase to free held memory

Dave Airlie (1):

-  r600: enable tess_input_info for TES

Dylan Baker (5):

-  docs: Add sha256 sums for 18.1.4 tarballs
-  cherry-ignore: add 4a67ce886a7b3def5f66c1aedf9e5436d157a03c
-  cherry-ignore: Add 1f616a840eac02241c585d28e9dac8f19a297f39
-  cherry-ignore: add 11712b9ca17e4e1a819dcb7d020e19c6da77bc90
-  bump version to 18.1.5

Eric Anholt (2):

-  vc4: Don't automatically reallocate a PERSISTENT-mapped buffer.
-  meson: Move xvmc test tools from unit tests to installed tools.

Harish Krupo (1):

-  egl: Fix missing clamping in eglSetDamageRegionKHR

Jan Vesely (3):

-  radeonsi: Refuse to accept code with unhandled relocations
-  clover: Report error when pipe driver fails to create compute state
-  clover: Catch errors from executing event action

Jason Ekstrand (6):

-  anv: Stop setting 3DSTATE_PS_EXTRA::PixelShaderHasUAV
-  nir/serialize: Alloc constants off the variable
-  blorp: Handle the RGB workaround more like other workarounds
-  intel/blorp: Handle 3-component formats in clears
-  intel/compiler: Account for built-in uniforms in analyze_ubo_ranges
-  spirv: Fix a couple of image atomic load/store bugs

José Fonseca (1):

-  gallium/tests: Don't ignore S3TC errors.

Karol Herbst (1):

-  nir: fix printing of vec16 type

Lepton Wu (1):

-  virgl: Fix flush in virgl_encoder_inline_write.

Lucas Stach (1):

-  st/mesa: call resource_changed when binding a EGLImage to a texture

Mauro Rossi (2):

-  radv: winsys/amdgpu: include missing pthread.h header
-  android: util/disk_cache: fix building errors in gallium drivers

Michel Dänzer (1):

-  gallium: Check pipe_screen::resource_changed before dereferencing it

Roland Scheidegger (1):

-  draw: force draw pipeline if there's more than 65535 vertices

Samuel Iglesias Gonsálvez (1):

-  anv: fix assert in anv_CmdBindDescriptorSets()

Samuel Pitoiset (3):

-  radv: make sure to wait for CP DMA when needed
-  radv: emit a dummy ZPASS_DONE to prevent GPU hangs on GFX9
-  radv: fix a memleak for merged shaders on GFX9
