Mesa 26.2.4 Release Notes / 2026-10-01¶
Mesa 26.2.4 is a bug fix release which fixes bugs found since the 26.2.3 release.
Mesa 26.2.4 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.4 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.4 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¶
SHA256: bce5f7fbebb934373b86c999a064d52fb5065878dc57f287f95346648ec832e9 mesa-26.2.4.tar.xz
SHA512: 42e793561661a567e72c7324d071ab9f82d3a9f1e000827ed989b8d5fcc2cd16e50c02808d43465b3135c25a3cad77649ba0bf9e35d95b848f8fc8d8b9ce327c mesa-26.2.4.tar.xz
New features¶
None
Bug fixes¶
“TY the Tasmanian Tiger 3” always crashes in the same cutscene on amd gpus
VK_VALVE_video_encode_rgb_conversion always outputs limited color range
X-Plane 12 (2014780) Flickering artifacts on textures with Intel Arc B580
[DG2] ANV: Enshrouded (1203620) - character invisible, transparent billboards rendered as opaque spheres on discrete Arc GPU
[RADV] GFX8: Black screen in UE5 DX12 (Half Sword) after commit 15990c78b8e (“allow DCC for concurrent images without DCC stores”)
anv: VK_EXT_calibrated_timestamps returns a GPU timestamp ahead of CPU time on Arc B390 (Panther Lake), crashing Unreal Engine 5.8
asahi: Mario Kart WiiCompiled graphical glitches
dEQP-VK.image.swapchain_mutable.wayland.2d.r8g8b8a8_srgb_r8g8b8a8_unorm_draw_texture_format_list crash
radeonsi/va: vaGetImage to I420/YUYV fails with UNSUPPORTED_RT_FORMAT since Mesa 26.2 on GPUs with VPE (Radeon 890M)
radeonsi: GPU page fault (SQC) / context loss when using Iris shaderpacks on RX 9070 XT (gfx1201)
radv: NULL deref in radv_get_vgt_shader_key after binding a compute shader object
radv: PCIe 4.0 x4 fails the “PCIe 3.0 x8” bandwidth check for VRAM command buffers by 4 MB/s (rounded per-lane constants); up to 13% decode loss in llama.cpp
radv: UNREACHABLE clearing DEPTH|STENCIL when the dynamic render pass has no stencil attachment
radv: VkDescriptorUpdateTemplate takes a pointer to the set_layout memory
Changes¶
Allen Ballway (1):
intel/compiler: fix bounds check in Wa_18035690555
Benjamin Cheng (1):
ac/video: Adjust HEVC min_qp for VCN1/VCN2
Boris Brezillon (2):
pan/kmod: Make sure all executables live in the same 4G VA range
panvk: Don’t downcast CS func address to a 32-bit VA
Caio Oliveira (1):
brw: Re-lower immediate offsets after mesh nir_opt_offsets
Christian Gmeiner (3):
lavapipe: Guard BDA handle arrays with bda_lock
etnaviv: Capture varyings not read by the fragment shader
etnaviv: Keep transform feedback active across flushes
Cooper Morgan (3):
vulkan/wsi: keep present timing records that do not fit the output array
vulkan/wsi: keep GOOGLE display timing records that do not fit
anti-lag: convert GPU timestamps to ns in double precision
David Rosca (8):
vulkan/video: Don’t update OBU size with NULL data_ptr
vl/bitstream: Fix coding ue() for large numbers
vl/bitstream: Don’t use internal buffer for size only use
vl/bitstream: Move overflow check to vl_bitstream_write_byte_start_code
radv/video: Fix handling size limit in GetEncodedVideoSessionParameters
va: Drop format support checks in vlVaPostProc
va: Don’t check format support in EndPicture for processing
radv/video: Only report BT709/Limited support for RGB conversion on VCN5
David Sanders (1):
radv: reset compute pipeline after IES in vkCmdExecuteGeneratedCommandsEXT
Dmitry Baryshkov (3):
freedreno/a2xx: don’t type-pun the immediate values through a cast
tu: resolve wide formats with a shader on A702
freedreno/qrisc: fix hang on a650 / a660 firmware
Eric Engestrom (2):
docs: add sha sum for 26.2.3
.pick_status.json: Update to 30da39187d8d3cf03c58ecd2bebb497b84501f51
Eric R. Smith (1):
pvr: move assert for buffer usage
Georg Lehmann (4):
aco/sched_vopd: work around GFX11 VOPD interlock hazard
aco/optimizer: do not truncate constants before resolving extracts
aco/opcodes: add dest/src types for VOPD opcodes
aco/insert_fp_mode: handle both vopd opcodes
Glenn Kennard (1):
nv30: Fix for loops in fragment shaders on nv40
Helen Koike (1):
vulkan/overlay: Draw on the present queue when possible
Ian Romanick (1):
brw: Only HALT for terminate_if of non-helper pixels
Icenowy Zheng (3):
gallivm: fix enablement of RISC-V Zbs extension
vulkan/wsi: support allocating more memory for buffers
meson: list MIPS(64) in llvm_has_mcjit list
Job Noorman (2):
ir3: interpret const @load/store_global_offset offset as unsigned
nir/lower_tex: copy texture/sampler_non_uniform flags
Jose Maria Casanova Crespo (2):
vc4: helper vc4_get_clip_window() for the clip window computation
vc4: skip draws whose clip window is empty
Jyotiranjan Bhuyan (1):
radeonsi: invalidate I$/SMEM$/VMEM$ at IB start on gfx12
Kajal Kajal (2):
freedreno/a6xx: upload a dummy sampler when textures but no samplers bound
rusticl/kernel: emit image/texture barriers after a kernel launch
Konstantin Seurer (1):
radv/rt: Restore hit attribs after rejecting AABBs
Lionel Landwerlin (6):
anv: respect bit_size/num_component from the IR with acceleration structures
blorp: fix shader kernel pointer with multi size kernels
anv: add missing constant cache invalidation in DGC path
nir/lower_input_attachments: add support for heap subpass image load
anv: disable DRM_XE_DEVICE_QUERY_ENGINE_CYCLES with UnrealEngine 5.8
vulkan/wsi: add missing usage2 flags
Lorenzo Rossi (2):
pan/bi: Fix spill cost overestimation
kraid/opt_copy_prop: Fix zero-extension on 64-bit swizzles
Luigi Santivetti (2):
pvr: speculative fix for out-of-bound access of winsys_heaps
pvr: set the UM stride when querying heap static areas
Marek Olšák (1):
radv: fix checking whether a FS is present
Matt Turner (11):
dri: allocate MSAA color buffers for drisw image loader buffers
llvmpipe: don’t skip draw’s viewport clipping without the linear rasterizer
mesa: use a byte-array format for GL_RGBA8 texture buffers
mesa: store boolean custom glGet values in value_bool
mesa: pack GL_MAX_COMBINED_DIMENSIONS without depending on byte order
dri: describe GR1616 as R16G16_UNORM
util: fix the Z32_FLOAT_S8X24_UINT clear value on big-endian
util/format: store R11G11B10_FLOAT and R9G9B9E5_FLOAT in host byte order
util/astc: read the 128-bit block as little-endian words
util/format: make the FXT1 codec independent of host byte order
gallivm: reinterpret image texels using the shader’s format qualifier
Mike Blumenkrantz (9):
lavapipe: independently calculate src/dst blit depth
lavapipe: add more layouts to lvp_host_copy_image_layouts
lavapipe: handle planar views as rendering attachments
llvmpipe: use os_free_aligned for non-vma case
lavapipe: update returned size in GetPipelineCacheData
zink: don’t claim VRAM on cpu implementations
zink: check swapchain timline when pruning
zink: stop leaking swapchains
zink: clamp present regions to 0x0 when out of bounds
Mikhail Mlhcnn (2):
panvk/csf: flush the FAU stores before indirect draws read them
panvk/csf: give compute jobs the TLS size of the shared allocation
Oliver Clarke (1):
asahi/agx: Add shift mask for bitfield_extract and fused shift ops
Patrick Gaskin (1):
egl: don’t clobber an initialized display’s device in eglGetPlatformDisplay
Randy Palamar (1):
aco/insert_fp_mode: fix rounding mode for fma_mixhi_f16
Rhys Perry (1):
aco/ra: check next register against bounds in subdword get_reg_simple path
Ryan Zhang (2):
panvk: validate descriptor counts in shader deserialization
panvk/csf: check malloc return values in queue submit storage init
Samuel Pitoiset (12):
radv: fix initializing the DCC predication value when stores aren’t supported
radv: fix initializing DCC with mipmaps on GFX8
radv: disable binning correctly on GFX9-11
radv: fix a typo when computing the binning size on GFX10-11.7
radv: add radv_disable_binning_gfx11 and enable for Sunset Overdrive
nir/lower_abort: fix payload alignment to 8-bytes
radv: do not abort when the app specifies an invalid modifier
radv: do not abort when a GPU hang report is created with deviceFaultVendorBinary
radv: fix depth/stencil aspects for resolves
radv: fix immutable samplers lifetime with descriptor update templates
radv: fix dirtying graphics shaders when shader objects are bound
radv: ignore aspects that have no effects during clears
Tapani Pälli (1):
anv: add additional heuristic to simd32 assumption pass
Timothy Arceri (1):
nir: temporarily disable floating point exception flags
Tupili Krishna Gowtham Reddy (1):
freedreno/a6xx: enable f16 infinities for freedreno driver
Valentine Burley (2):
nir/lower_subgroups: Fix vote lowering with vector ballots
ir3: Lower quad votes
Vinson Lee (1):
pps: Initialize Counter member variable units
Vinícius (1):
ac/gpu_info: make PCIe 4.0 and 5.0 lane bandwidth exact multiples of 3.0
Yiwei Zhang (1):
pan/kmod: dummy BO is per VM for emulated sparse
joe.wang (1):
radv: also apply the DiRT 4 HiZ workaround profile to the native port
matthewperiut (1):
venus: honor the virtio-gpu blob alignment