# Mesa 23.3.1 Release Notes / 2023-12-13

Mesa 23.3.1 is a bug fix release which fixes bugs found since the 23.3.0 release.

Mesa 23.3.1 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 23.3.1 implements the Vulkan 1.3 API, but the version reported by the apiVersion property of the VkPhysicalDeviceProperties struct depends on the particular driver being used.

## SHA256 checksum

    6e48126d70fdb3f20ffeb246ca0c2e41ffdc835f0663a03d4526b8bf5db41de6  mesa-23.3.1.tar.xz

## New features

- None

## Bug fixes

- [23.3.0] Parallel build failure - fatal error: vtn_generator_ids.h: No such file or directory

- crocus: Assertion failures in NIR divergence analysis

- anv: Resident Evil 2 hang

- Mesa 23.3.0 release build fails on 22.04 LTS

- Segfault in SDL2 game when using environment variables: `SDL_VIDEODRIVER=wayland DRI_PRIME=1`

- Mesa 22.3.0 SEGFAULT in nir shader creation for r600 cards on FreeBSD

- anv: piglit tests regressed for zink

- aco,radeonsi: GFX11 dEQP-GLES31.functional.separate_shader.random.0 fail when AMD_DEBUG=useaco

## Changes

Alessandro Astone (1):

- asahi: Use the compat version of qsort_r

Boris Brezillon (2):

- panfrost: Fix multiplanar YUV texture descriptor emission on v9+

- panfrost: Don’t leak NIR compute shaders

Dave Airlie (1):

- nvk: fix transform feedback with multiple saved counters.

David Heidelberg (1):

- docs: drop unused manual optimizations override

Eric Engestrom (16):

- docs: add release notes for 23.3.0

- docs: add sha256sum for 23.3.0

- .pick_status.json: Update to 0e1bee73eb401e3b9c39f4777f775dd3ab9a08e2

- .pick_status.json: Mark e0c2244ea9b162788c781398743919956b0d55b7 as denominated

- bin/gen_release_notes: fix regex raw string

- .pick_status.json: Update to ebaede788e05ea3a22bfd4f054c85053247de9ff

- amd/ci: radeonsi is gl, not vk

- .pick_status.json: Update to 1700c6af6f807f801382c6cea5cb7136563e8bad

- nvk: use `||` instead of `|` between bools

- .pick_status.json: Update to 5bf68ab70133edd264f832f4a133288b8b45f66d

- ci: fix rules for formatting checks

- v3d: drop leftover from “move v3d_tiling to common”

- .pick_status.json: Update to 9ab59574ef162393f89c36980a366eeb8ecccb64

- .pick_status.json: Update to a921a69010102c6e35267066dc8a50461cae46fd

- spirv: add missing build dependency

- ci: fix kdl commit fetch

Erik Faye-Lund (1):

- meson: work around meson 0.62 issue

Felix bridault (1):

- radv: use 32bit va range for sparse descriptor buffers

Georg Lehmann (1):

- aco: don’t optimize DPP across more than one block

Gert Wollny (2):

- r600/sfn: Fix usage of std::string constructor

- r600/sfn: Don’t try to re-use iterators when the set is made empty

Ian Romanick (1):

- nir: Handle divergence for decl_reg

José Expósito (1):

- zink: initialize drm_fd to -1

José Roberto de Souza (1):

- anv: Fix handling of host_cached_coherent bos in gen9 lp in older kernels

Juan A. Suarez Romero (2):

- ci/baremetal: make BM_BOOTCONFIG optional

- ci: do not mount already mounted directories

Juston Li (2):

- venus: implement vkGet[Device]ImageSparseMemoryRequirements

- venus: fix query feedback copy sanitize off by 1

Kenneth Graunke (2):

- anv: Drop 3/4 of PPGTT size restriction for sys heap size calculation

- anv: Don’t report more memory available than the heap size

Konstantin Seurer (1):

- nir/lower_vars_to_scratch: Remove all unused derefs

Lionel Landwerlin (5):

- intel/fs: fix incorrect register flag interaction with dynamic interpolator mode

- intel/aux_map: introduce ref count of L1 entries

- anv: use main image address to determine ccs compatibility

- anv: track & unbind image aux-tt binding

- anv: remove heuristic preferring dedicated allocations

Mario Kleiner (1):

- v3d: add B10G10R10[X2/A2]_UNORM to format table.

Mark Collins (1):

- meson: Update lua wrap to 5.4.6-4

Pierre-Eric Pelloux-Prayer (1):

- egl/wayland: set the correct modifier for the linear_copy image

Rhys Perry (1):

- nir/loop_analyze: skip if basis/limit/comparison is vector

Rob Clark (2):

- freedreno/drm: Fix zombie BO import harder

- freedreno/a6xx: Fix NV12+UBWC import

Rohan Garg (1):

- intel/compiler: infer the number of operands using lsc_op_num_data_values

Samuel Pitoiset (2):

- radv: fix bogus interaction between DGC and RT with descriptor bindings

- radv: set combinedImageSamplerDescriptorCount to 1 for multi-planar formats

Sil Vilerino (3):

- d3d12: Fix d3d12_tcs_variant_cache_destroy leak in d3d12_context

- d3d12: Fix screen->winsys leak in d3d12_screen

- d3d12: d3d12_create_fence_win32 - Fix double refcount bump

Sviatoslav Peleshko (1):

- anv: Fix MI_ARB_CHECK calls in generated indirect draws optimization

Yiwei Zhang (3):

- venus: fix async compute pipeline creation

- venus: properly initialize ring monitor initial alive status

- driconfig: add a workaround for Hades (Vulkan backend)