[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-announce/attachments/20250806/c32c8e66/attachment.sig>
More information about the mesa-announce
mailing list