Mesa 21.3.2 Release Notes / 2021-12-17
======================================

Mesa 21.3.2 is a bug fix release which fixes bugs found since the 21.3.1 release.

Mesa 21.3.2 implements the OpenGL 4.6 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.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.

Mesa 21.3.2 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.

SHA256 checksum
---------------

::

    e2e7bafb8307e7abc3bf982f39382fae3619c84b45504920a21504be52f126bd  mesa-21.3.2.tar.xz


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

- None


Bug fixes
---------

- Flickering and blackscreen on Mpv and Clapper (and also low performance on glxgears)
- DXVK SIGBUS with Turnip on Poco F1 at loading to open world.
- RADV: IsHelperInvocationEXT query is not considered volatile in ACO
- [GraphicsFuzz] dEQP-VK.graphicsfuzz.stable-binarysearch-tree-nested-if-and-conditional
- [bisected] Mesa 21.3.x breaks GBM with NVIDIA closed source driver 495.44
- [DG2] dEQP-GL[45|ES31].functional.shaders.builtin_functions.pack_unpack.packhalf2x16_compute fail


Changes
-------

Alyssa Rosenzweig (1):

- panfrost: Don't shadow Mesa's fui()

Caio Oliveira (1):

- nir: Initialize nir_register::divergent

Danylo Piliaiev (1):

- turnip: Fix operator precedence in address calculation macros for queries

Dave Airlie (1):

- crocus: cleanup bo exports for external objects

Eric Engestrom (1):

- .pick_status.json: Update to a65285f54be6d756a8a558f638c18bb4f075222c

Francisco Jerez (1):

- intel/fs/xehp: Teach SWSB pass about the exec pipeline of FS_OPCODE_PACK_HALF_2x16_SPLIT.

Ian Romanick (2):

- intel/compiler: Don't predicate a WHILE if there is a CONT
- intel/stub: Silence "initialized field overwritten" warning

Jakob Bornecrantz (1):

- vulkan-device-select: Don't leak drmDevicePtr

James Jones (1):

- gbm: Don't pass default usage flags on ABIs < 1

Jason Ekstrand (3):

- crocus: wm_prog_key::key_alpha_test uses GL enums
- anv: Stop doing too much per-sample shading
- radeonsi/nir: Check for VARYING_SLOT_PRIMITIVE_ID not SYSTEM_VALUE

Lionel Landwerlin (4):

- nir/opt_deref: don't try to cast empty structures
- intel/nir: preserve access value when duping intrinsic
- nir/lower_io: include the variable access in the lowered intrinsic
- vulkan: fix missing handling of WSI memory signal

Mauro Rossi (1):

- android: add support for classic dri-drivers (v2)

Michel Zou (1):

- meson: correctly detect linker arguments

Nanley Chery (1):

- iris: Free the local cache bucket in bufmgr_destroy

Pierre-Eric Pelloux-Prayer (1):

- radeonsi: fix fast clear / depth decompression corruption

Rhys Perry (1):

- radv: have the null winsys set more fields

Roman Stratiienko (2):

- v3dv: Fix dEQP-VK.info#instance_extensions test
- v3dv: Fix V3DV_HAS_SURFACE preprocessor condition

Tapani Pälli (1):

- anv: allow VK_IMAGE_LAYOUT_UNDEFINED as final layout

Timur Kristóf (1):

- aco: Clean up and fix quad group instructions with WQM.
