Mesa 18.1.6 Release Notes / August 13 2018
==========================================

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

Mesa 18.1.6 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
----------------

::

   580e03328ffefe1fd43b19ab7669f20d931601a1c0a4c0f8b9c65d6e81a06df3  mesa-18.1.6.tar.gz
   bb7ce759069801804fcfb8152da3457f76cd7b4e0096e4870ff5adcb5c894289  mesa-18.1.6.tar.xz

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

None

Bug fixes
---------

-  `Bug 13728 <https://bugs.freedesktop.org/show_bug.cgi?id=13728>`__ -
   [G965] Some objects in Neverwinter Nights Linux version not displayed
   correctly
-  `Bug 98699 <https://bugs.freedesktop.org/show_bug.cgi?id=98699>`__ -
   "float[a+++4 ? 1:1] f;" crashes glsl_compiler
-  `Bug 99730 <https://bugs.freedesktop.org/show_bug.cgi?id=99730>`__ -
   Metro Redux game(s) needs override for midshader extension
   declaration
-  `Bug 106382 <https://bugs.freedesktop.org/show_bug.cgi?id=106382>`__
   - Shader cache breaks INTEL_DEBUG=shader_time
-  `Bug 107117 <https://bugs.freedesktop.org/show_bug.cgi?id=107117>`__
   - mesa-18.1: regression with TFP on intel with modesettings and
   glamor acceleration
-  `Bug 107212 <https://bugs.freedesktop.org/show_bug.cgi?id=107212>`__
   - Dual-Core CPU E5500 / G45: RetroArch with reicast core results in
   corrupted graphics

Changes
-------

Adam Jackson (1):

-  glx: GLX_MESA_multithread_makecurrent is direct-only

Andres Gomez (3):

-  ddebug: use util_snprintf() in dd_get_debug_filename_and_mkdir
-  gallium/aux/util: use util_snprintf() in test_texture_barrier
-  glsl: use util_snprintf()

Christian Gmeiner (1):

-  etnaviv: fix typo in query names

Dave Airlie (1):

-  r600: reduce num compute threads to 1024.

Dylan Baker (6):

-  docs: Add sha-256 sums for 18.1.5
-  nir/meson: fix c vs cpp args for nir test
-  gallium: fix ddebug on windows
-  cherry-ignore: add patches that get-pick-list is finding in error
-  cherry-ignore: Add some additional patches that are for 18.2
-  bump version to 18.1.6

Emil Velikov (5):

-  swr: don't export swr_create_screen_internal
-  automake: require shared glapi when using DRI based libGL
-  autotools: error out when using the broken --with-{gl,
   osmesa}-lib-name
-  autotools: error out when building with mangling and glvnd
-  autotools: use correct gl.pc LIBS when using glvnd

Eric Anholt (4):

-  vc4: Fix a leak of the no-vertex-elements workaround BO.
-  vc4: Respect a sampler view's first_layer field.
-  vc4: Ignore samplers for finding uniform offsets.
-  egl: Fix leak of X11 pixmaps backing pbuffers in DRI3.

Gert Wollny (1):

-  meson, install_megadrivers: Also remove stale symlinks

Jan Vesely (2):

-  clover: Reduce wait_count in abort path.
-  clover: Don't extend illegal integer types.

Jason Ekstrand (2):

-  nir: Take if uses into account in ssa_def_components_read
-  i965/fs: Flag all slots of a flat input as flat

Jon Turney (1):

-  meson: use correct keyword to fix a meson warning

Jordan Justen (2):

-  i965, anv: Use INTEL_DEBUG for disk_cache driver flags
-  i965: Disable shader cache with INTEL_DEBUG=shader_time

Juan A. Suarez Romero (2):

-  wayland/egl: update surface size on window resize
-  wayland/egl: initialize window surface size to window size

Karol Herbst (2):

-  nir/lower_int64: mark all metadata as dirty
-  nvc0/ir: return 0 in imageLoad on incomplete textures

Kenneth Graunke (1):

-  intel: Fix SIMD16 unaligned payload GRF reads on Gen4-5.

Marek Olšák (1):

-  ac/surface: fix MSAA corruption on Vega due to FMASK tile swizzle

Mauro Rossi (2):

-  radv: generate entrypoints for VK_ANDROID_native_buffer
-  radv: move vk_format_table.c to generated sources

Olivier Fourdan (1):

-  dri3: For 1.2, use root window instead of pixmap drawable

Tapani Pälli (1):

-  glsl: handle error case with ast_post_inc, ast_post_dec

Vlad Golovkin (1):

-  swr: Remove unnecessary memset call

vadym.shovkoplias (1):

-  drirc: Allow extension midshader for Metro Redux
