Mesa 25.2.8 Release Notes / 2025-12-04

Mesa 25.2.8 is a bug fix release which fixes bugs found since the 25.2.7 release.

Mesa 25.2.8 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 25.2.8 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: 097842f3e49d996868b38688db87b006f7d4541e93ce86d2f341d8b3e7be7c93  mesa-25.2.8.tar.xz
SHA512: a238965ee235bd9178d26b210fc3996b77927dab31964b76cd1e1e72cfffbefbd96e4a57ec4f5018205a58354cd41d6cf99bbc712b275a7518710a34511dfb13  mesa-25.2.8.tar.xz

New features

  • None

Bug fixes

  • FurMark gets glitchi graphics when using Vulkan API on UHD 620 (mesa 25.2.6 and 26.0)

  • tu: resource leak

  • [ANV][LNL] - Detroit: Become Human (1222140) - Flickering horizontal artifacts across the screen

  • Zink on Android: failed to create dri2 screen

  • Amnesia: The Bunker (2023) OpenGL graphics glitch on Intel graphics

  • meson: When building radeonsi without llvm, it fails without setting amd_with_llvm to false explicitly

  • venus: synchronization tests sometimes get stuck in semaphore/fence wait

  • GNOME freeze, Nautilus crash and purple flickering on Intel Arc B580 with Mesa 25.2.2 (openSUSE Tumbleweed)

  • Texture matrix stack pops do not seem to always update the texture matrix

  • [BMG] Metro Exodus Enhanced Edition (1449560) - Crash

  • Polaris, amdgpu: Application using VCE wedges GPU

  • radv vulkan video encode does not process used_by_curr_pic_lt_flag correctly

  • venus: random failures in dEQP.api.info.image_format_properties2.1d

  • zink/radv: new cts fails on rdna3

  • RADV Vulkan video encode isn’t available on 25.2.7

Changes

Aitor Camacho (2):

  • vulkan/cmd_queue: Use vk_strdup and free allocated string memory

  • vulkan/wsi: Fix double destroy of present_id_timeline at swapchain create

Anna Maniscalco (1):

  • radv: recalculate legacy_gs_info on bind

Benjamin Cheng (4):

  • radv/video: Align each layer of encode DPB to 256

  • radv/video: Fix num_ref_idx_l{0,1} related overrides

  • radv/video: Fix H264/H265 reference selection

  • radv/video: Override direct_spatial_mv_pred to 1

Calder Young (3):

  • brw: fix SIMD lowering of fp16 sampler message data with multiple components

  • anv: Fix ray query shadow stack buffer size

  • intel: Fix calculation of max_scratch_ids on fused devices

Christian Gmeiner (1):

  • meson: require sysprof-capture-4 >= 4.49.0

Christoph Pillmayer (1):

  • nir: Fix preseved metadata in sort_unstructured_blocks

Daniel Schürmann (2):

  • nir/opt_large_constants: Fix dead deref instructions accessing lowered variables

  • radv/shader_info: rename gs_ring_info -> legacy_gs_info and use union with ngg_info

Dave Airlie (1):

  • dozen: return INCOMPATIBLE_DRIVER on instance create failure

David Rosca (6):

  • radv/video: Fix enabling video encode

  • vulkan/video: Fix coding AV1 seq_choose_screen_content_tools = 1

  • radv/video: Fix coding allow_screen_content_tools and force_integer_mv

  • radv/video: Fix coding used_by_curr_pic_lt_flag

  • radeonsi/vce: Add workaround for unaligned input surface

  • radeonsi/vcn: Reduce allocated size for pre-encode recon pics

Emma Anholt (1):

  • tu: Fix leak of compute shader pipeline->base.executables_mem_ctx;

Eric Engestrom (6):

  • docs: add sha sum for 25.2.7

  • .pick_status.json: Update to df19ec302093b5e47c0d7556ea41af47d2b7af67

  • .pick_status.json: Mark fa1fd2413f5a8a24959664e284372135b3deac83 as denominated

  • .pick_status.json: Mark b2b5e83894a4e1dec0cd62f73f5598dd4e50c264 as denominated

  • meson: auto-disable `amd-use-llvm` when `llvm=disabled`

  • meson: auto-disable `draw-use-llvm` when `llvm=disabled`

Eric R. Smith (1):

  • pan: fix a bifrost disassembly assert failure

Erik Faye-Lund (2):

  • mesa/main: correct formatquery error-handling

  • mesa/st: do not enable EXT_texture_buffer_object with rgba only

Faith Ekstrand (1):

  • vulkan/drm-syncobj: Stop returning early waiting for sync files

Gert Wollny (1):

  • r600/sfn: Don’t start a new ALU-CF if LDS pipeline loads are pending

Ian Forbes (1):

  • svga: Check if Stencil buffer is NULL

Ian Romanick (2):

  • brw: Force allow_spilling when spill_all is set

  • lavapipe: fp16 flrp must also be lowered

Jianxun Zhang (1):

  • isl: Disable BMG Modifier (xe2)

Joshua Simmons (1):

  • vtn: Fix OpCopyLogical destination type

Karol Herbst (2):

  • rusticl/kernel: fix clGetKernelSuggestedLocalWorkSizeKHR implementation

  • rusticl/kernel: Do not run kernels with a workgroup size beyond work_dim

Lionel Landwerlin (12):

  • brw: fix workaround fence rlen field

  • brw: fix SIMD lowering of sampler messages with fp16 data

  • anv: ensure slab allocated memory matches image requirements

  • anv: fixup load_ubo lowering

  • brw: fixup 64bit atomics emulation on 2D array images

  • anv: consider 64bit atomics on similar formats with mutable images

  • anv: Wa_18040903259 only applies to RCS when in GPGPU mode

  • brw: compute final copy propagation resulting source

  • nir: fix lower_printf with no arguments

  • spirv: fix printf generation

  • nir/lower_printf: fix array alignment

  • nir/lower_printf: fix missing singleton add

Mario Kleiner (1):

  • wsi/wayland: Zero min_luminance, max_luminance HDR light levels are valid.

Matt Turner (1):

  • meson: Fix sysprof-capture-4 dependency

Mel Henning (5):

  • zink: Return zink_device in create_logical_device

  • zink: Make screen->queue_lock a pointer

  • zink: Create one queue lock per device

  • zink: Lock queue_lock in zink_destroy_screen

  • zink: Lock around screen_debug_marker_{begin,end}

Natalie Vock (4):

  • aco/insert_nops: Consider s_setpc target susceptible to VALUReadSGPRHazard

  • radv/rt: Keep updated nodes always active

  • radv/rt: Correctly copy culling flags when updating to separate AS

  • radv: Move VMID reservation to vkCreateDevice

Olivia Lee (2):

  • panvk/csf: fix uninitialized read in draw context

  • panvk/csf: explicitly set ls_sb_slot in set_fbds_provoking_vertex

Patrick Lerda (2):

  • r600: fix rv770 read scratch compatibility

  • r600: fix error filters compatibility

Paulo Zanoni (1):

  • anv/sparse: we can support R64 and other atomics emulated formats

Pierre-Eric Pelloux-Prayer (1):

  • radeonsi/sqtt: clear out sqtt bo on resize

Rob Clark (1):

  • freedreno/a6xx: Fix UB in convert_color()

Samuel Pitoiset (2):

  • radv: fix per-submit RGP captures on video queues

  • radv: reduce maxTexelBufferElements to 1<<29

Sushma Venkatesh Reddy (1):

  • drirc: Add anv_assume_full_subgroups for Detroit: Become Human

Tapani Pälli (3):

  • drirc/iris: add drirc to disable threaded context

  • drirc: set intel_disable_threaded_context for Amnesia The Bunker

  • anv: add furmark workaround layer

Timothy Arceri (2):

  • mesa: fix _mesa_update_texture_matrices()

  • util/driconf: Add linux version of Penumbra fixes

Timur Kristóf (3):

  • ac/nir/ngg: Fix scratch space for NGG GS streamout

  • radv: Disable sparse mapping when unsupported by VM

  • ac/gpu_info: Disable sparse VM mappings pre-Polaris, for now

Valentine Burley (2):

  • intel/ci: Drop timeout overrides for pre-merge jobs

  • egl: Disable kopper on Android

Yiwei Zhang (2):

  • venus: use seq_cst for ring cs and tail update ordering

  • venus: fix racy semaphore feedback counter update