Mesa 13.0.1 Release Notes / November 14, 2016
=============================================

Mesa 13.0.1 is a bug fix release which fixes bugs found since the 13.0.0
release.

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

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

::

   7cbb91dead05cde279ee95f86e8321c8e1c8fc9deb88f12e0f587672a10d88c5  mesa-13.0.1.tar.gz
   71962fb2bf77d33b0ad4a565b490dbbeaf4619099c6d9722f04a73187957a731  mesa-13.0.1.tar.xz

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

None

Bug fixes
---------

-  `Bug 97715 <https://bugs.freedesktop.org/show_bug.cgi?id=97715>`__ -
   [ILK,G45,G965] piglit.spec.arb_separate_shader_objects.misc api error
   checks
-  `Bug 98012 <https://bugs.freedesktop.org/show_bug.cgi?id=98012>`__ -
   [IVB] Segfault when running Dolphin twice with Vulkan
-  `Bug 98512 <https://bugs.freedesktop.org/show_bug.cgi?id=98512>`__ -
   radeon r600 vdpau: Invalid command stream: texture bo too small

Changes
-------

Adam Jackson (2):

-  glx/glvnd: Don't modify the dummy slot in the dispatch table
-  glx/glvnd: Fix dispatch function names and indices

Andreas Boll (1):

-  glx/windows: Add wgl.h to the sources list

Anuj Phogat (1):

-  i965: Fix GPU hang related to multiple render targets and alpha
   testing

Chih-Wei Huang (1):

-  android: avoid using libdrm with host modules

Darren Salt (1):

-  radv/pipeline: Don't dereference NULL dynamic state pointers

Dave Airlie (8):

-  radv: expose xlib platform extension
-  radv: fix dual source blending
-  Revert "st/vdpau: use linear layout for output surfaces"
-  radv: emit correct last export when Z/stencil export is enabled
-  ac/nir: add support for discard_if intrinsic (v2)
-  nir: add conditional discard optimisation (v4)
-  radv: enable conditional discard optimisation on radv.
-  radv: fix GetFenceStatus for signaled fences

Emil Velikov (6):

-  docs: add sha256 checksums for 13.0.0
-  amd/addrlib: limit fastcall/regparm to GCC i386
-  anv: use correct .specVersion for extensions
-  radv: use correct .specVersion for extensions
-  radv: Suffix the radeon_icd file with the host CPU
-  Update version to 13.0.1

Eric Anholt (1):

-  vc4: Use Newton-Raphson on the 1/W write to fix glmark2 terrain.

Francisco Jerez (1):

-  nir: Flip gl_SamplePosition in nir_lower_wpos_ytransform().

Fredrik Höglund (1):

-  radv: add support for anisotropic filtering on VI+

Jason Ekstrand (21):

-  anv/device: Return DEVICE_LOST if execbuf2 fails
-  vulkan/wsi/x11: Better handle wsi_x11_connection_create failure
-  vulkan/wsi/x11: Clean up connections in finish_wsi
-  anv: Better handle return codes from anv_physical_device_init
-  intel/blorp: Use wm_prog_data instead of hand-rolling our own
-  intel/blorp: Pass a brw_stage_prog_data to upload_shader
-  anv/pipeline: Put actual pointers in anv_shader_bin
-  anv/pipeline: Properly cache prog_data::param
-  intel/blorp: Emit all the binding tables
-  anv/device: Add an execbuf wrapper
-  anv: Add a cmd_buffer_execbuf helper
-  anv: Don't presume to know what address is in a surface relocation
-  anv: Add a new bo_pool_init helper
-  anv/allocator: Simplify anv_scratch_pool
-  anv: Initialize anv_bo::offset to -1
-  anv/batch_chain: Improve write_reloc
-  anv: Add an anv_execbuf helper struct
-  anv/batch: Move last_ss_pool_bo_offset to the command buffer
-  anv: Move relocation handling from EndCommandBuffer to QueueSubmit
-  anv/cmd_buffer: Take a command buffer instead of a batch in two
   helpers
-  anv/cmd_buffer: Enable a CS stall workaround for Sky Lake gt4

Kenneth Graunke (2):

-  glsl: Update deref types when resizing implicitly sized arrays.
-  mesa: Fix pixel shader scratch space allocation on Gen9+ platforms.

Kristian Høgsberg (1):

-  anv: Do relocations in userspace before execbuf ioctl

Marek Olšák (4):

-  egl: use util/macros.h
-  egl: make interop ABI visible again
-  glx: make interop ABI visible again
-  radeonsi: fix an assertion failure in
   si_decompress_sampler_color_textures

Nicolai Hähnle (4):

-  radeonsi: fix BFE/BFI lowering for GLSL semantics
-  glsl: fix lowering of UBO references of named blocks
-  st/glsl_to_tgsi: fix dvec[34] loads from SSBO
-  st/mesa: fix the layer of VDPAU surface samplers

Steven Toth (3):

-  gallium/hud: fix a problem where objects are free'd while in use.
-  gallium/hud: close a previously opened handle
-  gallium/hud: protect against and initialization race

Timothy Arceri (1):

-  mesa/glsl: delete previously linked shaders earlier when linking
