Mesa 21.1.3 Release Notes / 2021-06-18
======================================

Mesa 21.1.3 is a bug fix release which fixes bugs found since the 21.1.2 release.

Mesa 21.1.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 21.1.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
---------------

::

    cbe221282670875ffd762247b6a2c95dcee91d0a34c29802c75ef761fc891e69  mesa-21.1.3.tar.xz


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

- None


Bug fixes
---------

- radv: ACO miscompiles a specific DIRT 5 shader
- Segfault in mtx_unlock/amdgpu_bo_slab_destroy
- [radeonsi] Incorrect rendering when using glDisable(GL_MULTISAMPLE) with multisample backbuffer
- kwin_x11 ring gfx_0.0.0 timeout
- [i965] regression: piglit.spec.arb_depth_buffer_float.fbo-depthstencil-gl_depth32f_stencil8-drawpixels


Changes
-------

Adam Jackson (1):

- classic/xlib: Fix the build after !9817

Bas Nieuwenhuizen (3):

- radv: Don't skip barriers that only change queues.
- radv: Actually return correct value for read-only DCC compressedness.
- radv: Allow DCC images to be compressed with foreign queues.

Dave Airlie (1):

- llvmpipe: add the interesting bit of cpu detection to the cache.

Duncan Hopkins (1):

- zink: Correct compiler issue with have_moltenvk member having been moved.

Eric Engestrom (3):

- .pick_status.json: Update to db83dc619c96c35a039f2d8a32e1a179c0f00d64
- .pick_status.json: Update to f884c2e3be363903a59dbee01868c7ad0bf0f346
- .pick_status.json: Update to 561f9ae74b2b7da06bb4830aaca8d017a3dd2746

Erik Faye-Lund (1):

- llvmpipe: fix edge-rule logic for lines

Felix DeGrood (1):

- anv: Clear all pending stall after pipe flush

Ian Romanick (1):

- util: Zero out all of mask in util_set_thread_affinity

Icecream95 (1):

- panfrost: Use first_tiler to check if tiling is needed

Jason Ekstrand (2):

- intel/vec4: Also use MOV_FOR_SCRATCH for swizzle resolves
- anv: Handle OOM in the pinned path in anv_reloc_list_add

Matt Turner (1):

- sparc: Avoid some redefinition warnings

Mike Blumenkrantz (6):

- zink: ci updates
- anv: fix availability for copying timestamp query results
- util/vbuf: fix buffer overrun in attribute conversions
- zink: fix caching of shader variants with inlined uniforms
- zink: use scissor region for discarding clears during blit
- zink: fix typo that's definitely not at all embarrassing or anything like that

Neha Bhende (1):

- svga: Initialize pipe_shader_state for transform shaders

Petr Vaněk (1):

- docs/install: remove one extra when

Pierre-Eric Pelloux-Prayer (6):

- frontend/dri: set PIPE_BIND_PROTECTED later
- frontend/dri: fix bool/int comparison
- radeonsi: fix encryption check for buffers
- radeonsi: add a gfx10 bug workaround for NOT_EOP
- radeonsi: dirty msaa_config on rs->multisample_enable change
- winsys/amdgpu: don't read bo->u.slab.entry after pb_slab_free

Rhys Perry (3):

- aco: do not clause NSA instructions
- aco: don't create 4 and 5 dword NSA instructions on GFX10
- aco: use v1b/v2b for ds_read_u8/ds_read_u16

Rob Clark (2):

- egl: zero is a valid fd
- freedreno/ir3: Fix use after free

Samuel Pitoiset (6):

- radv: enable RADV_DEBUG=invariantgeom for SotTR DX11/DX12 versions
- radv: emit PA_SC_CONSERVATIVE_RASTERIZATION_CNTL only on GFX9+
- aco: fix range checking for SSBO loads/stores with SGPR offset on GFX6-7
- aco: fix emitting literal offsets with SMEM on GFX7
- radv: do not launch an IB2 for secondary cmdbuf with INDIRECT_MULTI on GFX7
- radv: fix aligning the image offset by using align64()

Sergii Melikhov (1):

- util/format: Change the pointer offset.

Tony Wasserka (1):

- aco/ra: Fix off-by-one-error in print_regs

Vinson Lee (1):

- travis: Download XQuartz from GitHub.
