Mesa 18.1.8 Release Notes / September 24 2018
=============================================

Mesa 18.1.9 is a bug fix release which fixes bugs found since the 18.1.8
release.

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

::

   0f825dc834b1b3e3d9a6c3ce58b42977f0d9a248a7627a36dd3b313ffe41a499  mesa-18.1.9.tar.gz
   55f5778d58a710a63d6635f000535768faf7db9e8144dc0f4fd1989f936c1a83  mesa-18.1.9.tar.xz

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

None

Bug fixes
---------

-  `Bug 103241 <https://bugs.freedesktop.org/show_bug.cgi?id=103241>`__
   - Anv crashes when using 64-bit vertex inputs
-  `Bug 104926 <https://bugs.freedesktop.org/show_bug.cgi?id=104926>`__
   - swrast: Mesa 17.3.3 produces: HW cursor for format 875713089 not
   supported
-  `Bug 107280 <https://bugs.freedesktop.org/show_bug.cgi?id=107280>`__
   - [DXVK] Batman: Arkham City with tessellation enabled hangs on SKL
   GT4
-  `Bug 107772 <https://bugs.freedesktop.org/show_bug.cgi?id=107772>`__
   - Mesa preprocessor matches if(def)s & endifs incorrectly
-  `Bug 107779 <https://bugs.freedesktop.org/show_bug.cgi?id=107779>`__
   - Access violation with some games
-  `Bug 107810 <https://bugs.freedesktop.org/show_bug.cgi?id=107810>`__
   - The 'va_end' call is missed after 'va_copy' in 'util_vsnprintf'
   function under windows

Changes
-------

Andrii Simiklit (4):

-  apple/glx/log: added missing va_end() after va_copy()
-  mesa/util: don't use the same 'va_list' instance twice
-  mesa/util: don't ignore NULL returned from 'malloc'
-  mesa/util: add missing va_end() after va_copy()

Bas Nieuwenhuizen (4):

-  radv: Use build ID if available for cache UUID.
-  radv: Only allow 16 user SGPRs for compute on GFX9+.
-  radv: Set the user SGPR MSB for Vega.
-  radv: Fix driver UUID SHA1 init.

Christopher Egert (1):

-  radeon: fix ColorMask

Dave Airlie (1):

-  virgl: don't send a shader create with no data. (v2)

Dylan Baker (10):

-  docs/relnotes: Add sha256 sums for mesa 18.1.8
-  cherry-ignore: Add additional 18.2 patch
-  meson: Print a message about why a libdrm version was selected
-  cherry-ignore: add another 18.2 patch
-  cherry-ignore: Add patches that don't apply cleanly and are for
   developer tools
-  cherry-ignore: Add more 18.2 patches
-  cherry-ignore: add 18.2 patchs
-  cherry-ignore: add a patch that was reverted on master
-  cherry-ignore: one final update
-  Bump version to 18.1.9

Erik Faye-Lund (2):

-  winsys/virgl: avoid unintended behavior
-  virgl: adjust strides when mapping temp-resources

Gert Wollny (1):

-  winsys/virgl: correct resource and handle allocation (v2)

Jason Ekstrand (6):

-  anv/pipeline: Only consider double elements which actually exist
-  i965: Workaround the gen9 hw astc5x5 sampler bug
-  anv: Re-emit vertex buffers when the pipeline changes
-  anv: Disable the vertex cache when tessellating on SKL GT4
-  anv: Clamp scissors to the framebuffer boundary
-  anv/query: Write both dwords in emit_zero_queries

Josh Pieper (1):

-  st/mesa: Validate the result of pipe_transfer_map in make_texture
   (v2)

Kenneth Feng (1):

-  amd: Add Picasso device id

Marek Olšák (4):

-  st/mesa: help fix stencil border color for GL_DEPTH_STENCIL textures
-  radeonsi: fix HTILE for NPOT textures with mipmapping on SI/CI
-  r600: fix HTILE for NPOT textures with mipmapping
-  radeonsi: fix printing a BO list into ddebug reports

Mathias Fröhlich (1):

-  tnl: Fix green gun regression in xonotic.

Mauro Rossi (3):

-  android: broadcom/genxml: fix collision with intel/genxml header-gen
   macro
-  android: broadcom/cle: add gallium include path
-  android: broadcom/cle: export the broadcom top level path headers

Michal Srb (1):

-  st/dri: don't set queryDmaBufFormats/queryDmaBufModifiers if the
   driver does not implement it

Michel Dänzer (1):

-  loader/dri3: Only wait for back buffer fences in dri3_get_buffer

Pierre Moreau (1):

-  nvir: Always split 64-bit IMAD/IMUL operations

Sergii Romantsov (1):

-  intel: compiler option msse2 and mstackrealign

Timothy Arceri (1):

-  glsl: fixer lexer for unreachable defines
