Mesa 22.0.3 Release Notes / 2022-05-04
======================================

Mesa 22.0.3 is a bug fix release which fixes bugs found since the 22.0.2 release.

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

::

   9f2b30f5276a9abaf71aafc6979685e2636189de1a87aea2c9e69744a6d0ebb9  mesa-22.0.3.tar.xz


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

- None


Bug fixes
---------

- freedreno: fragile location packing can break cull/clip distance
- turnip: dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.* failures
- piglit ext_image_dma_buf_import.ext_image_dma_buf_import*  regression
- piglit ext_image_dma_buf_import.ext_image_dma_buf_import*  regression
- Grid Autosport via proton/vulkan: glitches on the grass on amdgpu, fine on amdgpu-pro
- [Bisected] r600: Big performance regression on some games
- Huge amount of anon_inode:sync_file file descriptor created
- anv regressions from commit 57445adc891 "anv: Re-enable CCS_E on TGL+"
- NIR validation failed after nir_opt_if
- intel: integer_mad_hi / integer_mad_sat / integer_mul_hi produce invalid results
- Aperture Desk Job rendering artifacts Intel TGL
- intel: integer_sub_sat produces stack corruption / OpISubBorrow compilation issue
- r300/rv530: "Black rendering" of Baldur's Gate Dark Alliance in Xbox emulator CXBX-R under wine with Gallium Nine and RADEON_DEBUG=use_tgsi
- radv/aco: xfb bug
- Occasional flicker corruption in Rage 2, e.g. after loading, with ACO on RX 5700 XT
- RADV: Quake 2 RTX v1.6.0 Corrupted Graphics
- '../src/amd/common/ac_surface.c:1575: void ac_copy_dcc_equation(const struct radeon_info \*, ADDR2_COMPUTE_DCCINFO_OUTPUT \*, struct gfx9_meta_equation \*): assertion "dcc->equation.gfx9.num_bits <= ARRAY_SIZE(equation->u.gfx9.bit)" failed'


Changes
-------

Chia-I Wu (1):

- util: Keep quiet NaNs quiet when converting to half float.

Dave Airlie (2):

- llvmpipe: add user memory resources to the debug global list.
- vulkan/wsi: keep allocate queue families in image, just don't fill them

Dylan Baker (21):

- docs: Add sha256sums for 22.0.2
- .pick_status.json: Update to 5e84335fb578f03938468bb8ac0029f68349d330
- .pick_status.json: Update to a6a4bf0f1eae36cb68d5c67653ac013fe0fbde8a
- .pick_status.json: Update to ef9d97ec1f9d9834db3066b5a7ec67ce6d4ecd86
- .pick_status.json: Update to f17d3a125126dd7e0f1c2072545976cec1eeb1c8
- .pick_status.json: Update to 1dc697942af7254798f83583f5788e1abf136d27
- .pick_status.json: Mark d5870c45ae82c091e72f1258920aa54974e19a36 as denominated
- .pick_status.json: Mark f348103fce4484b891a58bf3147b71e3a3558135 as denominated
- .pick_status.json: Mark a4f502de3228ec37dfcaa38225077ec3709d74ea as denominated
- .pick_status.json: Mark 1d250b7b959d2a206280e4f83db05780a83e0927 as denominated
- .pick_status.json: Mark 4eca6e3e5d2b9426d6357e9af1514a0c942638f0 as denominated
- .pick_status.json: Mark 3dcb80da9d6d34e567680ef7fecd24aab4537e8a as denominated
- .pick_status.json: Mark dd078d13cb6b445ad02087a3e80433ef053b7490 as denominated
- .pick_status.json: Mark bbdf22ce136a7f02a8bd6c7e646d12a7e10db18d as denominated
- .pick_status.json: Mark 8806f444a5c005d20cd4ec4ed42e508ffd9cb1da as denominated
- .pick_status.json: Mark 373c8001d6615d70d112c7526ea4f4953257b6b9 as denominated
- .pick_status.json: Mark a056cbc691843861da417b5bcea9f871fdceeb19 as denominated
- .pick_status.json: Mark fc5edf9b68159288baa22c055e471de958812312 as denominated
- .pick_status.json: Mark e509598470c000498c3e1328e012142d9047e292 as denominated
- .pick_status.json: Update to 53a94fbdd57acbbe2bc745901cbfeca968e25273
- .pick_status.json: Update to 2505afc430c6b151e7e4243503953ba0b0a2c842

Erik Faye-Lund (3):

- meson: remove unused defines
- gallium/xlib: fix stale comment
- mesa: add missing error-path

Filip Gawin (1):

- r300: Print warning when stubbing derivatives

Gert Wollny (1):

- r600: Allow eight bit, three channel formats for vertex buffers

Icecream95 (1):

- panfrost: Fix pack_32_2x16 implementation

Iván Briano (1):

- vulkan/wsi/wayland: Fix double free on error condition

Jason Ekstrand (4):

- util/set: Respect found in search_or_add_pre_hashed
- nir: Lower all bit sizes of usub_borrow
- vulkan: Set signals[i].stageMask = ALL_COMMANDS for QueueSubmit2 wrapping
- spirv: Handle Op*MulExtended for non-32-bit types

Jordan Justen (3):

- vulkan/wsi/x11: Use atomic_int with sent_image_count
- iris: Fix assertion meant to only target the clear-color stride
- iris: Fix assertion meant to only target the clear-color stride

Juan A. Suarez Romero (1):

- mesa: unref syncobj after wait_sync

Konstantin Seurer (2):

- radv: Fix barriers with cp dma
- radv: Fix lowering ignore_ray_intersection

Lionel Landwerlin (6):

- nir/divergence: handle load_global_block_intel
- intel: fixup number of threads per EU on XeHP
- anv: fix acceleration structure descriptor template writes
- anv: skip acceleration structure in binding table emission
- anv: fix clflush usage on utrace copy batch
- anv: fix invalid utrace memcpy l3 config on gfx < 11

Marek Olšák (3):

- nir: fix an uninitialized variable valgrind warning in nir_group_loads
- ac/surface: fix an addrlib race condition on gfx9
- winsys/amdgpu: fix a mutex deadlock when we fail to create pipe_screen

Mike Blumenkrantz (10):

- wgl: support GL 4.6
- zink: fix tcs control barriers for use without vk memory model
- zink: fix semantics mask for compute control barriers
- zink: add synchronization for buffer clears
- mesa/st: clamp GL_RENDERBUFFER to GL_TEXTURE_2D for sparse queries
- glsl/nir: set new_style_shadow for sparse tex ops as necessary
- zink: fix group memory barrier emission
- vulkan: bump layer api versions to current vk header version
- llvmpipe: disable compute statistics queries if queries are disabled
- llvmpipe: disable statistic queries during draw if queries are disabled

Nanley Chery (2):

- Revert "anv: Disable CCS_E for some 8/16bpp copies on TGL+"
- iris: Return a 64B stride for clear color plane

Paulo Zanoni (1):

- iris: fix race condition during busy tracking

Pavel Ondračka (1):

- r300: set PIPE_BIND_CONSTANT_BUFFER for const_uploader

Pierre-Eric Pelloux-Prayer (1):

- ac/surface: adjust gfx9.pitch[*] based on surf->blk_w

Samuel Pitoiset (6):

- radv: only apply enable_mrt_output_nan_fixup for 32-bit float MRTs
- aco: fix load_barycentric_at_{sample,offset} on GFX6-7
- nir: fix marking XFB varyings as always active IO
- nir: mark XFB varyings as unmoveable to prevent them to be remapped
- radv: fix handling divisor == 0 with dynamic vertex input state
- radv: enable radv_disable_sinking_load_input_fs for Grid Autosport

Sviatoslav Peleshko (1):

- anv: workaround apps that assume full subgroups without specifying it

Tapani Pälli (1):

- isl: disable mcs (and mcs+ccs) for color msaa on DG2

Timothy Arceri (1):

- nir: fix sorting before assigning varying driver locations

Yevhenii Kolesnikov (1):

- nir: Remove single-source phis before opt_if_loop_last_continue
