Mesa 19.1.4 Release Notes / August 7, 2019
==========================================

Mesa 19.1.4 is a bug fix release which fixes bugs found since the 19.1.3
release.

Mesa 19.1.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.
Compatibility contexts may report a lower version depending on each
driver.

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

::

   a6d268a7d9edcfd92b6da80f2e34e6e0a7baaa442efbeba2fc66c404943c6bfb  mesa-19.1.4.tar.xz

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

None

Bug fixes
---------

-  `Bug 109203 <https://bugs.freedesktop.org/show_bug.cgi?id=109203>`__
   - [cfl dxvk] GPU Crash Launching Monopoly Plus (Iris Plus 655 / Wine
   + DXVK)
-  `Bug 109524 <https://bugs.freedesktop.org/show_bug.cgi?id=109524>`__
   - "Invalid glsl version in shading_language_version()" when trying to
   run directX games using wine
-  `Bug 110309 <https://bugs.freedesktop.org/show_bug.cgi?id=110309>`__
   - [icl][bisected] regression on piglit arb_gpu_shader_int
   64.execution.fs-ishl-then-\* tests
-  `Bug 110663 <https://bugs.freedesktop.org/show_bug.cgi?id=110663>`__
   - threads_posix.h:96: undefined reference to \`pthread_once'
-  `Bug 110955 <https://bugs.freedesktop.org/show_bug.cgi?id=110955>`__
   - Mesa 18.2.8 implementation error: Invalid GLSL version in
   shading_language_version()
-  `Bug 111010 <https://bugs.freedesktop.org/show_bug.cgi?id=111010>`__
   - Cemu Shader Cache Corruption Displaying Solid Color After commit
   11e16ca7ce0
-  `Bug 111071 <https://bugs.freedesktop.org/show_bug.cgi?id=111071>`__
   - SPIR-V shader processing fails with message about "extra dangling
   SSA sources"
-  `Bug 111075 <https://bugs.freedesktop.org/show_bug.cgi?id=111075>`__
   - Processing of SPIR-V shader causes device hang, sometimes leading
   to system reboot
-  `Bug 111097 <https://bugs.freedesktop.org/show_bug.cgi?id=111097>`__
   - Can not detect VK_ERROR_OUT_OF_DATE_KHR or VK_SUBOPTIMAL_KHR when
   window resizing

Changes
-------

Andres Rodriguez (1):

-  radv: fix queries with WAIT_BIT returning VK_NOT_READY

Andrii Simiklit (2):

-  intel/compiler: don't use a keyword struct for a class fs_reg
-  meson: add a warning for meson < 0.46.0

Arcady Goldmints-Orlov (1):

-  anv: report HOST_ALLOCATION as supported for images

Bas Nieuwenhuizen (3):

-  radv: Set correct metadata size for GFX9+.
-  radv: Take variable descriptor counts into account for buffer
   entries.
-  radv: Fix descriptor set allocation failure.

Boyuan Zhang (4):

-  radeon/uvd: fix poc for hevc encode
-  radeon/vcn: fix poc for hevc encode
-  radeon/uvd: enable rate control for hevc encoding
-  radeon/vcn: enable rate control for hevc encoding

Caio Marcelo de Oliveira Filho (1):

-  anv: Remove special allocation for anv_push_constants

Connor Abbott (1):

-  nir: Allow qualifiers on copy_deref and image instructions

Daniel Schürmann (1):

-  spirv: Fix order of barriers in SpvOpControlBarrier

Dave Airlie (1):

-  st/nir: fix arb fragment stage conversion

Dylan Baker (1):

-  meson: allow building all glx without any drivers

Emil Velikov (1):

-  egl/drm: ensure the backing gbm is set before using it

Eric Anholt (1):

-  freedreno: Fix data races with allocating/freeing struct ir3.

Eric Engestrom (5):

-  nir: don't return void
-  util: fix no-op macro (bad number of arguments)
-  gallium+mesa: fix tgsi_semantic array type
-  scons+meson: suppress spammy build warning on MacOS
-  nir: remove explicit nir_intrinsic_index_flag values

Francisco Jerez (1):

-  intel/ir: Fix CFG corruption in opt_predicated_break().

Ilia Mirkin (4):

-  gallium/vl: fix compute tgsi shaders to not process undefined
   components
-  nv50,nvc0: update sampler/view bind functions to accept NULL array
-  nvc0: allow a non-user buffer to be bound at position 0
-  nv50/ir: handle insn not being there for definition of CVT arg

Jason Ekstrand (6):

-  intel/fs: Stop stack allocating large arrays
-  anv: Disable transform feedback on gen7
-  isl/formats: R8G8B8_UNORM_SRGB isn't supported on HSW
-  anv: Don't claim support for 24 and 48-bit formats on IVB
-  intel/fs: Use ALIGN16 instructions for all derivatives on gen <= 7
-  intel/fs: Implement quad_swap_horizontal with a swizzle on gen7

Juan A. Suarez Romero (2):

-  docs: add sha256 checksums for 19.1.3
-  Update version to 19.1.4

Kenneth Graunke (4):

-  mesa: Fix ReadBuffers with pbuffers
-  egl: Quiet warning about front buffer rendering for pixmaps/pbuffers
-  egl: Make the 565 pbuffer-only config single buffered.
-  egl: Only expose 565 pbuffer configs if X can export them as DRI3
   images

Lionel Landwerlin (5):

-  anv: fix use of comma operator
-  nir: add access to image_deref intrinsics
-  spirv: wrap push ssa/pointer values
-  spirv: propagate access qualifiers through ssa & pointer
-  spirv: don't discard access set by vtn_pointer_dereference

Mark Menzynski (1):

-  nvc0/ir: Fix assert accessing null pointer

Nataraj Deshpande (1):

-  egl/android: Update color_buffers querying for buffer age

Nicolas Dufresne (1):

-  egl: Also query modifiers when exporting DMABuf

Rhys Perry (1):

-  ac/nir: fix txf_ms with an offset

Samuel Pitoiset (1):

-  radv: fix crash in vkCmdClearAttachments with unused attachment

Tapani Pälli (1):

-  mesa: add glsl_type ref to one_time_init and decref to atexit

Yevhenii Kolesnikov (1):

-  main: Fix memleaks in mesa_use_program
