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¶
SHA256: 43d7abcd4aa8049d8fd75538344a374104765e81e17b4a6314cee2c0160e4412 mesa-25.2.2.tar.xz
SHA512: 69cd7ed33d0856e227a0219a9d09e5eb2fad28162276b5971bff4f7102cf58b0d914131ad6543562cba230ce6fb9b2076d3b156b1b8c375e74722a143aee5379 mesa-25.2.2.tar.xz
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