<feed xmlns='http://www.w3.org/2005/Atom'>
<title>video/libs/mesa, branch master</title>
<subtitle>Mirror of video feed</subtitle>
<id>https://git.openwrt.org/feed/video/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/video/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/'/>
<updated>2026-11-05T22:27:15Z</updated>
<entry>
<title>mesa: add missing CONFLICTS between libmesa variants</title>
<updated>2026-11-05T22:27:15Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-10-28T21:45:41Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=43b68461e427096286bf33298c5a8b277a9f7381'/>
<id>urn:sha1:43b68461e427096286bf33298c5a8b277a9f7381</id>
<content type='text'>
All libmesa variants install the same libraries, for example
/usr/lib/libEGL.so.1 and /usr/lib/libgbm.so.1. They share
PROVIDES:=libmesa, so apk refuses to install two of them. In Kconfig
only libmesa-softpipe, the DEFAULT_VARIANT, conflicts with the others,
and only on main, where the build system adds these conflicts
implicitly. Two of the other variants can be selected together and the
image build then fails.

Collect the variants in LIBMESA_PROVIDERS, like hostapd does with
HOSTAPD_PROVIDERS, so that each variant conflicts with the ones
evaluated before it. Evaluate libmesa-softpipe after the other libmesa
variants, so that it conflicts with all of them and none of them
conflicts with it. Packages that depend on libmesa select
libmesa-softpipe unless another variant is selected, so a conflict
with libmesa-softpipe would create a Kconfig dependency cycle.

Checked with defconfig: of two selected variants the one evaluated
later drops to m, libmesa-softpipe drops to m next to any other
variant, and libcairo still selects libmesa-softpipe.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
</content>
</entry>
<entry>
<title>mesa: replace host pip requirements with host packages</title>
<updated>2026-10-23T21:23:56Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-10-17T17:23:43Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=bea0fb29f9573ab4c9bd77a9a495127958992d53'/>
<id>urn:sha1:bea0fb29f9573ab4c9bd77a9a495127958992d53</id>
<content type='text'>
Declare the Python modules used by Mesa generators as host package
dependencies for both target and host builds. Mako pulls in MarkupSafe,
and the current pycparser no longer needs PLY.

Remove the pip installation calls and requirements file, and use the
host Python definitions for Meson.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: depend on accel-support in the hardware drivers</title>
<updated>2026-09-30T11:28:18Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-29T14:52:15Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=2baec75e2c07b3bb3ae3b73580a3bd3074818707'/>
<id>urn:sha1:2baec75e2c07b3bb3ae3b73580a3bd3074818707</id>
<content type='text'>
A hardware driver renders through /dev/dri/renderD*, which is 0600
root:root until accel-support allocates the render group and ships the
rule that puts the node into it.

The software rasterisers are the exception and keep no such dependency:
libmesa-softpipe, libmesa-llvmpipe and libvulkan-lvp run on the CPU and
open no device. Because the gate sits on each driver, an image built
around a software rasteriser stays out of the render group, while one
that picks a hardware driver pulls the group in with it.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: update to version 26.2.2</title>
<updated>2026-09-18T15:16:45Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-08-20T17:47:55Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=b1f2e305d9336f8e211851d87621995b7b9851ba'/>
<id>urn:sha1:b1f2e305d9336f8e211851d87621995b7b9851ba</id>
<content type='text'>
26.2.0 was a development release which upstream advised against using;
26.2.1 is the first stable point release on the 26.2 branch and 26.2.2
adds further bug fixes on top of it, among them the armhf build fix and
one potential security issue. Drop patch 400, whose fix is now present
upstream, and refresh the remaining patches. Add a new patch adapting
the gallivm ORCJIT object linking layer creator to the signature change
in LLVM 23, which targets without MCJIT support such as riscv64 need.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: use ATOMIC64_DEPENDS</title>
<updated>2026-09-14T15:47:15Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-10T12:07:08Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=c421d1944ccd296cd5fe59d547f0c71b92cd49e1'/>
<id>urn:sha1:c421d1944ccd296cd5fe59d547f0c71b92cd49e1</id>
<content type='text'>
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: update to version 26.1.2</title>
<updated>2026-06-10T03:52:17Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-06-09T08:44:40Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=a422382c40c64ce2283a9a9a0ab78f8712455deb'/>
<id>urn:sha1:a422382c40c64ce2283a9a9a0ab78f8712455deb</id>
<content type='text'>
Bugfix point release on the 26.1 stable series.

https://docs.mesa3d.org/relnotes/26.1.2.html
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: update to version 26.1.1</title>
<updated>2026-05-31T13:19:37Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-05-26T00:55:36Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=897356ac2f40f2e911388d1ba0121bf95a64e4ad'/>
<id>urn:sha1:897356ac2f40f2e911388d1ba0121bf95a64e4ad</id>
<content type='text'>
The first stable release of the Mesa 26.1 release branch comes with
countless new features and bugfixes since 26.0.6.

Link: https://docs.mesa3d.org/relnotes/26.1.0.html
Link: https://docs.mesa3d.org/relnotes/26.1.1.html
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: drop symmetric CONFLICTS between libteflon-rocket and libteflon-etnaviv</title>
<updated>2026-05-19T01:32:07Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-05-18T11:29:19Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=5e90d40ce82d748423c45c26c60ae060d59d2a62'/>
<id>urn:sha1:5e90d40ce82d748423c45c26c60ae060d59d2a62</id>
<content type='text'>
Make the CONFLICTS declaration asymmetric: only libteflon-rocket
declares CONFLICTS:=libteflon-etnaviv. That single side is
sufficient to force the mutual exclusion at Kconfig time
(selecting either disables the other) while breaking the cycle
that the symmetric form created.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: update to 26.0.6, add virtio + teflon (rocket / etnaviv)</title>
<updated>2026-05-17T11:46:41Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-05-09T00:37:16Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=9e78fb7a91ed66ff62a6b315d74584e2a4e604ea'/>
<id>urn:sha1:9e78fb7a91ed66ff62a6b315d74584e2a4e604ea</id>
<content type='text'>
Bump mesa from 25.2.4 to latest stable point release in the 26.0.x
series.

Drop 001-gallivm-support-LLVM-21.patch which has been merged
upstream. Refresh the remaining downstream patches
(100-meson-allow-using-LLVM-as-embedded-project,
200-panfrost-Enable-cross-compilation-of-precompilers-on) for
the new upstream context.

Add +libdisplay-info to the DEPENDS of every libvulkan-* package
(broadcom, imagination, intel, intel-hasvk, lvp, panfrost, radeon,
virtio): Mesa 26.0 unconditionally pulls libdisplay-info into the
WSI Vulkan path on Linux (gated only by host_machine.system() ==
'windows'), so every ICD now NEEDED-links libdisplay-info.so.3
and OpenWrt's shlibs check rejects packages without the explicit
dependency. libvulkan-nouveau is @BROKEN (needs Rust) so it does
not get touched.

The 'imagination-experimental' vulkan-drivers value got renamed to
plain 'imagination' in Mesa 26; update the VULKAN_DRIVERS entry
accordingly.

Add 'imagination' to the host build's -Dtools= list so the
PowerVR pco_clc precompiler is built and installed into
$(STAGING_DIR_HOSTPKG)/bin/ during the host-build stage. The
target vulkan variant uses -Dprecomp-compiler=system and looks
the binary up there via find_program('pco_clc', native:true);
without this, the target configure stage fails with
"Program 'pco_clc' not found or not executable" as soon as the
imagination vulkan driver enters the gallium tree.

New packages:

* libvulkan-virtio: the venus virtio-gpu Vulkan ICD, useful for
  VM/container guests forwarding Vulkan to a host GPU. Mirrors the
  libvulkan-lvp install pattern. Wired via VULKAN_DRIVERS+=virtio.

* libteflon-rocket and libteflon-etnaviv: two flavours of mesa's
  "teflon" TensorFlow Lite delegate. teflon links one or more NPU
  back-ends from gallium into a libteflon.so that TFLite loads as
  an external delegate. The two variants here cover the NPU silicon
  found on OpenWrt-supported hardware:

  - rocket: Rockchip RKNPU on RK3566 / RK3568 / RK3588(s)
    (rockchip/armv8 target).
  - etnaviv: VeriSilicon VIP9000-class NPU on NXP i.MX 8M Plus and
    i.MX 95 (imx/cortexa53 target).

  The Arm Ethos-U back-end is omitted; it targets Cortex-M55 MCUs
  which OpenWrt does not run on.

  Each variant is its own VARIANT= mesa build with
  -Dgallium-drivers=&lt;rocket|etnaviv&gt; -Dteflon=true; both produce
  /usr/lib/libteflon.so so the two packages declare each other as
  CONFLICTS (typical OpenWrt mesa-variant pattern).

A small downstream patch (300-teflon-conditional-npu-drivers.patch)
adjusts src/gallium/targets/teflon/meson.build so that the
driver_etnaviv / driver_rocket / driver_ethosu link_with entries
are conditional on with_gallium_&lt;X&gt; instead of unconditional.
Without it, building libteflon with only one back-end fails because
the other driver_X meson variables are undefined when the
corresponding gallium-driver is not selected.

Add 400-gallivm-lp-bld-misc-auto-iter-llvm22.patch to fix the
32-bit ARM build with the new LLVM 22. lp_bld_misc.cpp's
DETECT_ARCH_ARM branch (only reached on ARM-32) iterates the
feature StringMap with an explicit 'llvm::StringMapIterator&lt;bool&gt;'
type, which LLVM 22 renamed to 'llvm::StringMapIterBase&lt;T, bool&gt;'.
Use 'auto' for the iterator declaration so the code works
regardless of the LLVM major. Other targets (aarch64, x86,
x86_64, mips, ppc, riscv) are unaffected because the failing
loop is gated on DETECT_ARCH_ARM.

Disable -Dllvm and -Ddraw-use-llvm in the per-variant MESON_ARGS
for the gallium drivers where the aux 'draw' module is *dead
code*: softpipe, broadcom (vc4/v3d), lima, etnaviv,
teflon-rocket and teflon-etnaviv. Confirmed by inspecting
26.0.6 source: each of v3d, vc4, lima, etnaviv, panfrost (and
the NPU-only rocket/etnaviv teflon paths) registers its own
pipe_context-&gt;draw_vbo and never calls any draw_* aux-module
function (0 draw_create, 0 draw_set_so_targets, 0
draw_set_indirect_buffer, 0 draw_*_geometry, 0 src includes of
draw/*.h apart from one unused header in pan_screen.c).
Transform feedback, geometry shaders and indirect draws are
handled either in hardware or via the driver's own compute path,
never through the aux-draw module. softpipe and llvmpipe are the
only consumers of the aux-draw module; mesa.meson.build also
forces draw-use-llvm=true for llvmpipe/lavapipe/i915/r300-x86.

Net effect on libgallium-26.0.6.so, measured on
arm_cortex-a7+neon-vfpv4 (mediatek/mt7623):

  variant   libgallium before    libgallium after    .apk after
  ----------------------------------------------------------------
  softpipe        57.7 MB             16 MB           2.9 MB
  broadcom        57.7 MB             16 MB           3.2 MB
  lima            57.7 MB             16 MB           3.0 MB
  etnaviv         57.7 MB             16 MB           2.9 MB
  teflon-rocket   ~57 MB             ~16 MB           varies
  teflon-etnaviv  ~57 MB             ~16 MB           varies
  llvmpipe        57.9 MB             55-56 MB        15 MB    (unchanged - keeps LLVM)

LLVM-related strings in the LLVM-disabled variants drop from
208/220 to 5 (just stub strings that survive in the no-LLVM
draw path). The 41 MB removed from each was statically-linked
LLVM JIT that no code path in those drivers ever executed.

Relax the build-time dependency on llvm-mesa: a user who
selects only LLVM-free Mesa variants (softpipe/broadcom/lima/
etnaviv/teflon-*) no longer needs to build the entire llvm-mesa
package (which can take 30+ minutes from source). MESA_USE_LLVM
remains a user-visible toggle (defaults y for backward compat).
With CONFIG_MESA_USE_LLVM=n:

 * HOST_BUILD_DEPENDS drops the unconditional 'llvm' (now
   MESA_USE_LLVM:llvm), matching PKG_BUILD_DEPENDS.
 * MESON_HOST_ARGS skips -Dllvm/-Dmesa-clc/-Dprecomp-compiler/
   -Dstatic-libclc/-Dinstall-mesa-clc/-Dinstall-precomp-compiler
   and trims -Dtools to just 'nir'.
 * Host/Configure factors its LLVM-subproject linkage into a
   Host/Configure/LLVMMesa hook, mirroring the existing
   Build/Configure/LLVMMesa pattern.

Tested locally on arm_cortex-a7+neon-vfpv4 (mediatek/mt7623):

 * MESA_USE_LLVM=y, libmesa-softpipe + libmesa-llvmpipe: builds
   llvm-mesa, then mesa softpipe (38s, no-LLVM libgallium) and
   llvmpipe (42s, LLVM-linked libgallium 56 MB). All correct.

 * MESA_USE_LLVM=n, libmesa-softpipe only: 0 llvm/compile
   invocations, 0 mesa/host-compile invocations, total mesa
   build time 38s. libmesa-softpipe .apk identical (2.9 MB) to
   the MESA_USE_LLVM=y case.

Link: https://docs.mesa3d.org/relnotes/26.0.6.html
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>mesa: add python3-packaging to host dependencies</title>
<updated>2026-04-07T14:21:33Z</updated>
<author>
<name>Tito Brasolin</name>
</author>
<published>2026-04-06T06:48:28Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/video/commit/?id=d25cad605d8ce9ff536d85bdda2ad7eb2b83f883'/>
<id>urn:sha1:d25cad605d8ce9ff536d85bdda2ad7eb2b83f883</id>
<content type='text'>
Mesa 25.2.4 configuration fails on Python 3.14+ because 'distutils'
has been removed. Adding 'packaging' ensures the version check
for Mako succeeds without falling back to the missing distutils.

Relates to https://github.com/openwrt/video/issues/61

Signed-off-by: Tito Brasolin &lt;tito.brasolin@gmail.com&gt;
</content>
</entry>
</feed>
