Mesa 26.2.3 Release Notes / 2026-09-16

Mesa 26.2.3 is a bug fix release which fixes bugs found since the 26.2.2 release.

Mesa 26.2.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 26.2.3 implements the OpenCL 3.1 API, but the version reported by the CL_DEVICE_VERSION, CL_DEVICE_NUMERIC_VERSION and CL_DEVICE_OPENCL_C_ALL_VERSIONS clGetDeviceInfo queries depends on the particular driver being used.

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

SHA checksums

TBD.

New features

  • None

Bug fixes

  • NVK memory leak in CmdCopyBufferToImage in 26.2.0, 26.2.1 and 26.2.2.

  • RADV: GPU page fault (null pointer) with RT emulation on Polaris (RX 580 2048SP). Issue between 26.1.6 and 26.2.1

  • [ANV][ARL][bisected] Visual graphics glitches in Counter-Strike 2 starting in Mesa 26.2.x

  • [radeonsi] Minecraft Voxy mod: Distant water rendering issue on Vega iGPU and RDNA2

  • `hevc_vaapi` on AMD (radeonsi/gfx1150) stalls to ~1 fps when input frames carry A/53 (CEA-608/708) closed-caption side data

  • anv: Test fails in simulation due to coarse pixel shading state

  • asahi: 16-bit blending into RGBA32F produces zero due to 32-bit tilebuffer load

  • asahi: Some textures do not render correctly in Portals 2

  • libvulkan_intel.so crash with X-Plane 12.4.3 on Intel Arc B580

  • nircache causes glxgears/eglgears to segfault under Zink

  • vulkan,radv: when using descriptor heaps, input attachments in SPIR-V are incorrectly detected as read only instead of read write

Changes

Alyssa Rosenzweig (1):

  • mesa/st: fix incorrect VS input bases

Andrzej Datczuk (1):

  • ac/sqtt, radv, radeonsi: Fix SQTT buffer size alignment issues

Benjamin Cheng (1):

  • radeonsi: set stencil clear to 0 when enabling TC compat

Caio Oliveira (1):

  • spirv: Preserve all fp_math_ctrl bits in vtn_handle_alu default case

Christian Gmeiner (2):

  • etnaviv: Do not abort on unsupported stencil-only blits

  • etnaviv: Use RS depth formats only on halti5+

Danylo Piliaiev (5):

  • tu: Wait for XFB query writes to land before making it available

  • tu: Synchronizing with CmdCopyQueryPoolResult should wait for mem writes

  • tu: Use p_atomic_read to read from query’s slot->available

  • tu: Fix PACKED + alignas(8) application to the same struct on older GCC

  • tu: Handle lazy memory in GetDeviceMemoryOpaqueCaptureAddress

David Rosca (2):

  • va: Drop HEVC SEI parsing

  • radv/video: Fix setting session parameters override info

Dmitry Baryshkov (8):

  • ir3: keep byte SSBO offsets before a6xx

  • freedreno/a5xx: only 2D-blit between compatible formats

  • freedreno/a5xx: program NUMNONPOSVAR with position’s VPC location

  • freedreno/a4xx+a5xx: clamp the texture buffer size

  • freedreno: keep the separate stencil out of the shadow blit

  • freedreno/a5xx: blit the separate stencil plane too

  • ir3: skip the phis of non-GPR registers in the minimum pressure bound

  • freedreno/a5xx: bound blits by the layer count, not the depth

Emma Anholt (3):

  • tu: Drop TRANSFER_SRC/DST from bufferFeatures.

  • tu: Fix the sType of the returned VkFragmentShadingRateKHRs.

  • tu: Fix destroy order of autotune vs perfcounters in failure path.

Eric Engestrom (4):

  • docs: add sha sum for 26.2.2

  • .pick_status.json: Update to 9f42ea1239025d3f93d9bbf7405340adcec94419

  • .pick_status.json: Mark f45825a0c724d06f231a1210484fe9af71a3ffab as denominated

  • .pick_status.json: Mark 859fcc3b74f831bbb9151f06d055ddfd45cc6e50 as denominated

Frank Binns (3):

  • pvr: add missing GPU architecture to device info for some BVNCs

  • pvr: fixup ordering of (has_)usc_itr_parallel_instances in dev info

  • zink: replace blend and vertex elements state hashes with IDs

Ganesh Belgur Ramachandra (1):

  • amd: add gfx1171

Georg Lehmann (2):

  • nir/opt_uub: fix imax optimization

  • aco: avoid mubuf bounds checking for global

Iván Briano (1):

  • anv: fix push constant range gathering for dynamic offsets

Jiyu Yang (1):

  • clc: fix fd leak in open_clc_data() on map failure

Juston Li (1):

  • anv/android: Don’t disable AUX_BIT importing Xe2+ CCS mod images

Karmjit Mahil (1):

  • tu: Fix sparse bind column merging

Karol Herbst (2):

  • nir/serialize: set info.spec to NULL

  • rusticl/event: properly implement CL_PROFILING_INFO_NOT_AVAILABLE error condition

Kostadin Shishmanov (1):

  • aco: add missing <algorithm> include

Leon Perianu (1):

  • pvr: Fix primitive restart for non-indexed draws

Lionel Landwerlin (6):

  • anv: fix 64bit values promoted to inline register

  • brw: use sampler from incoming instructions for combiner

  • anv: fixup dynamic buffers with ANV_DEBUG=bindless

  • anv: emit CPB setup at device initialization

  • anv: fix synchronization of acceleration structure query writes

  • anv: add missing handling for PIPELINE_STAGE_2_COPY_INDIRECT

Liviu Prodea (1):

  • clc: Fix static link with llvm and clang 23

Marek Olšák (1):

  • radv: fix sRGB color clears via compute

Mary Guillemard (1):

  • asahi: Add the same workaround as Firefox for Zen browser

Matt Turner (2):

  • mesa/st: use concrete formats for lowered YUV plane views

  • dri: use concrete formats for the GR88, 8888 and sRGB DRM formats

Mel Henning (2):

  • nvk: Fix memory leak in compute save/restore

  • nvk: Fix leak of dev->heap and dev->replay_heap

Michael Cheng (1):

  • util/drirc: change min_value to max_value typo

Mike Blumenkrantz (2):

  • llvmpipe: force alignment for Windows texture allocations

  • ntv: improve deref type matching when converting vri derefs

Pavel Ondračka (1):

  • r300: don’t propagate negation through absolute values

Rhys Perry (4):

  • radv: don’t set muladd_support_prefers_split when ffma is unsupported

  • radv: initialize shader_blake3 for shader objects

  • radv: hash descriptor set layouts in radv_hash_graphics_spirv_to_nir

  • radeonsi: use ac_shader_config::lds_size from ACO

Rohan Garg (1):

  • nir: derive color_is_dual_source from declared vars

Ryan Mckeever (1):

  • panvk/v6-7: include required layouts in host image copy layouts

Ryan Zhang (3):

  • wsi/wayland: skip feedback dispatch when nothing is outstanding

  • panvk: initialize CPU tracing categories

  • panvk/utrace: replace bogus assert with static_assert in perfetto begin event callback

Samuel Pitoiset (3):

  • radv: fix L0_CACHE_HIT_RATIO perf counter on GFX11

  • radv: return VK_ERROR_DEVICE_LOST if any shader executed OpAbortKHR

  • radv: consider shader abort faults with VK_KHR_device_fault

Silvio Vilerino (2):

  • d3d12: Fix d3d12 video encoder batch leaks

  • d3d12: Fix d3d12 video decoder batch leaks

Takuro Ashie (1):

  • panfrost: Reallocate BO when linear layout grows

Tapani Pälli (3):

  • anv: change bindless debug env variable to be drirc option

  • anv: toggle anv_always_bindless for XPlane-12

  • anv: fix cmd_buffer_set_indirect_stride on ARL

Vandomas (1):

  • zink: put the buffer view cache key first

Vinson Lee (2):

  • glsl: initialize pixel_local_storage and yuv in ir_variable constructor

  • glsl: initialize is_global in ir_variable_refcount_entry constructor

Víctor Manuel Jáquez Leal (1):

  • radv/video: report hasOverrides on AV1 encoding

Yiwei Zhang (1):

  • panvk: place coherent memory type before cached type

rajaryan1492007 (1):

  • spirv: Don’t implicitly set ACCESS_NON_WRITEABLE for input attachments