Mesa 25.0.4 Release Notes / 2025-04-17¶
Mesa 25.0.4 is a bug fix release which fixes bugs found since the 25.0.3 release.
Mesa 25.0.4 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.4 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: 76293cf4372ca4e4e73fd6c36c567b917b608a4db9d11bd2e33068199a7df04d mesa-25.0.4.tar.xz
SHA512: 562a97bd0374ff2a76f71c848df4fe542f1fc66c420a9101eb4bb1947d00eee4417d9c6f2d1be19638663753785c19384f8a6dc078c3187448ab79413d906152 mesa-25.0.4.tar.xz
New features¶
None
Bug fixes¶
RADV: Performance regression in Elden Ring on GFX8/Polaris
RADV: Performance regression in Elden Ring on GFX8/Polaris
Confidential issue #12324
Confidential issue #12946
The Last of Us Part I GPU hang on gfx1201
brw: new Xe2 CTS failures
[NVK] NAK assert in The Last of Us Part 2 shader
[ANV][LNL] - Lost Records: Bloom & Rage (1902960) - Title hangs on launch and subsequently crashes to desktop.
[BMG] Intel b580 battlemage: Fort Solis (Unreal Engine game) boots to menu, hangs while loading after hitting continue from the main menu
[ANV][LNL] - NINJA GAIDEN 2 Black (3287520) - Environment assets are incorrectly rendered or missing.
[ANV][LNL] - The Headliners (3059070) - Title hangs a few minutes after launch.
anv, regression: Invisibly blinking cliffs & rocks in Satisfactory DX12 on BMG
vk/overlay: output_file option failing
[bisected, LNL] brw: 341e5117ecbc (“brw/nir: Treat load_const as convergent”) regresses arb_gpu_shader5-interpolateAtOffset on LNL
vulkan regression mesa 24.3.4 to 25.0.0.rc3 with broadcom
radv: nir_opt_varyings.c:2766: deduplicate_outputs: Assertion `list_index == 0’ failed.
vulkan/wsi: memory leak from wsi_CreateSwapchainKHR
Changes¶
Aaron Ruby (2):
gfxstream: Make the virtgpu device discovery for LinuxVirtGpu more robust
gfxstream: Add common interfaces in the VirtGpuDevice to query DrmInfo and PciBusInfo
Alyssa Rosenzweig (4):
nir/lower_blend: refactor logicop variables
nir/lower_blend: disable logic ops for unsupported formats
panfrost: invert and rename no_ubo_to_push flag
panfrost: do not push “true” UBOs
Benjamin Lee (2):
panvk/csf: fix uninitialized read in utrace_clone_init_builder
panfrost/pps: fix omitting several counters
Benjamin Otte (1):
lavapipe: Don’t advertise support for multiplane drm formats
Boris Brezillon (2):
vulkan/state: Fix input attachment map state initialization/copy
vk/pass: Add input attachment location info
Caio Oliveira (1):
nir/load_store_vectorize: Skip new bit-sizes that are unaligned with high_offset
Caterina Shablia (2):
panfrost: don’t overwrite push uniforms and sysvals UBO with user’s UBO
panfrost: update nr_uniform_buffers before dispatching XFB
Connor Abbott (1):
tu: Fix layer_count with dynamic rendering + multiview
David Rosca (4):
radeonsi/vcn: Disable AV1 unidir compound with rate control
radv/video: Fix msg header total size
radv/video: Fix encode session info for VCN3+
radeonsi/vpe: Use float division to get scaling ratio
Eric Engestrom (7):
docs: add sha sum for 25.0.3
[25.0 only] update more ci expectations
.pick_status.json: Update to 7c5389695bdf106acaab6ccc69535f25c1d7a8e6
ci: rename ci-tron priority tag to avoid conflict with the generic fdo runners
.pick_status.json: Update to 2f00daf67a7990da68dfc4a8e5f2019daecb7a59
.pick_status.json: Update to 58321cf2e57279079bf742be1063ac2900ea2436
.pick_status.json: Update to 555821ff93118d4a6ea441127cd0427a95743d47
Eric R. Smith (2):
panfrost,lima: use index size in panfrost minmax_cache
panfrost: fix transaction elimination crc valid calculation
Erik Faye-Lund (4):
panfrost: fixup typo in 16x sample-pattern
nir/lower_tex: use texture_mask instead of shifting on use
panvk: set shared_addr_format
panvk: claim official conformance on v10
Faith Ekstrand (3):
nak: Allow predicates in nir_intrinsic_as_uniform
nvk/nvkmd: Check the correct flag for the Kepler GART workaround
nil: Multiply by array_stride_B instead of adding
Felix DeGrood (1):
vk/overlay-layer: fix regression in non-control pathway
Georg Lehmann (2):
spirv: clamp/sign-extend non 32bit ldexp exponents
spirv: fix cooperative matrix by value function params
Gurchetan Singh (3):
gfxstream: check device exists before using it
gfxstream: refactor device initialization
gfxstream: follow the semantics desired by distro VK loader
Ian Romanick (4):
brw/algebraic: Constant folding for BROADCAST and SHUFFLE
brw/nir: Fix source handling of nir_intrinsic_load_barycentric_at_offset
brw/algebraic: Optimize derivative of convergent value
brw/nir: Use offset() for all uses of offs in emit_pixel_interpolater_alu_at_offset
Jan Alexander Steffens (heftig) (1):
gfxstream: Use proper log format for 32-bit Vulkan
Job Noorman (1):
ir3/ra: assign interval offsets to new defs after shared RA
Jose Maria Casanova Crespo (1):
v3dv: avoid TFU reading unmapped pages beyond the end of the buffers
Juan A. Suarez Romero (1):
v3dv: don’t check if DRM device is master
Kenneth Graunke (4):
brw: Track the largest VGRF size in liveness analysis
brw: Use live->max_vgrf_size in register coalescing
brw: Use live->max_vgrf_size in pre-RA scheduling
brw: Don’t assert about MAX_VGRF_SIZE in brw_opt_split_virtual_grfs()
Lars-Ivar Hesselberg Simonsen (2):
panvk: Add barrier for interleaved ZS copy cmds
vk/sync: Fix execution only barriers
Lionel Landwerlin (3):
brw: fix shuffle with scalar/uniform index
anv: fix self dependency computation
brw: fix Wa_22013689345 emission
Marek Olšák (5):
radeonsi: work around a primitive restart bug on gfx10-10.3
radeonsi: make si_shader_selector::main_shader_part_* an iterable union
radeonsi: add ACO-specific main shader parts
ac/surface: make gfx12_estimate_size reusable by gfx6
ac/surface: select 3D tile mode without overallocating too much for gfx6-8
Mike Blumenkrantz (4):
gallium/util: check nr_samples in pipe_surface_equal()
tu: check for valid descriptor set when binding descriptors
zink: don’t set shared block stride without KHR_workgroup_memory_explicit_layout
zink: stop setting ArrayStride on image arrays
Natalie Vock (1):
aco: Make private_segment_buffer/scratch_offset per-resume
Patrick Lerda (9):
r600: move stores to the end of shader when required
r600: fix textures with swizzles limited to zero and one
r600: fallback to util_blitter_draw_rectangle when required
r600: fix pa_su_vtx_cntl rounding mode
r600: fix points clipping
i915: fix i915_set_vertex_buffers() related refcnt imbalance and remove redundancies
i915: fix slab_create() related memory leaks
i915: fix nir_to_tgsi() related memory leak
i915: fix draw_create_fragment_shader() related memory leak
Pierre-Eric Pelloux-Prayer (1):
winsys/amdgpu: disable VM_ALWAYS_VALID
Rob Clark (1):
tu/vdrm: Fix userspace fence cmds
Ryan Mckeever (1):
pan/format: Update format flags to follow HW spec
Samuel Pitoiset (4):
radv: fix ignoring conditional rendering with vkCmdResolveImage()
radv: determine if HiZ/HiS is enabled earlier on GFX12
radv: add a workaround for buggy HiZ/HiS on GFX12
radv: apply the workaround for buggy HiZ/HiS on GFX12 for DGC
Sviatoslav Peleshko (1):
vulkan/wsi/headless: Remove unnecessary wsi_configure_image()
Tapani Pälli (3):
compiler/glsl: check that bias is not used outside fragment stage
mesa: clamp texbuf query size to MAX_TEXTURE_BUFFER_SIZE
mesa: various fixes for ClearTexImage/ClearTexSubImage
Timothy Arceri (1):
glsl: fix regression in ubo cloning
Timur Kristóf (4):
nir/xfb: Preserve some xfb information when gathering from intrinsics.
nir/opt_varyings: Fix assertion when deduplicating TCS outputs.
radv: Use buffers_written mask when gathering XFB info.
radv: Call nir_opt_undef too after nir_opt_varyings.