Mesa 17.1.7 Release Notes / August 21, 2017
===========================================

Mesa 17.1.7 is a bug fix release which fixes bugs found since the 17.1.6
release.

Mesa 17.1.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
----------------

::

   7ca484fe3194e8185d9a20261845bfd284cc40d0f3fda690d317f85ac7b91af5  mesa-17.1.7.tar.gz
   69f472a874b1122404fa0bd13e2d6bf87eb3b9ad9c21d2f39872a96d83d9e5f5  mesa-17.1.7.tar.xz

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

None

Bug fixes
---------

-  `Bug 101334 <https://bugs.freedesktop.org/show_bug.cgi?id=101334>`__
   - AMD SI cards: Some vulkan apps freeze the system
-  `Bug 101766 <https://bugs.freedesktop.org/show_bug.cgi?id=101766>`__
   - Assertion \`!"invalid type"' failed when constant expression
   involves literal of different type
-  `Bug 102024 <https://bugs.freedesktop.org/show_bug.cgi?id=102024>`__
   - FORMAT_FEATURE_SAMPLED_IMAGE_BIT not supported for D16_UNORM and
   D32_SFLOAT
-  `Bug 102148 <https://bugs.freedesktop.org/show_bug.cgi?id=102148>`__
   - Crash when running qopenglwidget example on mesa llvmpipe win32
-  `Bug 102241 <https://bugs.freedesktop.org/show_bug.cgi?id=102241>`__
   - gallium/wgl: SwapBuffers freezing regularly with swap interval
   enabled

Changes
-------

Andres Gomez (8):

-  cherry-ignore: add "swr: use the correct variable for no undefined
   symbols"
-  cherry-ignore: add "radeon/ac: use ds_swizzle for derivs on si/cik."
-  cherry-ignore: add "configure: remove trailing "-a" in swr
   architecture teststable: 17.2 nomination only."
-  cherry-ignore: added 17.2 nominations.
-  cherry-ignore: add "radv: Handle VK_ATTACHMENT_UNUSED in color
   attachments."
-  cherry-ignore: add "virgl: drop precise modifier."
-  cherry-ignore: add "radv: handle 10-bit format clamping workaround."
-  Update version to 17.1.7

Chris Wilson (1):

-  i965/blit: Remember to include miptree buffer offset in relocs

Connor Abbott (1):

-  ac/nir: fix lsb emission

Dave Airlie (5):

-  intel/vec4/gs: reset nr_pull_param if DUAL_INSTANCED compile failed.
-  radv: avoid GPU hangs if someone does a resolve with non-multisample
   src (v2)
-  radv: fix f16->f32 denorm handling for SI/CIK. (v2)
-  radv: fix MSAA on SI gpus.
-  radv: force cs/ps/l2 flush at end of command stream. (v2)

Emil Velikov (3):

-  docs: add sha256 checksums for 17.1.6
-  egl/x11: don't leak xfixes_query in the error path
-  egl: avoid eglCreatePlatform*Surface{EXT,} crash with invalid dpy

Eric Anholt (1):

-  util: Fix build on old glibc.

Frank Richter (3):

-  st/mesa: fix a null pointer access
-  st/wgl: check for negative delta in wait_swap_interval()
-  gallium/os: fix os_time_get_nano() to roll over less

Ilia Mirkin (3):

-  glsl/ast: update rhs in addition to the var's constant_value
-  nv50/ir: fix srcMask computation for TG4 and TXF
-  nv50/ir: fix TXQ srcMask

Jason Ekstrand (1):

-  anv/formats: Allow sampling on depth-only formats on gen7

Karol Herbst (1):

-  nv50/ir: fix ConstantFolding with saturation

Kenneth Graunke (1):

-  i965: Delete pitch alignment assertion in
   get_blit_intratile_offset_el.

Marek Olšák (2):

-  ac: fail shader compilation if libelf is replaced by an incompatible
   version
-  radeonsi: disable CE by default

Tim Rowley (1):

-  swr/rast: Fix invalid casting for calls to Interlocked\* functions
