# Mesa 25.2.2 Release Notes / 2025-09-03

Mesa 25.2.2 is a bug fix release which fixes bugs found since the 25.2.1 release.

Mesa 25.2.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.2.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

    TBD.

## New features

- None

## Bug fixes

- radv: watching vp9 encoded video with vulkan hwdecode result in artifacts

- ci: zink-venus-lavapipe errors

- [ANV][DG2][BMG] 3DMark Solar Bay Misrendering

- lavapipe defaults to memfd when multiple export types are requested

- anv: Simple vulkan compute shader causes Intel GPU hang due to excessive loop unrolling

- INTEL_DEBUG=spill_fs regression

- NIR validation failed after nir_lower_io in DOOM The Dark Ages

- ACO validation failed in DOOM: The Dark Ages - Undef operand to `p_parallelcopy`

- ACO validation failure in DOOM: The Dark Ages Shader

- Dragon Age Veilguard / Ability Wheel Targeting Visual Distortion

- [AMD] glTexturePageCommitmentEXT triggers an error if level is higher than 0

- missing sparse synchronization in zink

- System Crashes when starting VR on rx 9070 (xt)

## Changes

Aleksi Sapon (1):

- draw: fix missing line viewport transformation

Alyssa Ross (1):

- gfxstream: guest: don’t use transitional LFS64 API

Antonio Ospite (2):

- nak/nouveau: silence errors about never used methods

- compiler/rust: fix errors about hiding elided lifetime

Ashley Smith (1):

- mesa: Fix support for GL_EXT_shader_clock

Boris Brezillon (1):

- panvk: Fix disjoint image memory binding

Caio Oliveira (2):

- brw: Fix folding case for MAD instruction with all immediates

- brw: Fix checking sources of wrong instruction in opt_address_reg_load

Connor Abbott (2):

- vulkan/queue: Fix VkTimelineSemaphoreSubmitInfo sanitization

- tu: Fix CmdBindTransformFeedbackBuffersEXT size handling

Daniel Schürmann (1):

- aco/ra: don’t clear lateKill operands in get_reg_create_vector()

David Rosca (7):

- radeonsi/vcn: Disable H264 encode 8x8 transform when CABAC is disabled

- radv/video: Disable H264 encode 8x8 transform when CABAC is disabled

- radeonsi/vcn: Disable H264/5 constrained intra pred with rate control

- radeonsi/vcn: Fix compatibility with old FW for encode

- radeonsi/vcn: Fix HEVC encode cu_qp_delta with old FW

- radeonsi/vcn: Fix HEVC encode transform_skip with old FW

- radv/video: Fix VP9 loop filter and segmentation params

Eric Engestrom (4):

- docs: add sha sum for 25.2.1

- .pick_status.json: Update to c0e51bcf24c7905a2fdc272194744a5fdfe8c345

- .pick_status.json: Mark 85310e912c5a2fc542618a11b9e38ea9c433ed18 as denominated

- .pick_status.json: Mark a34756bbedacdf2558c966466a71bfd3715fa295 as denominated

Eric R. Smith (2):

- mesa: fix off by one in MSRTT handling

- panvk: revised occlusion query pointer fix

Erik Faye-Lund (1):

- pan/lib: clamp format size to 4

Faith Ekstrand (10):

- subprojects: Stop calling add_languages() in paste-1-rs/meson.build

- nak: Add a nak_qmd_size_B() query

- nak/hw_runner: Allow for variable sized QMDs

- nvk: Allow for larger QMDs

- nak/qmd: QMD versions 4.0 and 5.0 are both 384B

- nak: NAK_MAX_QMD_SIZE_B should be 384

- compiler/rust: Fix the DFS loop detection algorithm

- lavapipe: Always use dma-buf for external memory when we can

- nir: Add an option to make lower_phis_to_regs_block() less clever

- nak,nir: Use a simpler version of phis_to_regs_block in lower_cf

Georg Lehmann (6):

- nir/uub: fix exclusive scans

- aco: fix ra validation for flat/global/scratch/ds load sbyte_d16

- aco/optimizer: don’t apply packed clamp to v_fma_mix

- aco/optimizer: don’t create undef copies from p_create_vector

- ac/nir: do not assume mesh cull flag is 1bit

- nir/lower_io: fix boolean output stores

Hans-Kristian Arntzen (2):

- nvk: Return 0 for opaque memory capture replay.

- nvk: Avoid passing garbage data in descriptor buffers for UBOs.

Iván Briano (1):

- anv: fix capture/replay of sparse images with descriptor buffer

Jarrett Johnson (1):

- nir: tag cls variable as maybe unused

Jesse Natalie (1):

- nir: Add missing #include for c99_alloca.h

Jianxun Zhang (2):

- anv: No compression on host memory allocation (xe2)

- anv: Fix PAT entry in importing (xe2)

Job Noorman (4):

- ir3: don’t vectorize nir_op_sdot_4x8_iadd[_sat]

- ir3: emit descriptor prefetch in block dominated by its sources

- ir3/cf: don’t swap signedness of (sat) instructions

- ir3: use nir_lower_bit_size for 8-bit bit_count

Josh Simmons (1):

- util: Fix `BITSET_EXTRACT` out-of-bounds read

Julia Zhang (1):

- pps: init driver in OnSetup

Karol Herbst (2):

- aux/trace: move fence_server calls outside the locked area

- rusticl/event: fix create_and_queue for deps in error states

Lionel Landwerlin (9):

- brw: fix analysis dirtying with pulled constants

- anv: fix uninitialized return value

- brw: remove uniform from opt_offsets

- brw: fix INTEL_DEBUG=spill_fs

- brw: fix broadcast opcode

- anv: temporary disable KHR_maintenance8

- Revert “anv: enable non uniform texture offset lowering”

- Revert “brw: move texture offset packing to NIR”

- anv: fix pipeline barriers with pre-rasterization stages

Mark Collins (1):

- freedreno/drm: Only initialize memory data source when Perfetto is active

Mary Guillemard (2):

- nouveau/headers: Fix nv_push rust push_inline_data implementation

- hk: Return 0 for opaque memory capture replay

Mike Blumenkrantz (14):

- zink: break out unflushed batch waiting into separate function/mechanism

- zink: pass ctx to sparse bind functions

- zink: when sparse unbinding, always wait on main timeline semaphore

- zink: trigger fb unbind barrier on resolve images too

- zink: fix sizing on resolve resource array

- zink: update resized swapchain depth buffer layout while blitting

- zink: unify/fix clear flushing

- zink: also set msrtss stencil

- zink: always flush clears when doing single-aspect blit to avoid data loss

- zink: fix some weird indentation in update_binds_for_samplerviews()

- zink: flag resources for layout eval in update_binds_for_samplerviews()

- zink: zero db offset on batch reset

- zink: don’t increase db scale when resizing a db up to the current scale

- kopper: unwrap screen before checking cpu flag

Nataraj Deshpande (1):

- anv: add feature flags for linearly tiled ASTC images

Philipp Zabel (1):

- rusticl: Fix hidden lifetime warnings

Pierre-Eric Pelloux-Prayer (2):

- mesa/st: always use base_serialized_nir for draw

- nir/opt_varyings: fix build with PRINT_RELOCATE_SLOT

Pohsiang (John) Hsu (1):

- gallium/pipebuffer: fix multithread issue on pb_slab_manager_create_buffer

Qiang Yu (1):

- mesa: fix glTexPageCommitmentARB and glTexturePageCommitmentEXT level check

Rob Clark (1):

- drirc: Work around ANGLE brokeness

Robert Mader (2):

- gallium: Set and count all extra samplers

- nir: Fixup 10/12 bit SW decoder YCbCr formats

Sagar Ghuge (4):

- anv: Add missing ACCELERATION_STRUCTURE_READ in barrier handling

- anv: Enable CS stall for ACCELERATION_STRUCTURE_COPY stage

- anv: Add missing L3 flushes

- anv: Apply pipe flushes for outstanding PC bits

Samuel Pitoiset (4):

- radv: dirty some states from graphics pipeline earlier

- radv: add missing L2 invalidate cache flush for non-coherent images

- radv: fix hashing graphics pipeline when no stages are compiled

- radv/rt: fix a potential issue with RADV_PERFTEST=dmashaders

Tapani Pälli (1):

- anv: change some image qualifiers as coherent for Last Of Us

Trigger Huang (1):

- virtio/vdrm: add ENABLE_DRM_AMDGPU for c_args

Valentine Burley (1):

- ci/crosvm: Retry all curl errors when downloading kernel

Yiwei Zhang (4):

- panvk: ensure wsi memory is bound at offset 0

- vulkan/android: amend a missing case for IMPLEMENTATION_DEFINED AHB

- vulkan: handle wsi private data properly

- anv: fix broken utrace