# Mesa 25.0.2 Release Notes / 2025-03-20

Mesa 25.0.2 is a bug fix release which fixes bugs found since the 25.0.1 release.

Mesa 25.0.2 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.0.2 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: adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97  mesa-25.0.2.tar.xz
    SHA512: 2de8e8b514619d9ad5f407f5e1ff04fff8039d66b5f32257c2e8ca3d9f3b190269066aeba0779d6e0b2a2c0739237382fc6a98ea8563ed97801a809c96163386  mesa-25.0.2.tar.xz

## New features

- None

## Bug fixes

- RADV: logic used to avoid running on CDNA is faulty

- [LNL/BMG] Assassin’s Creed Valhalla trace replay hang

- X11 + Zink on NVK flickers older frames in Firefox based browsers

- Vulkan conformanceVersion is reported as 0.0.0.0 in Mesa 25.0.0

- VRAM Abnormal use on mesa 25.0

- [radv][regression] Multiple games detect the wrong amount of vram

- Resident Evil 2 Remake flickers

- OpConstantNull not supported for OpTypeCooperativeMatrixKHR

- v3dv: vkcube-wayland crashes on raspberry pi 5 kernel 6.12 and latest mesa

- GMSH Visualization Fails with radeonsi:can’t compile a main shader part, Fedora 41 AMD 7900xt

- AMD VDPAU deinterlacing SIGSEGV

- radv: vkd3d-proton test_primitive_restart_list_topology_stream_output randomly fails on NAVI2X

- Mesa 24.1 introduced a Vulkan problem with DOOM 2016 on AMD 780M GPU

- nouveau & zink+nvk: Flashing in Firefox and Thunderbird on Hyprland

## Changes

Aaron Ruby (1):

- gfxstream: Downgrade log severity when enabling params in LinuxVirtGpu

Alyssa Rosenzweig (2):

- pan/mdg: call nir_lower_is_helper_invocation

- nir/lower_helper_writes: fix stores after discard

Ashley Smith (1):

- panfrost: Reset syncobj after use to avoid kernel warnings

Bas Nieuwenhuizen (1):

- radv: Move support check out of winsys.

Dave Airlie (1):

- radv/video: don’t try and send events on UVD devices.

David Rosca (4):

- gallium/vl: Fix video buffer supported format check

- Revert “frontends/vdpau: Alloc interlaced surface for interlaced pics”

- frontends/vdpau: Fix creating deinterlace filter for interleaved buffers

- gallium/vl: Return YUV plane order for single plane formats

Eric Engestrom (6):

- docs: add sha sum for 25.0.1

- .pick_status.json: Mark 61b0955308d720a6fa065e7a414d16999f7ffd03 as denominated

- .pick_status.json: Mark 534436f8635e63a30e4d7af4837dad35cfa361ad as denominated

- .pick_status.json: Update to 61feea6954a7526836ccbd30c657e6afc11fb4f5

- .pick_status.json: Mark 551770ccf8bdb1e5fa45ddac854535edf2b31a22 as denominated

- meson: announce that clover is deprecated (slated for removal)

Erik Faye-Lund (2):

- docs/features: add missing panvk feature

- panvk: correct VkPhysicalDeviceProperties::deviceName

Faith Ekstrand (9):

- util/box: Add a intersect_2d helper

- zink: Use pipe_box helpers for damage calculations

- zink: Set needs_barrier after transitioning to QUEUE_FAMILY_FOREIGN

- zink: Check queue families when binding image resources

- nvk: Allow rendering to linear images with unaligned strides

- nil: Relax alignment requirements for linear images

- vtn: Support cooperative matrices in OpConstantNull

- egl/x11: Re-order an if statement

- egl/kopper: Update the EGLSurface size after kopperSwapBuffers()

Ganesh Belgur Ramachandra (1):

- amd: use 128B compression for scanout images when drm.minor <63

Georg Lehmann (3):

- radv: enable invariant geom for DOOM(2016)

- aco/gfx11.5: remove vinterp ddx/ddy path

- aco/ra: disallow vcc definitions for pseudo scalar trans instrs

Ivan A. Melnikov (1):

- gallium/radeon: Make sure radeonsi PCI IDs are also included

Job Noorman (2):

- ir3: fix false dependencies of rpt instructions

- ir3: keep inputs at start block when creating empty preamble

John Anthony (1):

- panvk: Avoid division by zero for vkCmdCopyQueryPoolResults

José Roberto de Souza (1):

- intel/common: Retry GEM_CONTEXT_CREATE when PXP have not finished initialization

Karol Herbst (6):

- rusticl/program: implement CL_INVALID_PROGRAM_EXECUTABLE check in clGetProgramInfo

- rusticl/program: pass options by reference

- rusticl/program: loop over all devices inside Program::build

- rusticl/program: rework build_nirs so it only touches devices we care about

- rusticl/program: fix building kernels

- nir/serialize: fix decoding of is_return and is_uniform

Lionel Landwerlin (3):

- anv: fix non page aligned descriptor bindings on <Gfx12.0

- brw: fix spilling for Xe2+

- brw: ensure VUE header writes in HS/DS/GS stages

Lucas Stach (2):

- etnaviv: rs: fix slow/fast clear transitions

- etnaviv: fix ETNA_MESA_DEBUG=no_early_z

Marek Olšák (1):

- Revert “ac/nir: clamp vertex color outputs in the right place”

Mary Guillemard (2):

- pan/bi: Fix out of range access in bi_instr_replicates

- pan/bi: Ensure we select b0 with halfswizzle in va_lower_constants

Matt Turner (1):

- glsl: Add missing break

Maíra Canal (1):

- v3dv: don’t overwrite the primary fd if it’s already set

Mel Henning (1):

- nvk: Don’t zero imported memory

Mike Blumenkrantz (1):

- zink: fix refcounting of zink_surface objects

Natalie Vock (2):

- radv/rt: Guard leaf encoding by leaf node count

- radv/rt: Flush L2 after writing internal node offset on GFX12

Patrick Lerda (2):

- r600: fix cayman main non-deterministic behavior problem

- r600: update the software fp64 support

Pierre-Eric Pelloux-Prayer (1):

- st/mesa: fix nir_load_per_vertex_input parameter

Rebecca Mckeever (1):

- panvk: Add STORAGE_IMAGE_BIT feature for formats supporting sampled images

Rhys Perry (1):

- aco: insert dependency waits in certain situations

Rob Clark (2):

- tc: Add missing tc_set_driver_thread()

- freedreno: Wait for imported syncobj fences to be available

Samuel Pitoiset (6):

- ac,radv: add a workaround for a hw bug with primitive restart on GFX10-GFX10.3

- radv: fix a GPU hang with inherited rendering and HiZ/HiS on GFX1201

- radv/amdgpu: fix device deduplication

- radv: update conformance version

- aco: do not apply OMOD/CLAMP for pseudo scalar trans instrs

- radv: emit a dummy PS state for noop FS on GFX12

Seán de Búrca (1):

- rusticl/mem: don’t create svm_pointers slice from null raw pointer

Sviatoslav Peleshko (2):

- anv: Add full subgroups workaround for the shaders that use shared memory

- drirc: Apply assume_full_subgroups_with_shared_memory to Resident Evil 2

Timothy Arceri (1):

- util/u_idalloc: fix util_idalloc_sparse_alloc_range()

Yiwei Zhang (4):

- venus: fix a memory corruption in query records recycle

- lavapipe: set availability bit for accel struct host queries

- lavapipe: fix accel struct device query copy

- venus: fix to ignore dstSet for push descriptor