Mesa 26.2.7 Release Notes / 2026-11-11¶
Mesa 26.2.7 is a bug fix release which fixes bugs found since the 26.2.6 release.
Mesa 26.2.7 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 26.2.7 implements the OpenCL 3.1 API, but the version reported by the CL_DEVICE_VERSION, CL_DEVICE_NUMERIC_VERSION and CL_DEVICE_OPENCL_C_ALL_VERSIONS clGetDeviceInfo queries depends on the particular driver being used.
Mesa 26.2.7 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¶
# va: H.264 encode spins forever in vaRenderPicture on some packed SPS headers (vl_rbsp misreads emulation prevention bytes)
Asahi OpenCL compiler packing assertion failed
Confidential issue #16794
Fails to build on macOS < 10.12
LLVM 23, riscv64, compile error gallium/auxiliary/gallivm/lp_bld_init_orc.cpp (API change?)
Last Of Us Part 2 Remastered has glitches on hair strands - since Mesa 26.0.1
RadeonSI syncrhonization/barrier issue with Clear+Dispatch (Repro included)
V3D: Labwc fails to allocate GBM buffers wider than 4096 pixels unless non-MSAA texture size limit is enabled
VC4: Kodi on Pi 3: DRM PRIME / V4L2 fails after Mesa 26.2.6 with avfilter_graph_config: Function not implemented (-38)
Windows ARM memory-leak
[ANV] Flickering black blocks in Project Wingman
[OpenMW] Certain shaders cause visual corruption at the bottom of the screen when anti-aliasing is enabled, possibly Z-buffer related
ac/radv/radeonsi: PS restricted to 2 of 6 CUs on Rembrandt 660M with fully harvested SA0 (~50% graphics perf loss)
anv: compute shader writes to a storage image are partly lost after a render pass cleared the image earlier in the same command buffer on Intel LNL
asahi: 64-bit multiply of a sign-extended sub-32-bit value produces wrong result
llvmpipe/lavapipe: freed device memory is never released from the memfd
radv: PixelInterlockOrderedEXT critical sections of consecutive draws in one subpass are not ordered (Radeon 780M, GFX11)
radv: VK_EXT_descriptor_heap causes performance slow down in FSR 4.1 workloads
rusticl/llvmpipe: heap corruption / SIGSEGV in `llvmpipe_set_global_binding` when kernels on two queues are released by one `clWaitForEvents`
zink/ntv: pack_snorm_2x16 and unpack_snorm_2x16 unimplemented, aborts the process
Changes¶
Ali Milhim (1):
zink: implement snorm/unorm pack and unpack ops in ntv
Benjamin Cheng (2):
radv/video_enc: fix qp map va calculation
radv/video_enc: fix VCN5 qp map buffer size
Birk Skyum (1):
freedreno: Don’t double-close imported syncobj fd
Caio Oliveira (3):
intel/mda: Preserve binary data in printraw
nir/intel: Derive push-data divergence from its offset
util: Initialize memstream outputs on Xbox
Calder Young (1):
intel: Exclude helper lanes for optimized divergent atomics
Christian Gmeiner (2):
llvmpipe: Track global bindings per context
panvk: Correct maxUniformBufferRange for older archs
Christoph Pillmayer (4):
pan/perf: Fix swapped block counts
pan/ds: Add missing percent unit
panvk/utrace: Fix payload assert
pan/ds: Report correct gpu_clock_id
Dave Airlie (2):
lavapipe: fix pipeline cache size return and checks
gallivm: disable apx feature for now.
David Rosca (6):
ac/vcn_dec: Fix division by zero in AV1 film grain params
ac/vcn_dec: Clamp num_y/cb/cr_points and ar_coeff_lag in AV1 film grain params
va: Unmap coded buffer on encode failure
dri: Move driDestroyConfigs from glx/dri_common and use it
glx: Fix driver_configs leak when creating display gpu screen
egl/dri2: Fix driver_configs leak when creating display gpu screen
Dhruv Mark Collins (3):
tu/autotune: Order dropping an RP history reference before its reaping
tu/autotune: Remove latency tracking entries once their spikes are old
tu/autotune: Take one RP history reference per RP decided
Dmitry Baryshkov (3):
freedreno/ir3: wait for the indirect grid copy before loading it
dri: round up the subsampled plane size on dma-buf import
ir3: count half registers when deciding to double the thread size
Dom Cobley (1):
v3d: don’t drop the last row in the sand30 blit
Duncan Brawley (2):
pvr: Fix pipeline executable properties segfault
pvr: Support pipeline executable properties VkPipelineCreateFlags2 flags
Eric Engestrom (5):
docs: add sha sum for 26.2.6
.pick_status.json: Update to db5503a26f76af5238bb6e706ba5daec2dbf45d2
.pick_status.json: Mark 9c82a78f18dd60907e380dec60c46336eab64b25 as denominated
.pick_status.json: Mark b492b11ecf5a72aa74f818b45c4930cd334474d8 as denominated
.pick_status.json: Mark 988037f55378f077e9129b3df17729ea16337fd5 as denominated
Erik Faye-Lund (3):
nir: use dst_access for the store
panvk: restore zero-value for flush_id after copy_fbd
panvk: add missing flush after copy_fbd
Fabricio Akio (1):
freedreno/a5xx: Program the stream output buffer stride
Faith Ekstrand (2):
nir/lower_multiview: Check variable modes before deleting
panfrost,nir: Get rid of nir_downgrade_pls_vars()
Francisco Jerez (1):
intel/gen: Fix possible corruption of instructions other than standard one/two-source layout during pre-compaction.
Georg Lehmann (4):
aco/opt_postRA: check quad alignment of sgprs
aco/opt_postRA: fix split_vector reassign with late kill operands
nir/opt_load_store_vectorize: handle load_heap_descriptor
nir/opt_large_constants: fix constant deduplication edge case
Icenowy Zheng (1):
gallivm: adapt for JITLink in LLVM 23
Jeongik Cha (1):
gfxstream: guard Goldfish sync fd collection in queue submit
Jesse Natalie (1):
d3d12: Fix hash lookup for command signatures
Job Noorman (1):
ir3: don’t emit alias.rt for relative const movs
Jose Maria Casanova Crespo (5):
v3dv: pad the shader assembly BO for the QPU instruction prefetch
v3d: pad shader uploads for the QPU instruction prefetch
broadcom/compiler: align shared memory size to zero-initialization chunk
vc4: compute the clip window after the predraw blits
v3d/driconf: expose non-MSAA texture limits for labwc
Karmjit Mahil (1):
tu: Skip zero sized inline uniform blocks
Karol Herbst (4):
nir/load_libclc: do not compare sys_path against NULL
nir/load_libclc: turn sys_path into an array
nir/load_libclc: add llvm-23 libclc paths
zink: cast last operands of SpvOpGroupNonUniformShuffle* ops to unsigned
Lionel Landwerlin (1):
anv: fix PIPE_CONTROL with fragment->compute barrier on Xe2+
Louis-Francis Ratté-Boulianne (1):
vulkan: initialize swapchain private mutex properly
Marek Olšák (3):
ac/gpu_info: calculate min/max_good_cu_per_sa correctly
radv: suspend conditional rendering in CmdResetQueryPool
radv: suspend conditional rendering in radv_barrier
Mary Guillemard (4):
agx: Skip signext optimisation in case of absolute
hk: Properly handle pCounterBuffers being NUL
hk: Stop adjusting the index buffer range
libagx: Fix libagx_memcpy_to_aligned handling of unaligned start
Matt Arsenault (1):
radv/llvm: keep the ring offsets in s[0:1] for GFX11+ compute shaders
Matt Turner (2):
nir: don’t hardcode dedup_entry size in static_assert
llvmpipe: hash cpu caps up to num_L3_caches, not 5 dwords
Mel Henning (1):
nir: Fix incorrect is_ssa replacement
Mengyang Liu (1):
aco: demote exec if condition is all-ones
Mike Blumenkrantz (18):
st/mesa: don’t release the shared pixel map view after glDrawPixels
st/mesa: add deref sources to the second pixel map lookup
st/mesa: read the b and a pixel maps from the right channels
st/mesa: use a new pixel map texture for each update
zink: copy the spirv when compiling injected tcs
mesa: free the trace dispatch table with the other tables
util/tc: don’t full_copy an rp info that has ended
util/tc: only set end_call for a blit that ends the info
util/tc: advance the driver rp info before the first draw or clear
util/tc: advance the driver rp info for indirect and vstate draws
util/tc: move the driver rp info advance call list into a helper
util/tc: write the resolve geometry before enqueueing the resolve
util/tc: don’t merge a resolve into a different target
util/tc: parse the rp info for mesh draws
util/tc: don’t end the rp info without an end_call
util/tc: reset the new rp info fence before linking it
glsl: treat volatile as coherent when translating to nir
zink: reset attachment storeOp when begin_rendering has no tc info
Mohamed Akram (1):
glx/apple: fix build on macOS < 10.12
Nick Hamilton (1):
cso: Add quirk that stops adding samplers with border color to the cache
Olivia Lee (2):
panvk: fix mark_all_access_non_uniform metadata preservation
pan/va: fix out-of-bounds read propagating swizzles on pseudo instructions
Omar Rashwan (1):
iris: fix double free in iris_bufmgr
Patrick Lerda (1):
r600: fix shaders.indexing.tmp_array.vertexid related issue
Paulo Zanoni (2):
vulkan: export vk_queue_stop_submit_thread()
anv: extract and call anv_queue_drain() during anv_DestroyDevice()
Pavel Ondračka (6):
r300: handle underflow and overflow when packing FP24 constants
r300: use 32-bit immediate indices when applying an index bias
r300: skip constant attributes when splitting a negative index bias
r300: clamp sampler LOD bounds before converting to integers
glsl: propagate invariance after lowering
r300: skip output modifier absolute or negated inputs
Pierre-Eric Pelloux-Prayer (2):
gallium/ddebug: implement resource_release
radeonsi: fix debug dump of buffer descriptors
Rhys Perry (1):
nir/uub: fix imul by constant with overflow
Ruben Solvang (1):
llvmpipe: release freed memory from the allocation memfd
Rusi Genev (3):
v3d: Use the initial sample mask for centroid interpolation
v3d: Fix interpolateAtOffset without MSAA
v3d: Fix centroid interpolation at offsets
Samuel Pitoiset (4):
nir/opt_access: do not infer ACCESS_CAN_REORDER with shader interlock
spirv: fix memory semantics for image loads/stores
aco: make sure SSBO SMEM loads respect barriers
nir/lower_memory_model: don’t skip readonly accesses
Tapani Pälli (4):
anv: change assume_full_subgroups drirc detection
anv/dric: set anv_assume_full_subgroups for Last Of Us 2
anv: add anv_force_exact_glsl_fma drirc option
anv/drirc: use anv_force_exact_glsl_fma for Project Wingman
Timothy Arceri (5):
ac,radv: move the pipe-misaligned metadata check to common code
radeonsi: invalidate L2 before shaders read pipe-misaligned HTILE
radeonsi: decompress resident depth textures rendered to after becoming resident
radeonsi: flush the IB on NGG -> legacy transitions on Navi21 too
radeonsi: write back L2 after DCC fast clears if RBs and L2 aren’t coherent
Vinson Lee (1):
kopper: fix unused and uninitialized warnings on macOS
Xianzhong Li (1):
panfrost/csf: initialize flush_id to zero in the tiler OOM handler
Xueliang Zhang (1):
radeonsi: dirty DB_Z_INFO when the sample count changes without Z/S
Yiwei Zhang (14):
venus: push set template shall grab a ref on the desc set
venus: refactor out a vn_descriptor_set_layout_fix_create_info helper
venus: sanitize GetDescriptorSetLayoutSupport ignored fields
venus: amend a missing state in async set alloc
venus: properly fail mutable descriptor alloc
venus: respect descriptor template entry stride for accel struct
venus: fix missed cases in vn_descriptor_heap_get_descriptor_count
venus: descriptor size cache to only query supported types
venus: always chain dedicated reqs for buffer cache init
venus: image format and reqs cache to hash sType of pNext chain
venus: fill image mem reqs with cache locked
vulkan/wsi/x11: use resolved present mode to calculate image count
kraid/encode_v9: validate swizzle before src_info check
kraid/hw_tests: fix multiply overflow errors
airidosas252 (1):
freedreno/fdl: Use NUM_ELEMENTS for A8XX buffer descriptors
alexandre minette (1):
freedreno/ir3: use implicit LOD zero for a3xx multisample fetches
faetalize (2):
util/vl_vlc: allow removebits at the top of the bit buffer
util/rbsp: check each byte once for emulation prevention
genie1997 (1):
tu/kgsl: Force 8-channel macrotile mode on A635
hamb3r (1):
dzn: Handle missing variable descriptor count layout support output
mozixun (1):
zink: don’t charge a batch the whole slab for a suballocated resource
rowanG077 (1):
agx: fix phi register shuffling order