Mesa 18.2.3 Release Notes / October 19, 2018
============================================

Mesa 18.2.3 is a bug fix release which fixes bugs found since the 18.2.2
release.

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

::

   0e13e2342eae74d8848df23595c4bb4b2f8874c9e1213b8466b1fbfa7ef99375  mesa-18.2.3.tar.gz
   e2bf83c17e1abdecb1ee81af22652e27e9aa38f963e95e60f34275cc0376304f  mesa-18.2.3.tar.xz

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

None

Bug fixes
---------

-  `Bug 99507 <https://bugs.freedesktop.org/show_bug.cgi?id=99507>`__ -
   Corrupted frame contents with Vulkan version of DOTA2, Talos
   Principle and Sascha Willems' demos when they're run Vsynched in
   fullscreen
-  `Bug 107857 <https://bugs.freedesktop.org/show_bug.cgi?id=107857>`__
   - GPU hang - GS_EMIT without shader outputs
-  `Bug 107926 <https://bugs.freedesktop.org/show_bug.cgi?id=107926>`__
   - [anv] Rise of the Tomb Raider always misrendering, segfault and gpu
   hang.
-  `Bug 108012 <https://bugs.freedesktop.org/show_bug.cgi?id=108012>`__
   - Compiler crashes on access of non-existent member incremental
   operations

Changes
-------

Boyuan Zhang (1):

-  st/va: use provided sizes and coords for vlVaGetImage

Dave Airlie (1):

-  anv: add missing unlock in error path.

Dylan Baker (1):

-  meson: Don't allow building EGL on Windows or MacOS

Emil Velikov (5):

-  st/nine: do not double-close the fd on teardown
-  egl: make eglSwapInterval a no-op for !window surfaces
-  egl: make eglSwapBuffers\* a no-op for !window surfaces
-  vl/dri3: do full teardown on screen_destroy
-  Revert "mesa: remove unnecessary 'sort by year' for the GL
   extensions"

Eric Engestrom (1):

-  radv: add missing meson c++ visibility arguments

Fritz Koenig (1):

-  i965: Replace checks for rb->Name with FlipY (v2)

Gert Wollny (1):

-  virgl, vtest: Correct the transfer size calculation

Ilia Mirkin (4):

-  glsl: fix array assignments of a swizzled vector
-  nv50,nvc0: mark RGBX_UINT formats as renderable
-  nv50,nvc0: guard against zero-size blits
-  nvc0: fix blitting red to srgb8_alpha

Jason Ekstrand (7):

-  nir/cf: Remove phi sources if needed in nir_handle_add_jump
-  anv: Use separate MOCS settings for external BOs
-  intel/fs: Fix a typo in need_matching_subreg_offset
-  nir/from_ssa: Don't rewrite derefs destinations to registers
-  anv/batch_chain: Don't start a new BO just for BATCH_BUFFER_START
-  nir/alu_to_scalar: Use ssa_for_alu_src in hand-rolled expansions
-  intel: Don't propagate conditional modifiers if a UD source is
   negated

Juan A. Suarez Romero (2):

-  docs: add sha256 checksums for 18.2.2
-  Update version to 18.2.3

Józef Kucia (1):

-  radeonsi: avoid sending GS_EMIT in shaders without outputs

Marek Olšák (1):

-  drirc: add a workaround for ARMA 3

Samuel Pitoiset (1):

-  radv: add a workaround for a VGT hang with prim restart and strips

Tapani Pälli (1):

-  glsl: do not attempt assignment if operand type not parsed correctly

Timothy Arceri (11):

-  glsl: ignore trailing whitespace when define redefined
-  util: disable cache if we have no build-id and timestamp is zero
-  util: rename timestamp param in disk_cache_create()
-  util: add disk_cache_get_function_identifier()
-  radeonsi: use build-id when available for disk cache
-  nouveau: use build-id when available for disk cache
-  r600: use build-id when available for disk cache
-  mesa/st: add force_compat_profile option to driconfig
-  util: use force_compat_profile for Wolfenstein The Old Blood
-  util: better handle program names from wine
-  util: add drirc workarounds for RAGE

Vinson Lee (1):

-  r600/sb: Fix constant-logical-operand warning.
