Mesa 21.2.2 Release Notes / 2021-09-21 — The Mesa 3D Graphics Library latest documentation

# Mesa 21.2.2 Release Notes / 2021-09-21

Mesa 21.2.2 is a bug fix release which fixes bugs found since the 21.2.1 release.

Mesa 21.2.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.2.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

    c4aaf1bf974217ed825e1c536de6ab72a4e266d44bcf69fc4ec499039f99e5c4  mesa-21.2.2.tar.xz

## New features

- None

## Bug fixes

- RADV: consistent crash in Splitgate

- [RADV] The game “Aliens: Fireteam Elite” start crashing after commit 2e56e2342094e8ec90afa5265b1c43503f662939

- llvmpipe doesn’t compile a shader with an inner scope in a for loop

- llvmpipe doesn’t compile the increment of a for a loop

- Mesa 21.2.1 implementation error: unexpected state[0] in make_state_flags()

- freedreno: regression in org.skia.skqp.SkQPRunner#gles_localmatriximagefilter

- [Radeonsi] VA-API Encoding no longer works on AMD PITCAIRN

- turnip: Geometry flickering in Genshin Impact after 83e9a7fbcf53b90d0de66985dbbf91986fc7b05d

- OSMesa problem resizing

- Memory leak: si_get_shader_binary_size is missing a call to ac_rtld_close

- dEQP-GLES3.stress.draw.unaligned_data.random.4 segfault

- gl_DrawID is incorrect for glMultiDrawElementsBaseVertex/glMultiDrawElementsIndirect

- i915: GPU hang when doing FB fetch and gl_FragDepth write in one shader

- ../mesa-9999/src/amd/compiler/aco_instruction_selection.cpp:10009:30: error: ‘exchange’ is not a member of ‘std’

- radv: disable DCC for displayable images with storage on navi12/14

- RADV: Menu static/artifacts in Doom Eternal

- Crash happens when testing GL_PIXEL_PACK_BUFFER

- panfrost G31 - Cathedral crash- opengl 2.1 game (I guess)

- panfrost / armv7 - crash with mesa newer than 21.0.3

- freedreno C++14 build error

- llvmpipe doesn’t compile a valid shader with an useless switch

- GetFragDataLocation(prog, “gl_FragColor”) generates INVALID_OPERATION, but specs don’t say it should

## Changes

Adrian Bunk (1):

- util/format: NEON is not available with the soft-float ABI

Alyssa Rosenzweig (24):

- panfrost: Handle non-dithered clear colours

- panfrost: Disable shader-assisted indirect draws

- pan/bi: Don’t set td in blend shaders

- pan/bi: Correct the sr_count on +ST_TILE

- pan/bi: Extract load_sample_id to a helper

- pan/bi: Set the sample ID for blend shader LD_TILE

- pan/bi: Use CLPER_V6 on Mali G31

- panfrost: Remove unneeded quirks from T760

- panfrost: Use blendable check for tib read check

- pan/mdg: Insert moves before writeout when needed

- panfrost: Zero initialize blend_shaders

- panfrost: Fix NULL dereference in allowlist code

- panfrost: Protect the variants array with a lock

- panfrost: Don’t use ralloc for resources

- panfrost: Move bo->label assignment into the lock

- panfrost: Switch resources from an array to a set

- panfrost: Cache number of users of a resource

- panfrost: Maintain a bitmap of active batches

- panfrost: Add foreach_batch iterator

- panfrost: Prefer batch->resources to rsrc->users

- panfrost: Remove rsrc->track.users

- panfrost: Remove writer = NULL assignments

- panfrost: Replace writers pointer with hash table

- panfrost: Raise maximum texture size

Bas Nieuwenhuizen (2):

- util/fossilize_db: Don’t corrupt keys during entry read.

- nir: Avoid visiting instructions multiple times in nir_instr_free_and_dce.

Boris Brezillon (2):

- panfrost: Add explicit padding to pan_blend_shader_key

- panfrost: v7 does not support RGB32_UNORM textures

Connor Abbott (4):

- ir3/ra: Fix available bitset for live-through collect srcs

- ir3/ra: Handle huge merge sets

- ir3/lower_pcopy: Use right flags for src const/immed

- ir3/lower_pcopy: Set entry->done in the swap loop

Corentin Noël (1):

- glx: Prevent crashes when an extension isn’t found

Daniel Schürmann (1):

- aco: fix p_insert lowering with 16bit sources

Danylo Piliaiev (1):

- turnip: re-emit vertex params after they are invalidated

Dave Airlie (5):

- vulkan/wsi/sw: wait for image fence before submitting to queue

- crocus: copy views before adjusting

- crocus: add missing line smooth bits.

- crocus: add missing fs dirty on reduced prim change.

- crocus/gen7: add missing IVB/GT2 geom shader workaround.

Dylan Baker (11):

- docs: add SHA256 sum for mesa 21.2.1

- .pick_status.json: Update to 35c3f5f08b7b11f3896412fb5778f127be329615

- .pick_status.json: Update to 8e5e70bb3de7f75ab1b039e2cec2975ba59e4af7

- .pick_status.json: Update to 572ed2249465acd4c5f8a229d504a48cbddf95a5

- .pick_status.json: Update to 71e748ad2443c373bb090fa1da2626da367b1d20

- .pick_status.json: Update to 9bc61108d73db4e614dda2a27750ff80165eedbb

- .pick_status.json: Update to a6a89aaa2f2943532d99d9bc7b80106a1740f237

- .pick_status.json: Update to f4b61e90617f19ca1b8a3cfe046bac5801081057

- .pick_status.json: Update to 076c8f041a63c74c31d9f541684860628a8b9979

- .pick_status.json: Update to b58d6eaf1174aab296c4230e3895c65cba4bd9e3

- .pick_status.json: Update to 7244aa19806cec5265e1e219cac1a99b0d3c62c6

Ed Martin (1):

- winsys/radeonsi: Set vce_encode = true when VCE found

Emma Anholt (2):

- llvmpipe: Free CS shader images on context destroy.

- llvmpipe: Fix leak of CS local memory with 0 threads.

Erik Faye-Lund (4):

- gallivm: fix texture-mapping with 16-bit result

- gallium/nir/tgsi: fixup indentation

- gallium/nir/tgsi: initialize file_max for inputs

- lavapipe: fix reported subpixel precision for lines

Filip Gawin (2):

- nir: fix shadowed variable in nir_lower_bit_size.c

- nir: fix ifind_msb_rev by using appropriate type

Ian Romanick (3):

- util: Add and use functions to calculate min and max int for a size

- nir/lower_bit_size: Support add_sat and sub_sat

- nir/lower_gs_intrinsics: Return progress if append_set_vertex_and_primitive_count makes progress

Icecream95 (1):

- pan/bi: Extend bi_add_nop_for_atest for tilebuffer loads

Ilia Mirkin (3):

- mesa: don’t return errors for gl_* GetFragData* queries

- glsl: fix explicit-location ifc matching in presence of array types

- freedreno: use OUT_WFI for emit_marker

Faith Ekstrand (1):

- anv: Set CONTEXT_PARAM_RECOVERABLE to false

Jordan Justen (1):

- intel/isl: Enable MOCS 61 for external surfaces on TGL

Juan A. Suarez Romero (1):

- broadcom/compiler: force a last thrsw for spilling

Lionel Landwerlin (2):

- nir: prevent peephole from generating invalid NIR

- intel/fs: fix framebuffer reads

Mao, Marc (1):

- iris: declare padding for iris_vue_prog_key

Marcin Ślusarz (2):

- glsl: propagate errors from *=, /=, +=, -= operators

- glsl: break out early if compound assignment’s operand errored out

Marek Olšák (6):

- mesa: remove unused indices parameter from validate functions

- mesa: fix gl_DrawID with indirect multi draws using user indirect buffer

- mesa: skip draw calls with unaligned indices

- radeonsi: fix a memory leak in si_get_shader_binary_size

- radeonsi: disable DCC stores on Navi12-14 for displayable DCC to fix corruption

- radeonsi: strengthen the VGT_FLUSH condition in begin_new_gfx_cs

Mike Blumenkrantz (8):

- nir/lower_vectorize_tess_levels: set num_components for vectorized loads

- zink: fix pipeline caching

- radv: use pool stride when copying single query results

- zink: free local shader nirs on program free

- zink: destroy shader modules on program free to avoid leaking

- tgsi_to_nir: force int type for LAYER output

- util/primconvert: force restart rewrites if original primtype wasn’t supported

- zink: fix ZINK_MAX_DESCRIPTORS_PER_TYPE to stop exploding the stack

Nanley Chery (1):

- intel/blorp: Fix Gfx7 stencil surface state valign

Neha Bhende (1):

- svga/drm: use pb_usage_flags instead of pipe_map_flags in vmw_svga_winsys_buffer_map

Quantum (1):

- main: allow all external textures for BindImageTexture

Rhys Perry (4):

- aco: include utility in isel

- aco: don’t constant propagate to DPP instructions

- aco/spill: add temporary operands of exec phis to next_use_distances_end

- nir: fix serialization of loop/if control

Samuel Pitoiset (5):

- radv: fix fast clearing depth images with mips on GFX10+

- radv: fix copying depth+stencil images on compute

- radv: disable DCC image stores on Navi12-14 for displayable DCC corruption

- radv: fix determining the maximum number of waves that can use scratch

- radv/llvm: fix using Wave32

Simon Ser (4):

- etnaviv: add stride, offset and modifier to resource_get_param

- panfrost: implement resource_get_param

- vc4: implement resource_get_param

- v3d: implement resource_get_param

Timothy Arceri (6):

- glsl: fix variable scope for instructions inside case statements

- nir: move nir_block_ends_in_break() to nir.h

- mesa: fix mesa_problem() call in _mesa_program_state_flags()

- glsl: fix variable scope for loop-expression

- glsl: handle scope correctly when inlining loop expression

- glsl: fix variable scope for do-while loops

Timur Kristóf (7):

- aco: Fix to_uniform_bool_instr when operands are not suitable.

- aco: Emit zero for the derivatives of uniforms.

- aco: Unset 16 and 24-bit flags from operands in apply_extract.

- nir: Fix local_invocation_index upper bound for non-compute-like stages.

- aco: Fix invalid usage of std::fill with std::array.

- aco: Use Builder reference in emit_copies_block.

- aco: Skip code paths to emit copies when there are no copies.

Vinson Lee (1):

- freedreno: Require C++17.

Yevhenii Kharchenko (1):

- iris: fix layer calculation for TEXTURE_3D ReadPixels() on mip-level>0

liuyujun (1):

- gallium: fix surface->destroy use-after-free

mattvchandler (1):

- gallium/osmesa: fix buffer resizing