Mesa 17.2.7 Release Notes / December 14, 2017
=============================================

Mesa 17.2.7 is a bug fix release which fixes bugs found since the 17.2.6
release.

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

::

   e8d837a1cd55014e636e9caf6c75cfbe1b3e4be9ab3fa125f5ef38398aa12e97  mesa-17.2.7.tar.gz
   50cfdea8df55045797b4d0409591c04c784d9551c4da09b8178874dbe5a37a68  mesa-17.2.7.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 101378 <https://bugs.freedesktop.org/show_bug.cgi?id=101378>`__
   - interpolateAtSample check for input parameter is too strict
-  `Bug 102006 <https://bugs.freedesktop.org/show_bug.cgi?id=102006>`__
   - gstreamer vaapih264enc segfault
-  `Bug 102435 <https://bugs.freedesktop.org/show_bug.cgi?id=102435>`__
   - [skl,kbl] [drm] GPU HANG: ecode 9:0:0x86df7cf9, in csgo_linux64
   [4947], reason: Hang on rcs, action: reset
-  `Bug 102552 <https://bugs.freedesktop.org/show_bug.cgi?id=102552>`__
   - Null dereference due to not checking return value of
   util_format_description
-  `Bug 102677 <https://bugs.freedesktop.org/show_bug.cgi?id=102677>`__
   - [OpenGL CTS] KHR-GL45.CommonBugs.CommonBug_PerVertexValidation
   fails
-  `Bug 103098 <https://bugs.freedesktop.org/show_bug.cgi?id=103098>`__
   - [OpenGL CTS] KHR-GL45.enhanced_layouts.varying_structure_locations
   fails
-  `Bug 103227 <https://bugs.freedesktop.org/show_bug.cgi?id=103227>`__
   - [G965 G45 ILK]
   ES2-CTS.gtf.GL2ExtensionTests.texture_float.texture_float regression
-  `Bug 103393 <https://bugs.freedesktop.org/show_bug.cgi?id=103393>`__
   - glDispatchComputeGroupSizeARB : gl_GlobalInvocationID.x !=
   gl_WorkGroupID.x \* gl_LocalGroupSizeARB.x + gl_LocalInvocationID.x
-  `Bug 103412 <https://bugs.freedesktop.org/show_bug.cgi?id=103412>`__
   - gallium/wgl: Another fix to context creation without prior
   SetPixelFormat()
-  `Bug 103616 <https://bugs.freedesktop.org/show_bug.cgi?id=103616>`__
   - Increased difference from reference image in shaders
-  `Bug 103626 <https://bugs.freedesktop.org/show_bug.cgi?id=103626>`__
   - [SNB] ES3-CTS.functional.shaders.precision
-  `Bug 103732 <https://bugs.freedesktop.org/show_bug.cgi?id=103732>`__
   - [swr] often gets stuck in piglit's glx-multi-context-single-window
   test
-  `Bug 103909 <https://bugs.freedesktop.org/show_bug.cgi?id=103909>`__
   - anv_allocator.c:113:1: error: static declaration of ‘memfd_create’
   follows non-static declaration
-  `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

Andres Gomez (2):

-  docs: add sha256 checksums for 17.2.6
-  docs: remove bug 103626 from fix list as per 17.2.6

Ben Crocker (2):

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

Dave Airlie (1):

-  r600/sb: handle jump after target to end of program. (v2)

Denis Pauk (1):

-  gallium/{r600, radeonsi}: Fix segfault with color format (v2)

Eduardo Lima Mitev (3):

-  glsl_parser_extra: Add utility to copy symbols between symbol tables
-  glsl: Use the utility function to copy symbols between symbol tables
-  glsl/linker: Check that re-declared, inter-shader built-in blocks
   match

Emil Velikov (3):

-  gl_table.py: add extern C guard for the generated glapitable.h
-  cherry-ignore: radeonsi: allow DMABUF exports for local buffers
-  Update version to 17.2.7

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.

Frank Richter (1):

-  gallium/wgl: fix default pixel format issue

George Kyriazis (1):

-  swr: Handle resource across context changes

Gert Wollny (2):

-  r600: Emit EOP for more CF instruction types
-  r600/sb: do not convert if-blocks that contain indirect array access

Ilia Mirkin (1):

-  glsl: fix derived cs variables

James Legg (1):

-  nir/opcodes: Fix constant-folding of bitfield_insert

Jason Ekstrand (1):

-  i965: Disable regular fast-clears (CCS_D) on gen9+

Juan A. Suarez Romero (1):

-  glsl: add varying resources for arrays of complex types

Julien Isorce (1):

-  st/va: change frame_idx from array to hash table

Kai Wasserbäch (1):

-  docs: Point to apt.llvm.org for development snapshot packages

Kenneth Graunke (3):

-  meta: Initialize depth/clear values on declaration.
-  meta: Fix ClearTexture with GL_DEPTH_COMPONENT.
-  i965: Fix Smooth Point Enables.

Marek Olšák (3):

-  radeonsi: fix layered DCC fast clear
-  radeonsi/gfx9: fix importing shared textures with DCC
-  radeonsi: flush the context after resource_copy_region for buffer
   exports

Matt Turner (4):

-  i965/fs: Handle negating immediates on MADs when propagating
   saturates
-  util: Fix SHA1 implementation on big endian
-  util: Fix disk_cache index calculation on big endian
-  i965/fs: Unpack count argument to 64-bit shift ops on Atom

Nicolai Hähnle (3):

-  radeonsi: fix the R600_RESOURCE_FLAG_UNMAPPABLE check
-  glsl: allow any l-value of an input variable as interpolant in
   interpolateAt\*
-  glsl: fix interpolateAtXxx(some_vec[idx], ...) with dynamic idx

Pierre Moreau (1):

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

Tapani Pälli (1):

-  mesa/gles: adjust internal format in glTexSubImage2D error checks

Timothy Arceri (1):

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

Vadym Shovkoplias (2):

-  intel/blorp: Fix possible NULL pointer dereferencing
-  glx/dri3: Remove unused deviceName variable

Vinson Lee (1):

-  anv: Check if memfd_create is already defined.
