Mesa 17.0.4 Release Notes / April 17, 2017
==========================================

Mesa 17.0.4 is a bug fix release which fixes bugs found since the 17.0.3
release.

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

::

   c4c34ba05d48f76b45bc05bc4b6e9242077f403d63c4f0c355c7b07786de233e  mesa-17.0.4.tar.gz
   1269dc8545a193932a0779b2db5bce9be4a5f6813b98c38b93b372be8362a346  mesa-17.0.4.tar.xz

Next release
------------

Mesa 17.0.5 is expected in approximatelly two weeks. See the release
:ref:`calendar <calendar>` for details.

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

None

Bug fixes
---------

-  `Bug 99515 <https://bugs.freedesktop.org/show_bug.cgi?id=99515>`__ -
   SIGSEGV MAPERR on Android nougat-x86 with mesa 17.0.0rc
-  `Bug 100391 <https://bugs.freedesktop.org/show_bug.cgi?id=100391>`__
   - SachaWillems deferredmultisampling asserts
-  `Bug 100452 <https://bugs.freedesktop.org/show_bug.cgi?id=100452>`__
   - push_constants host memory leak when resetting command buffer
-  `Bug 100582 <https://bugs.freedesktop.org/show_bug.cgi?id=100582>`__
   - [GEN8+] piglit.spec.arb_stencil_texturing.glblitframebuffer
   corrupts state.gl_texture\* assertions

Changes
-------

Alex Deucher (1):

-  radeonsi: add new polaris10 pci id

Alex Smith (1):

-  radv: Invalidate L2 for TRANSFER_WRITE barriers

Andres Gomez (1):

-  docs: add sha256 checksums for 17.0.3

Craig Stout (1):

-  anv/cmd_buffer: fix host memory leak

Emil Velikov (3):

-  Revert "cherry-ignore: add the Flush after unmap in gbm/dri fix"
-  Revert "freedreno: fix memory leak"
-  Update version to 17.0.4

Fabio Estevam (1):

-  loader: Move non-error message to debug level

Ilia Mirkin (4):

-  nvc0/ir: fix LSB/BFE/BFI implementations
-  nvc0/ir: fix overwriting of offset register with interpolateAtOffset
-  nvc0: increase texture buffer object alignment to 256 for pre-GM107
-  nouveau: when mapping a persistent buffer, synchronize on former
   xfers

Jason Ekstrand (5):

-  i965/fs: Always provide a default LOD of 0 for TXS and TXL
-  anv/pipeline: Properly handle unset gl_Layer and gl_ViewportIndex
-  anv/blorp: Align vertex buffers to 64B
-  i965/blorp: Align vertex buffers to 64B
-  i965/blorp: Bump the batch space estimate

Jerome Duval (2):

-  haiku: build fixes around debug defines
-  haiku/winsys: fix dt prototype args

Julien Isorce (4):

-  winsys/radeon: check null in radeon_cs_create_fence
-  winsys/radeon: check null return from radeon_cs_create_fence in
   cs_flush
-  radeon: initialize hole variable before calling container_of
-  radeon_drm_bo: explicitly check return value of drmCommandWriteRead

Kenneth Graunke (4):

-  i965: Document the sad story of the kernel command parser.
-  i965: Set screen->cmd_parser_version to 0 if we can't write
   registers.
-  i965: Skip register write detection when possible.
-  i965: Set kernel features before computing max GL version.

Marek Olšák (1):

-  targets: export radeon winsys_create functions to silence LLVM
   warning

Michal Srb (1):

-  st: Add cubeMapFace parameter to st_finalize_texture.

Thomas Hellstrom (1):

-  gbm/dri: Flush after unmap
