Mesa 26.1.5 Release Notes / 2026-07-15

Mesa 26.1.5 is a bug fix release which fixes bugs found since the 26.1.4 release.

Mesa 26.1.5 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.1.5 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

  • A702: assertions at A6XX_TEX_MEMOBJ_4_BASE_LO

  • Celestia hit fallback on r300g from git?

  • Copy paste bug in `gallium/drivers/radeonsi/si_texture.c`

  • Issues with shadows on DOOM: The Dark Ages - Revelations DLC

  • OpenGL app deadlocks in loader_dri3_swap_buffers_msc → xcb_wait_for_special_event on radeonsi / Mesa 26.1 / X11 (Telegram Desktop)

  • Qt application TrenchBroom hangs in glXSwapBuffers in recent version of Mesa

  • [ANV][PTL] - Elden Ring (1245620) - Blue artifacts and flickering lights with raytracing enabled

  • [ANV][PTL] - Persona 3 Reload (2161700) - Blue color on some objects + reflections do not reflect

  • [RADV] REGRESSION: Lighting Bleed-through in Need for Speed games on mesa 1:26.1.1-2 ArchLinux

  • [RADV] REGRESSION: Weird graphics glitches and Lighting Bleed-through in Saints Row 2

  • [RADV] Video color artifacts in mpv

  • [radv] Regression causes black patches on the ground in DOOM The Dark Ages Revelations DLC

  • frontends/va: Build fails with libva 2.15.0

  • r600: SFN assersion failed in Transport fever 2

  • v3dv: Compute shader crashes for unknown reason

Changes

Benjamin Cheng (1):

  • ac/surface: Remove GFX10 limitation for FORCE_SWIZZLE_MODE

Boris Brezillon (1):

  • pan/kmod: Add a pan_kmod_timestamp_cycles_to_ns() helper

Caio Oliveira (1):

  • anv: Initialize shader debug archive key size

Christian Gmeiner (2):

  • etnaviv: Fix sampler view leak on unsupported texture target

  • panvk: Restore push descriptor dirty bit after meta operations

Daivik Bhatia (1):

  • nir/opt_copy_prop_vars: kill stale entries when source deref is written

Danylo Piliaiev (1):

  • tu: Enable tu_dont_care_as_load for all Kex Engine games

David Rosca (2):

  • r600/uvd: Set correct h264 chroma format

  • [26.1 only] va: Fix build with free codecs only and libva < 2.16

Eric Engestrom (5):

  • docs: add sha sum for 26.1.4

  • .pick_status.json: Update to 0ab29c1d21d56f1780bd057176c998fda738402a

  • zink/ci: drop leftover anv-cml deqp suite

  • loader: move variable to correct scope

  • radeonsi: fix truncated cache key

Faith Ekstrand (2):

  • vulkan/meta: Use z_off/scale for 2D array images as well

  • vulkan/meta: Allow resolving a 2D MSAA image to a 3D image

Filip Gawin (1):

  • nv30: fix truncated values in line_stipple_pattern

Frank Binns (1):

  • pvr: define PVR_USE_WSI_PLATFORM for xcb and xlib

Georg Lehmann (3):

  • spirv: add option to treat FMax/FMin/FClamp like NMax

  • radv: add radv_force_nan_preserve_min_max option

  • radv: enable radv_force_nan_preserve_min_max for DOOM: The Dark Ages

Gert Wollny (1):

  • r600/sfn: Drop assertions when emitting IF asm instruction

Hans-Kristian Arntzen (1):

  • radv: Consider VkImageView usage rather than VkImage usage in feedback.

Iván Briano (3):

  • brw/rt: fix max_t selection on intersection report

  • brw/rt: split HitAttribute area in pending/committed

  • brw/rt, anv: reduce maxRayHitAttributeSize

JaeHoon Lee (8):

  • v3d: fix slot and input indexing in v3d_set_global_binding

  • v3dv: report maxDrawIndirectCount of 1 without multiDrawIndirect

  • v3d: clamp transform feedback offset to buffer size

  • v3dv: report the correct dynamic storage buffer UAB limit

  • v3dv: fix blake3 key truncated to 20 bytes in pipeline cache

  • v3d: fix blake3 key truncated to 20 bytes in shader cache

  • broadcom/compiler: really enable GFXH-1625 TMUWT validation

  • vc4: fix incorrect resource unref in vc4_flush_resource

Jeremy Huddleston (1):

  • glx/apple: silence OpenGL deprecation warnings

Jose Maria Casanova Crespo (1):

  • v3dv: close the primary node fd on physical device destruction

Karmjit Mahil (1):

  • freedreno/decode,ir3: Mark decoded dwords as const

Karol Herbst (7):

  • gallium: remove PIPE_BARRIER_GLOBAL_BUFFER

  • rusticl/device: fix long vector_width queries on devices without int64 support

  • nak/sm20: fix immediate encoding for F2I and F2F

  • nir: add nir_shader_fully_linked helper

  • rusticl/kernel: handle nir shader compilation failures gracefully

  • rusticl: return Result instead of Option from convert_spirv_to_nir

  • rusticl: abort compilation if the nir shader is not fully linked

Konstantin Seurer (2):

  • vulkan: Fix ROOT_FLAGS_OFFSET_ID offset

  • radv: Store root_flags for BVH8

Lionel Landwerlin (4):

  • anv/brw: limit push constant promotion in vertex shaders

  • anv: fixup RT building barrier

  • anv: fill min_array_element with indirect descriptors

  • anv: fixup max push data delivered to shaders

Marek Olšák (5):

  • radv: disable AMD_device_coherent_memory on gfx12 due to out of order behavior

  • ac/nir: fix incorrect upper bound for view_index

  • radv: fix a rare crash with NULL PS and force_vrs_per_vertex

  • radv: use radeon_opt_set_context_reg for PA_CL_VRS_CNTL to fix random behavior

  • ac: fix a GPU hang with LLVM due to incorrect VGPRS decoding of LLVM output

Mario Kleiner (3):

  • wsi/display: Actually fix vblank-less systems for VK_EXT_present_timing.

  • hasvk: Expose VK_KHR_calibrated_timestamps.

  • wsi/display: Don’t update connector last_frame/nsec in vkGetSwapchainCounterEXT.

Mary Guillemard (1):

  • nvk: Do not enable remap in nvk_copy_indirect

Matt Turner (5):

  • nir/tests: allow relative error in compare_inexact

  • nir: fix f2u/f2i constant folding to poison NaN and out-of-range inputs

  • nir: use i2f32 for patterns with signed-extraction opcodes

  • nir: fix pack_uvec4_to_uint to mask input components to 8 bits

  • nir/tests: fall back to integer comparison when float interpretation is NaN

Mel Henning (2):

  • nvk: Fix DGC localsize computation

  • nvk: Handle large indirect stride pre-Turing

Michel Dänzer (1):

  • dri3: Increment draw->send_sbc after waiting for last presentation

Mike Blumenkrantz (6):

  • zink: unset unordered access on ordered transfer ops

  • gallium/cso: make unbind_context an explicit call

  • st/context: unbind gs shader before deleting hw select gs shaders

  • zink: always un-suspend queries on end

  • zink: fix the fix for ZINK_RENDERDOC=all

  • util/blitter: fix blitting multiple array layers

Pavel Ondračka (1):

  • r300: fix swtcl per-vertex point size

Pierre-Eric Pelloux-Prayer (1):

  • radeonsi: fix typo in si_copy_from_staging_texture

Pohsiang (John) Hsu (1):

  • d3d12: fix build break in staging/26.1 due to DirectX header issue

Rhys Perry (1):

  • radv: set RADV_CMD_DIRTY_GFX12_HIZ_WA_STATE around attachment clears

Rob Clark (2):

  • freedreno/a6xx: Don’t forget UBO driver params

  • freedreno/decode: Fix shader stats in summary mode

Ryan Mckeever (1):

  • pan/bi: check if preds are dominated by header in bi_find_loop_blocks

Sagar Ghuge (2):

  • brw: Track if CS uses fences

  • intel: Fix async compute thread limit

Sahitya Kandru (1):

  • freedreno: Modify reg_size_vec4 for a608 and a612 to 32

Samuel Pitoiset (12):

  • vulkan,anv,radv: do not crash when querying descriptor size for unsupported type

  • zink: fix a memleak in zink_init_format_props()

  • glsl: fix a memleak in link_assign_subroutine_types()

  • loader: fix a memleak

  • kopper: fix a memleak

  • zink: fix a memleak with fences

  • zink: fix a memleak with the emulated GS NIR shader

  • zink: fix a memleak with sampler state

  • pipe-loader: fix a global-buffer-overflow ASAN error when getting driconf

  • radv/meta: fix restoring descriptor heaps

  • Revert “spirv: allow mapping readonly buffers with struct members”

  • radv: force late-Z with fragment shaders that use fbfetch

Simon Perretta (3):

  • pco: allow non-pure integer formats for image xchg atomics

  • pco: lower sysvals early for fragment shaders

  • pco: allow fence ops to be legalized if they come last in a block

Stijn Tintel (1):

  • rocket: fix mmap leak in buffer map/unmap

Timur Kristóf (3):

  • radv: Wait for idle after every submission on GFX6-7

  • radeonsi: Wait for shaders and flush L2 after every submission on GFX6-7

  • Revert “radv: Mitigate GPU hang on Hawaii in Dota 2 and RotTR”

Valentine Burley (4):

  • tu: Fix uninitialized gmem_offset when a GMEM layout is impossible

  • tu: Fix capture/replay with sampler custom border color

  • tu: Disable VK_EXT_extended_dynamic_state2 patch control points on A702

  • zink: Gate tess/geom barrier stages on feature support

Vincent Cloutier (1):

  • etnaviv: use buffer resource accessor for indirect draws

Vinson Lee (4):

  • util/tests: replace sprintf with snprintf in cache tests

  • util/tests: fix unused variable warnings in cache List test

  • vulkan/screenshot-layer: replace itoa/sprintf with snprintf

  • vulkan/screenshot-layer: fix globalLock mutex leak

Wujian Sun (1):

  • mesa: Allow GL_SRGB_ALPHA_EXT as color-renderable when EXT_sRGB is supported

Yannis Juglaret (1):

  • nouveau: fix data race in nouveau_fence_ref

Yiwei Zhang (3):

  • venus/virtgpu: amend a missing sim mutex init

  • venus: fix imported sync fence payload reset upon export

  • venus: avoid renderer semaphore wait upon temp payload export

inspector-ambitious (1):

  • loader: fix loader_open_render_node_platform_devices result allocation