Mesa 17.3.1 Release Notes / December 21, 2017
=============================================

Mesa 17.3.1 is a bug fix release which fixes bugs found since the 17.3.0
release.

Mesa 17.3.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 **only** available if requested at context creation
because compatibility contexts are not supported.

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

::

   b0bb0419dbe3043ed4682a28eaf95721f427ca3f23a3c2a7dc77dbe8a3b6384d  mesa-17.3.1.tar.gz
   9ae607e0998a586fb2c866cfc8e45e6f52d1c56cb1b41288253ea83eada824c1  mesa-17.3.1.tar.xz

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

None

Bug fixes
---------

-  `Bug 94739 <https://bugs.freedesktop.org/show_bug.cgi?id=94739>`__ -
   Mesa 11.1.2 implementation error: bad format MESA_FORMAT_Z_FLOAT32 in
   \_mesa_unpack_uint_24_8_depth_stencil_row
-  `Bug 102710 <https://bugs.freedesktop.org/show_bug.cgi?id=102710>`__
   - vkCmdBlitImage with arrayLayers > 1 fails
-  `Bug 103579 <https://bugs.freedesktop.org/show_bug.cgi?id=103579>`__
   - Vertex shader causes compiler to crash in SPIRV-to-NIR
-  `Bug 103966 <https://bugs.freedesktop.org/show_bug.cgi?id=103966>`__
   - Mesa 17.2.5 implementation error: bad format MESA_FORMAT_Z_FLOAT32
   in \_mesa_unpack_uint_24_8_depth_stencil_row
-  `Bug 104119 <https://bugs.freedesktop.org/show_bug.cgi?id=104119>`__
   - radv: OpBitFieldInsert produces 0 with a loop counter for Insert
-  `Bug 104143 <https://bugs.freedesktop.org/show_bug.cgi?id=104143>`__
   - r600/sb: clobbers gl_Position -> gl_FragCoord

Changes
-------

Alex Smith (1):

-  radv: Add LLVM version to the device name string

Bas Nieuwenhuizen (3):

-  spirv: Fix loading an entire block at once.
-  radv: Don't advertise VK_EXT_debug_report.
-  radv: Fix multi-layer blits.

Ben Crocker (1):

-  docs/llvmpipe: document ppc64le as alternative architecture to x86.

Brian Paul (2):

-  xlib: call \_mesa_warning() instead of fprintf()
-  gallium/aux: include nr_samples in util_resource_size() computation

Bruce Cherniak (1):

-  swr: Fix KNOB_MAX_WORKER_THREADS thread creation override.

Dave Airlie (1):

-  radv: port merge tess info from anv

Emil Velikov (5):

-  docs: add sha256 checksums for 17.3.0
-  util: scons: wire up the sha1 test
-  cherry-ignore: meson: fix strtof locale support check
-  cherry-ignore: util: add mesa-sha1 test to meson
-  Update version to 17.3.1

Eric Anholt (1):

-  broadcom/vc4: Fix handling of GFXH-515 workaround with a start vertex
   count.

Eric Engestrom (1):

-  compiler: use NDEBUG to guard asserts

Fabian Bieler (2):

-  glsl: Match order of gl_LightSourceParameters elements.
-  glsl: Fix gl_NormalScale.

Gert Wollny (1):

-  r600/sb: do not convert if-blocks that contain indirect array access

James Legg (1):

-  nir/opcodes: Fix constant-folding of bitfield_insert

Jason Ekstrand (1):

-  i965: Switch over to fully external-or-not MOCS scheme

Juan A. Suarez Romero (1):

-  travis: disable Meson build

Kenneth Graunke (2):

-  meta: Initialize depth/clear values on declaration.
-  meta: Fix ClearTexture with GL_DEPTH_COMPONENT.

Leo Liu (1):

-  radeon/vce: move destroy command before feedback command

Marek Olšák (4):

-  radeonsi: flush the context after resource_copy_region for buffer
   exports
-  radeonsi: allow DMABUF exports for local buffers
-  winsys/amdgpu: disable local BOs again due to worse performance
-  radeonsi: don't call force_dcc_off for buffers

Matt Turner (2):

-  util: Assume little endian in the absence of platform-specific
   handling
-  util: Add a SHA1 unit test program

Nicolai Hähnle (1):

-  radeonsi: fix the R600_RESOURCE_FLAG_UNMAPPABLE check

Pierre Moreau (1):

-  nvc0/ir: Properly lower 64-bit shifts when the shift value is >32

Timothy Arceri (1):

-  glsl: get correct member type when processing xfb ifc arrays

Vadym Shovkoplias (2):

-  glx/dri3: Remove unused deviceName variable
-  util/disk_cache: Remove unneeded free() on always null string
