[ANNOUNCE] mesa 25.2.0

Eric Engestrom eric at engestrom.ch
Wed Aug 6 17:13:33 UTC 2025


Hello everyone,

I'm happy to announce a new feature release, 25.2.0!

This release includes some major house-cleaning of the window system
code to remove support for deprecated functionality:
- DRI2 support has been removed entirely. X11 window system support is
  now only available through DRI3 or software paths. This should not
  directly impact users as DRI2 has been deprecated for some time.
- Support for the insecure legacy GEM names has also been removed and
  buffer sharing is now only supported using dma-buf file descriptors.
  This should also not affect users as dma-buf has been the preferred path
  for about a decade.
- Support for thread-unsafe libX11 has been removed. Mesa now requires
  libX11 >= 1.8 (April 2022) which calls XInitThreads() on load and
  guarantees libX11 is always thread-safe. libX11 must not be built with
  --disable-thread-safety-constructor since that disables the
  XInitThreads() call.
- Support for EGL_WL_bind_wayland_display has been deprecated and is now
  hidden behind the -Dlegacy-wayland=bind-wayland-display build flag. In
  order for XWayland to work properly without EGL_WL_bind_wayland_display,
  distros will need to upgrade to Xwayland >= 24.1 (May 2024).

Another important things is that, as announced during `meson setup` since
25.0.2, the Clover OpenCL implementation has been deleted. RustiCL is now the
only OpenCL implementation available, providing support for more OpenCL
versions and features and to more hardware than Clover ever did. It is not
(yet) perfect though, so please report any issue you find while using it.

NVK has added a dependency on the rustc-hash crate, which has improved shader
compile times by an estimated 12%. We believe rustc-hash is already widely
packaged, so the hope is that this won't pose much of a burden to packagers.

Speaking of NVK, it now supports NVIDIA's Blackwell and Kepler
architectures. The old Nouveau GL driver has not been updated for
Blackwell and there are no plans to do so. Instead, Nouveau users will
only get OpenGL via Zink+NVK on any GPUs after Ada. (Kepler users will
still get the old Nouveau GL driver as it is still the default
pre-Turing.)

HoneyKrisp, the Apple Vulkan driver, has seen significant performance
improvements.

Users can expect the usual flurry of improvements across all drivers and
components, including these new extensions & features highlighted by
their developers (in no particular order):
- removed clover frontend
- VK_EXT_vertex_input_dynamic_state/vertexInputDynamicState on panvk
- pushDescriptor on panvk
- VK_EXT_vertex_input_dynamic_state on panvk
- VK_EXT_vertex_attribute_divisor on panvk
- supportsNonZeroFirstInstance on panvk
- GL_ARB_blend_func_extended on v3d
- dualSrcBlend on v3dv
- VK_KHR_maintenance4 on panvk/v10+
- VK_KHR_maintenance5 on panvk/v10+
- VK_EXT_direct_mode_display on panvk
- VK_EXT_extended_dynamic_state[2] on panvk
- Vulkan 1.2 on panvk/v10+
- VK_KHR_shader_quad_control on panvk/v10+
- multiDrawIndirect on panvk/v10+
- VK_KHR_draw_indirect_count on panvk/v10+
- VK_KHR_shader_integer_dot_product on panvk
- VK_KHR_shader_terminate_invocation on panvk
- VK_EXT_shader_demote_to_helper_invocation on panvk
- VK_EXT_shader_replicated_composites on panvk
- VK_EXT_depth_bias_control on panvk
- VK_KHR_shader_bfloat16 on anv/gfx125+ and radv/gfx12+
- VK_KHR_robustness2 on RADV
- VK_EXT_zero_initialize_device_memory on RADV and NVK
- VK_EXT_primitive_topology_list_restart on panvk
- VK_EXT_image_2d_view_of_3d on panvk
- VK_EXT_texel_buffer_alignment on panvk
- cl_khr_kernel_clock on freedreno, iris, llvmpipe, nvc0, panfrost, radeonsi and zink with llvm-19 or newer
- GL_KHR_texture_compression_astc_hdr on panfrost and asahi
- cl_ext_buffer_device_address on iris, llvmpipe, radeonsi and zink
- Completed OpenCL 2.0 coarse grain buffer SVM support for iris and radeonsi
- VK_EXT_shader_subgroup_ballot on panvk
- VK_EXT_shader_subgroup_vote on panvk
- Vulkan video support on GFX12 (RDNA4) for RADV
- VK_KHR_load_store_op_none on panvk
- VK_EXT_load_store_op_none on panvk
- VK_EXT_scalar_block_layout on radv/gfx6
- VK_EXT_inline_uniform_block on panvk
- cl_khr_fp16 on asahi, freedreno, llvmpipe, panfrost, radeonsi and zink
- GL_ARB_shader_clock on panfrost/v6+
- VK_EXT_texture_compression_astc_hdr on panvk
- MSAA with 8 and 16 sample counts on panfrost
- cl_khr_spirv_queries
- VK_EXT_depth_clamp_zero_one on panvk
- VK_KHR_depth_clamp_zero_one on panvk
- VK_EXT_depth_clip_control on panvk
- VK_KHR_maintenance9 on RADV
- VK_KHR_unified_image_layouts on RADV (RDNA3+), tu and panvk
- VK_KHR_vulkan_memory_model on panvk
- Vulkan 1.3 on panvk/v10+
- VK_KHR_present_wait2
- VK_EXT_descriptor_indexing on panvk/v10+
- cl_khr_priority_hints
- VK_KHR_maintenance6 on panvk/v10+
- CL_sRGBA and CL_sBGRA images
- cl_khr_extended_bit_ops
- VK_KHR_shader_clock on panvk
- GL_EXT_shader_realtime_clock on panfrost/v6+
- VK_KHR_shader_float8 on RADV (RDNA4+)
- GL_EXT_window_rectangles on r600
- GL_EXT_shader_image_load_store on r600/evergreen+
- GL_EXT_shader_clock on all drivers that support GL_ARB_shader_clock
- CL_UNORM_INT_101010_2 and cl_ext_image_unorm_int_2_101010
- timestamps on panvk/v10+
- VK_KHR_calibrated_timestamps on panvk/v10+
- VK_EXT_non_seamless_cube_map on panvk
- VK_ARM_shader_core_properties on panvk/v10+
- removed X11 DRI2 support
- removed EGL_MESA_drm_image
- removed pre-dmabuf wl_drm support
- deprecated EGL_WL_bind_wayland_display
- VK_KHR_shader_atomic_int64 on panvk/v10+
- VK_EXT_host_image_copy on RADV (RDNA1+)
- VK_KHR_cooperative_matrix on nvk/turing+
- VK_KHR_host_image_copy on panvk
- Vulkan 1.4 on panvk/v10+
- NV_timeline_semaphore for zink

If you find any issues, please report them here:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/new

The next bugfix release is due in two weeks, on August 20th.

Cheers,
  Eric

---

Alyssa Rosenzweig (1):
      asahi: enable virtgpu support

Antonio Ospite (3):
      build: stop calling unreachable() without arguments
      util: avoid calling UNREACHABLE(str) macro without arguments
      libcl: avoid calling UNREACHABLE(str) macro without arguments

Caio Oliveira (1):
      brw: Remove extra iteration on instructions from brw_opt_address_reg_load

Christian Gmeiner (2):
      etnaviv: blt: Clear only requested color buffers
      etnaviv: rs: Clear only requested color buffers

Christoph Neuhauser (1):
      egl: Fix DRI utility function compilation on macOS

Dave Airlie (1):
      spirv: move cmat store barrier after the store.

David Rosca (1):
      vulkan/video: Fix h265 level values

Emma Anholt (1):
      i915: Avoid calling drm_intel_get_aperture_sizes().

Eric Engestrom (4):
      .pick_status.json: Update to 20dab5f819f7016b8d7f4e88927855a0e5ff7a61
      meson: fix VkLayer_MESA_device_select in the devenv
      docs: add release notes for 25.2.0
      VERSION: bump for 25.2.0

Eric R. Smith (1):
      panvk: use minimum attachment size for frame buffer size

Erico Nunes (1):
      lima: ppir: fix store_output optimization for modifiers

Faith Ekstrand (1):
      nvk: Blackwell is now Vulkan 1.4 conformant

Hans-Kristian Arntzen (1):
      ac/nir: Avoid 0/0 when computing texel buffer size on Polaris.

Iván Briano (1):
      intel: Re-disable ray tracing on 32 bits

Job Noorman (2):
      ir3/legalize: prevent infinite loop when inserting (ss)nop
      nir/opt_uniform_subgroup: use ballot_bit_count

Juston Li (1):
      anv: fix uninitialized mutex lock in anv_slab_bo_deinit()

Karol Herbst (1):
      nv50: fully migrate away from util_framebuffer_init

Kenneth Graunke (3):
      brw: Refactor copy propagation checks for EOT send restrictions
      brw: Fix units in copy propagation EOT restriction size calculation
      brw: Update copy propagation into EOT sends handling for Xe2 units

LingMan (1):
      docs/rusticl: Update documented version requirements for meson and bindgen

Lionel Landwerlin (1):
      anv: fix wsi image aliasing

Mary Guillemard (2):
      panvk: Always use varying_count in emit_varying_attrs
      panvk: track oq write jobs in JM

Mike Blumenkrantz (7):
      zink: also add access stage sync when rebinding buffers
      zink: fix tc buffer replacement rebind condition
      zink: trigger multi-context buffer invalidate on internal buffer invalidate
      zink: zero dynamic rendering resolve views on rp end
      tc: also inline depth resolves
      zink: fix assert for unsynchronized non-GENERAL image barriers
      tc: don't clobber CSO info when renderpass has ended

Patrick Lerda (3):
      r600: refactor r600_is_buffer_format_supported() for the next update
      r600: fix remaining pbo issues
      r600: fix arb_shader_image_load_store incomplete

Rhys Perry (3):
      nir/load_store_vectorize: check for interfering shared2 before vectorizing
      nir/load_store_vectorize: set is_store for shared append/consume
      aco/ra: set late-kill for operands of temporary p_create_vector

Samuel Pitoiset (2):
      radv: fix fbfetch output with compresed FMASK on <= GFX9
      vulkan: fix missing presentId2/presentWait2 enable features

Thomas H.P. Andersen (1):
      zink: do not overwrite existing error for miptail on uncommit

Yurii Kolesnykov (2):
      Guard double include of libdrm.h by defining LIBDRM_H
      Guard call to free_zombie_glx_drawable with condition from its definition

git tag: mesa-25.2.0

https://mesa.freedesktop.org/archive/mesa-25.2.0.tar.xz
SHA256: 7c726b21c074d14d31d253d638b741422f3c0a497ce7f1b4aaaa917d10bd8d4f  mesa-25.2.0.tar.xz
SHA512: f36e4f9f619becfc89f9cf3704d21f5f1532f1e658808fd30c0edce8c28cd65dc6578a21333e896aa5eaccf09da99efd9127a8d3d46681e8360f618cf63bab94  mesa-25.2.0.tar.xz
PGP:  https://mesa.freedesktop.org/archive/mesa-25.2.0.tar.xz.sig

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20250806/c32c8e66/attachment.sig>


More information about the mesa-dev mailing list