Mesa 26.2.3 Release Notes / 2026-09-16 ====================================== Mesa 26.2.3 is a bug fix release which fixes bugs found since the 26.2.2 release. Mesa 26.2.3 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.3 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.3 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: 1628058a8d2c0615975de5a15ab7bbb9638c50000b5bed9456ff423ea034a81f mesa-26.2.3.tar.xz SHA512: ec621735ae4679762ea27b979a5314c7aecfdd4165afea19c8c55f933d79b40f01fa 041a95874fc4347e732ac565786d9b616a9aa8856a422204d9ecc9a12ec4 mesa-26.2.3.tar.xz New features ------------ - None Bug fixes --------- - NVK memory leak in CmdCopyBufferToImage in 26.2.0, 26.2.1 and 26.2.2. - RADV: GPU page fault (null pointer) with RT emulation on Polaris (RX 580 2048SP). Issue between 26.1.6 and 26.2.1 - [ANV][ARL][bisected] Visual graphics glitches in Counter-Strike 2 starting in Mesa 26.2.x - [radeonsi] Minecraft Voxy mod: Distant water rendering issue on Vega iGPU and RDNA2 - \`hevc_vaapi` on AMD (radeonsi/gfx1150) stalls to ~1 fps when input frames carry A/53 (CEA-608/708) closed-caption side data - anv: Test fails in simulation due to coarse pixel shading state - asahi: 16-bit blending into RGBA32F produces zero due to 32-bit tilebuffer load - asahi: Some textures do not render correctly in Portals 2 - libvulkan_intel.so crash with X-Plane 12.4.3 on Intel Arc B580 - nircache causes glxgears/eglgears to segfault under Zink - vulkan,radv: when using descriptor heaps, input attachments in SPIR-V are incorrectly detected as read only instead of read write Changes ------- Alyssa Rosenzweig (1): - mesa/st: fix incorrect VS input bases Andrzej Datczuk (1): - ac/sqtt, radv, radeonsi: Fix SQTT buffer size alignment issues Benjamin Cheng (1): - radeonsi: set stencil clear to 0 when enabling TC compat Caio Oliveira (1): - spirv: Preserve all fp_math_ctrl bits in vtn_handle_alu default case Christian Gmeiner (2): - etnaviv: Do not abort on unsupported stencil-only blits - etnaviv: Use RS depth formats only on halti5+ Danylo Piliaiev (5): - tu: Wait for XFB query writes to land before making it available - tu: Synchronizing with CmdCopyQueryPoolResult should wait for mem writes - tu: Use p_atomic_read to read from query's slot->available - tu: Fix PACKED + alignas(8) application to the same struct on older GCC - tu: Handle lazy memory in GetDeviceMemoryOpaqueCaptureAddress David Rosca (2): - va: Drop HEVC SEI parsing - radv/video: Fix setting session parameters override info Dmitry Baryshkov (8): - ir3: keep byte SSBO offsets before a6xx - freedreno/a5xx: only 2D-blit between compatible formats - freedreno/a5xx: program NUMNONPOSVAR with position's VPC location - freedreno/a4xx+a5xx: clamp the texture buffer size - freedreno: keep the separate stencil out of the shadow blit - freedreno/a5xx: blit the separate stencil plane too - ir3: skip the phis of non-GPR registers in the minimum pressure bound - freedreno/a5xx: bound blits by the layer count, not the depth Emma Anholt (3): - tu: Drop TRANSFER_SRC/DST from bufferFeatures. - tu: Fix the sType of the returned VkFragmentShadingRateKHRs. - tu: Fix destroy order of autotune vs perfcounters in failure path. Eric Engestrom (4): - docs: add sha sum for 26.2.2 - .pick_status.json: Update to 9f42ea1239025d3f93d9bbf7405340adcec94419 - .pick_status.json: Mark f45825a0c724d06f231a1210484fe9af71a3ffab as denominated - .pick_status.json: Mark 859fcc3b74f831bbb9151f06d055ddfd45cc6e50 as denominated Frank Binns (3): - pvr: add missing GPU architecture to device info for some BVNCs - pvr: fixup ordering of (has\_)usc_itr_parallel_instances in dev info - zink: replace blend and vertex elements state hashes with IDs Ganesh Belgur Ramachandra (1): - amd: add gfx1171 Georg Lehmann (2): - nir/opt_uub: fix imax optimization - aco: avoid mubuf bounds checking for global Iván Briano (1): - anv: fix push constant range gathering for dynamic offsets Jiyu Yang (1): - clc: fix fd leak in open_clc_data() on map failure Juston Li (1): - anv/android: Don't disable AUX_BIT importing Xe2+ CCS mod images Karmjit Mahil (1): - tu: Fix sparse bind column merging Karol Herbst (2): - nir/serialize: set info.spec to NULL - rusticl/event: properly implement CL_PROFILING_INFO_NOT_AVAILABLE error condition Kostadin Shishmanov (1): - aco: add missing include Leon Perianu (1): - pvr: Fix primitive restart for non-indexed draws Lionel Landwerlin (6): - anv: fix 64bit values promoted to inline register - brw: use sampler from incoming instructions for combiner - anv: fixup dynamic buffers with ANV_DEBUG=bindless - anv: emit CPB setup at device initialization - anv: fix synchronization of acceleration structure query writes - anv: add missing handling for PIPELINE_STAGE_2_COPY_INDIRECT Liviu Prodea (1): - clc: Fix static link with llvm and clang 23 Marek Olšák (1): - radv: fix sRGB color clears via compute Mary Guillemard (1): - asahi: Add the same workaround as Firefox for Zen browser Matt Turner (2): - mesa/st: use concrete formats for lowered YUV plane views - dri: use concrete formats for the GR88, 8888 and sRGB DRM formats Mel Henning (2): - nvk: Fix memory leak in compute save/restore - nvk: Fix leak of dev->heap and dev->replay_heap Michael Cheng (1): - util/drirc: change min_value to max_value typo Mike Blumenkrantz (2): - llvmpipe: force alignment for Windows texture allocations - ntv: improve deref type matching when converting vri derefs Pavel Ondračka (1): - r300: don't propagate negation through absolute values Rhys Perry (4): - radv: don't set muladd_support_prefers_split when ffma is unsupported - radv: initialize shader_blake3 for shader objects - radv: hash descriptor set layouts in radv_hash_graphics_spirv_to_nir - radeonsi: use ac_shader_config::lds_size from ACO Rohan Garg (1): - nir: derive color_is_dual_source from declared vars Ryan Mckeever (1): - panvk/v6-7: include required layouts in host image copy layouts Ryan Zhang (3): - wsi/wayland: skip feedback dispatch when nothing is outstanding - panvk: initialize CPU tracing categories - panvk/utrace: replace bogus assert with static_assert in perfetto begin event callback Samuel Pitoiset (3): - radv: fix L0_CACHE_HIT_RATIO perf counter on GFX11 - radv: return VK_ERROR_DEVICE_LOST if any shader executed OpAbortKHR - radv: consider shader abort faults with VK_KHR_device_fault Silvio Vilerino (2): - d3d12: Fix d3d12 video encoder batch leaks - d3d12: Fix d3d12 video decoder batch leaks Takuro Ashie (1): - panfrost: Reallocate BO when linear layout grows Tapani Pälli (3): - anv: change bindless debug env variable to be drirc option - anv: toggle anv_always_bindless for XPlane-12 - anv: fix cmd_buffer_set_indirect_stride on ARL Vandomas (1): - zink: put the buffer view cache key first Vinson Lee (2): - glsl: initialize pixel_local_storage and yuv in ir_variable constructor - glsl: initialize is_global in ir_variable_refcount_entry constructor Víctor Manuel Jáquez Leal (1): - radv/video: report hasOverrides on AV1 encoding Yiwei Zhang (1): - panvk: place coherent memory type before cached type rajaryan1492007 (1): - spirv: Don't implicitly set ACCESS_NON_WRITEABLE for input attachments Mesa 26.2.4 Release Notes / 2026-10-01 ====================================== Mesa 26.2.4 is a bug fix release which fixes bugs found since the 26.2.3 release. Mesa 26.2.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 26.2.4 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.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 ------------- :: TBD. New features ------------ - None Bug fixes --------- - "TY the Tasmanian Tiger 3" always crashes in the same cutscene on amd gpus - VK_VALVE_video_encode_rgb_conversion always outputs limited color range - X-Plane 12 (2014780) Flickering artifacts on textures with Intel Arc B580 - [DG2] ANV: Enshrouded (1203620) - character invisible, transparent billboards rendered as opaque spheres on discrete Arc GPU - [RADV] GFX8: Black screen in UE5 DX12 (Half Sword) after commit 15990c78b8e ("allow DCC for concurrent images without DCC stores") - anv: VK_EXT_calibrated_timestamps returns a GPU timestamp ahead of CPU time on Arc B390 (Panther Lake), crashing Unreal Engine 5.8 - asahi: Mario Kart WiiCompiled graphical glitches - dEQP-VK.image.swapchain_mutable.wayland.2d.r8g8b8a8_srgb_r8g8b8a8_unorm_draw_t exture_format_list crash - radeonsi/va: vaGetImage to I420/YUYV fails with UNSUPPORTED_RT_FORMAT since Mesa 26.2 on GPUs with VPE (Radeon 890M) - radeonsi: GPU page fault (SQC) / context loss when using Iris shaderpacks on RX 9070 XT (gfx1201) - radv: NULL deref in radv_get_vgt_shader_key after binding a compute shader object - radv: PCIe 4.0 x4 fails the "PCIe 3.0 x8" bandwidth check for VRAM command buffers by 4 MB/s (rounded per-lane constants); up to 13% decode loss in llama.cpp - radv: UNREACHABLE clearing DEPTH|STENCIL when the dynamic render pass has no stencil attachment - radv: VkDescriptorUpdateTemplate takes a pointer to the set_layout memory Changes ------- Allen Ballway (1): - intel/compiler: fix bounds check in Wa_18035690555 Benjamin Cheng (1): - ac/video: Adjust HEVC min_qp for VCN1/VCN2 Boris Brezillon (2): - pan/kmod: Make sure all executables live in the same 4G VA range - panvk: Don't downcast CS func address to a 32-bit VA Caio Oliveira (1): - brw: Re-lower immediate offsets after mesh nir_opt_offsets Christian Gmeiner (3): - lavapipe: Guard BDA handle arrays with bda_lock - etnaviv: Capture varyings not read by the fragment shader - etnaviv: Keep transform feedback active across flushes Cooper Morgan (3): - vulkan/wsi: keep present timing records that do not fit the output array - vulkan/wsi: keep GOOGLE display timing records that do not fit - anti-lag: convert GPU timestamps to ns in double precision David Rosca (8): - vulkan/video: Don't update OBU size with NULL data_ptr - vl/bitstream: Fix coding ue() for large numbers - vl/bitstream: Don't use internal buffer for size only use - vl/bitstream: Move overflow check to vl_bitstream_write_byte_start_code - radv/video: Fix handling size limit in GetEncodedVideoSessionParameters - va: Drop format support checks in vlVaPostProc - va: Don't check format support in EndPicture for processing - radv/video: Only report BT709/Limited support for RGB conversion on VCN5 David Sanders (1): - radv: reset compute pipeline after IES in vkCmdExecuteGeneratedCommandsEXT Dmitry Baryshkov (3): - freedreno/a2xx: don't type-pun the immediate values through a cast - tu: resolve wide formats with a shader on A702 - freedreno/qrisc: fix hang on a650 / a660 firmware Eric Engestrom (2): - docs: add sha sum for 26.2.3 - .pick_status.json: Update to 30da39187d8d3cf03c58ecd2bebb497b84501f51 Eric R. Smith (1): - pvr: move assert for buffer usage Georg Lehmann (4): - aco/sched_vopd: work around GFX11 VOPD interlock hazard - aco/optimizer: do not truncate constants before resolving extracts - aco/opcodes: add dest/src types for VOPD opcodes - aco/insert_fp_mode: handle both vopd opcodes Glenn Kennard (1): - nv30: Fix for loops in fragment shaders on nv40 Helen Koike (1): - vulkan/overlay: Draw on the present queue when possible Ian Romanick (1): - brw: Only HALT for terminate_if of non-helper pixels Icenowy Zheng (3): - gallivm: fix enablement of RISC-V Zbs extension - vulkan/wsi: support allocating more memory for buffers - meson: list MIPS(64) in llvm_has_mcjit list Job Noorman (2): - ir3: interpret const \@load/store_global_offset offset as unsigned - nir/lower_tex: copy texture/sampler_non_uniform flags Jose Maria Casanova Crespo (2): - vc4: helper vc4_get_clip_window() for the clip window computation - vc4: skip draws whose clip window is empty Jyotiranjan Bhuyan (1): - radeonsi: invalidate I$/SMEM$/VMEM$ at IB start on gfx12 Kajal Kajal (2): - freedreno/a6xx: upload a dummy sampler when textures but no samplers bound - rusticl/kernel: emit image/texture barriers after a kernel launch Konstantin Seurer (1): - radv/rt: Restore hit attribs after rejecting AABBs Lionel Landwerlin (6): - anv: respect bit_size/num_component from the IR with acceleration structures - blorp: fix shader kernel pointer with multi size kernels - anv: add missing constant cache invalidation in DGC path - nir/lower_input_attachments: add support for heap subpass image load - anv: disable DRM_XE_DEVICE_QUERY_ENGINE_CYCLES with UnrealEngine 5.8 - vulkan/wsi: add missing usage2 flags Lorenzo Rossi (2): - pan/bi: Fix spill cost overestimation - kraid/opt_copy_prop: Fix zero-extension on 64-bit swizzles Luigi Santivetti (2): - pvr: speculative fix for out-of-bound access of winsys_heaps - pvr: set the UM stride when querying heap static areas Marek Olšák (1): - radv: fix checking whether a FS is present Matt Turner (11): - dri: allocate MSAA color buffers for drisw image loader buffers - llvmpipe: don't skip draw's viewport clipping without the linear rasterizer - mesa: use a byte-array format for GL_RGBA8 texture buffers - mesa: store boolean custom glGet values in value_bool - mesa: pack GL_MAX_COMBINED_DIMENSIONS without depending on byte order - dri: describe GR1616 as R16G16_UNORM - util: fix the Z32_FLOAT_S8X24_UINT clear value on big-endian - util/format: store R11G11B10_FLOAT and R9G9B9E5_FLOAT in host byte order - util/astc: read the 128-bit block as little-endian words - util/format: make the FXT1 codec independent of host byte order - gallivm: reinterpret image texels using the shader's format qualifier Mike Blumenkrantz (9): - lavapipe: independently calculate src/dst blit depth - lavapipe: add more layouts to lvp_host_copy_image_layouts - lavapipe: handle planar views as rendering attachments - llvmpipe: use os_free_aligned for non-vma case - lavapipe: update returned size in GetPipelineCacheData - zink: don't claim VRAM on cpu implementations - zink: check swapchain timline when pruning - zink: stop leaking swapchains - zink: clamp present regions to 0x0 when out of bounds Mikhail Mlhcnn (2): - panvk/csf: flush the FAU stores before indirect draws read them - panvk/csf: give compute jobs the TLS size of the shared allocation Oliver Clarke (1): - asahi/agx: Add shift mask for bitfield_extract and fused shift ops Patrick Gaskin (1): - egl: don't clobber an initialized display's device in eglGetPlatformDisplay Randy Palamar (1): - aco/insert_fp_mode: fix rounding mode for fma_mixhi_f16 Rhys Perry (1): - aco/ra: check next register against bounds in subdword get_reg_simple path Ryan Zhang (2): - panvk: validate descriptor counts in shader deserialization - panvk/csf: check malloc return values in queue submit storage init Samuel Pitoiset (12): - radv: fix initializing the DCC predication value when stores aren't supported - radv: fix initializing DCC with mipmaps on GFX8 - radv: disable binning correctly on GFX9-11 - radv: fix a typo when computing the binning size on GFX10-11.7 - radv: add radv_disable_binning_gfx11 and enable for Sunset Overdrive - nir/lower_abort: fix payload alignment to 8-bytes - radv: do not abort when the app specifies an invalid modifier - radv: do not abort when a GPU hang report is created with deviceFaultVendorBinary - radv: fix depth/stencil aspects for resolves - radv: fix immutable samplers lifetime with descriptor update templates - radv: fix dirtying graphics shaders when shader objects are bound - radv: ignore aspects that have no effects during clears Tapani Pälli (1): - anv: add additional heuristic to simd32 assumption pass Timothy Arceri (1): - nir: temporarily disable floating point exception flags Tupili Krishna Gowtham Reddy (1): - freedreno/a6xx: enable f16 infinities for freedreno driver Valentine Burley (2): - nir/lower_subgroups: Fix vote lowering with vector ballots - ir3: Lower quad votes Vinson Lee (1): - pps: Initialize Counter member variable units Vinícius (1): - ac/gpu_info: make PCIe 4.0 and 5.0 lane bandwidth exact multiples of 3.0 Yiwei Zhang (1): - pan/kmod: dummy BO is per VM for emulated sparse joe.wang (1): - radv: also apply the DiRT 4 HiZ workaround profile to the native port matthewperiut (1): - venus: honor the virtio-gpu blob alignment