Mesa 10.6.5 Release Notes / August 22, 2015
===========================================

Mesa 10.6.5 is a bug fix release which fixes bugs found since the 10.6.4
release.

Mesa 10.6.5 implements the OpenGL 3.3 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
3.3. OpenGL 3.3 is **only** available if requested at context creation
because compatibility contexts are not supported.

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

::

   afe290fc7af75a25df5ee52396a9f09e5dba85fb3e159304bdda265b8564b0d4  mesa-10.6.5.tar.gz
   fb6fac3c85bcfa9d06b8dd439169f23f0c0924a88e44362e738b99b1feff762f  mesa-10.6.5.tar.xz

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

None

Bug fixes
---------

This list is likely incomplete.

-  `Bug 85252 <https://bugs.freedesktop.org/show_bug.cgi?id=85252>`__ -
   Segfault in compiler while processing ternary operator with void
   arguments
-  `Bug 91570 <https://bugs.freedesktop.org/show_bug.cgi?id=91570>`__ -
   Upgrading mesa to 10.6 causes segfault in OpenGL applications with
   GeForce4 MX 440 / AGP 8X
-  `Bug 91610 <https://bugs.freedesktop.org/show_bug.cgi?id=91610>`__ -
   [BSW] GPU hang for spec.shaders.point-vertex-id gl_instanceid divisor

Changes
-------

Adam Jackson (1):

-  glx: Fix \__glXWireToEvent for BufferSwapComplete

Alex Deucher (2):

-  radeonsi: add new OLAND pci id
-  radeonsi: properly set the raster_config for KV

Emil Velikov (4):

-  docs: add sha256 checksums for 10.6.4
-  vc4: add missing nir include, to fix the build
-  Revert "radeonsi: properly set the raster_config for KV"
-  Update version to 10.6.5

Frank Binns (1):

-  egl/x11: don't abort when creating a DRI2 drawable fails

Ilia Mirkin (3):

-  nouveau: no need to do tnl wakeup, state updates are always hooked up
-  gm107/ir: indirect handle goes first on maxwell also
-  nv50,nvc0: take level into account when doing eng2d multi-layer blits

Jason Ekstrand (4):

-  meta/copy_image: Stash off the scissor
-  mesa/formats: Only do byteswapping for packed formats
-  mesa/formats: Fix swizzle flipping for big-endian targets
-  mesa/formats: Don't flip channels of null array formats

Marek Olšák (3):

-  radeonsi: fix polygon offset scale
-  r600g: fix polygon offset scale
-  r600g: allow setting geometry shader sampler states

Neil Roberts (1):

-  i965/bdw: Fix setting the instancing state for the SGVS element

Oded Gabbay (2):

-  mesa: clear existing swizzle info before bitwise-OR
-  mesa/formats: don't byteswap when building array formats

Renaud Gaubert (1):

-  glsl: avoid compiler's segfault when processing operators with void
   arguments
