From c32c06b2e88f7ccc21bf05c2ebfb12bf884e335c Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 14 May 2026 05:09:01 +0900 Subject: [PATCH] internal/rosa: mesa artifact This has many dependencies. Signed-off-by: Ophestra --- internal/rosa/all.go | 1 + internal/rosa/mesa.go | 141 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 141 insertions(+), 1 deletion(-) diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 379f15c8..9d5f8535 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -129,6 +129,7 @@ const ( MPC MPFR Make + Mesa Meson Mksh MuslFts diff --git a/internal/rosa/mesa.go b/internal/rosa/mesa.go index 961cd736..b5780acb 100644 --- a/internal/rosa/mesa.go +++ b/internal/rosa/mesa.go @@ -1,6 +1,10 @@ package rosa -import "hakurei.app/internal/pkg" +import ( + "strings" + + "hakurei.app/internal/pkg" +) func (t Toolchain) newLibglvnd() (pkg.Artifact, string) { const ( @@ -124,3 +128,138 @@ func init() { ID: 1752, } } + +func (t Toolchain) newMesa() (pkg.Artifact, string) { + const ( + version = "26.1.0" + checksum = "zU0fjqevySBaoi_5SLW3e2UffmGeBdxOuHmAHTH68n2hV-sjYoqg30koLqFXuk5y" + ) + return t.NewPackage("mesa", version, newFromGitLab( + "gitlab.freedesktop.org", + "mesa/mesa", + "mesa-"+version, + checksum, + ), nil, &MesonHelper{ + Setup: []KV{ + {"Dplatforms", "x11,wayland"}, + {"Dvideo-codecs", "all"}, + + {"Dglvnd", "enabled"}, + {"Dgbm", "enabled"}, + + {"Dgallium-drivers", strings.Join([]string{ + "asahi", // Apple AGX + "crocus", // Intel legacy + "etnaviv", // Vivante GPU designs (mostly NXP/Marvell SoCs) + "freedreno", // Qualcomm Adreno (all Qualcomm SoCs) + "i915", // Intel extra legacy + "iris", // new Intel (Broadwell+) + "lima", // ARM Mali 4xx + "llvmpipe", // software renderer + "nouveau", // Nvidia + "panfrost", // ARM Mali Midgard and up (T/G series) + "r300", // very old AMD + "r600", // less old AMD + "radeonsi", // new AMD (GCN+) + "softpipe", // older software renderer + "svga", // VMWare virtualized GPU + "tegra", // Nvidia Tegra SoCs + "v3d", // Broadcom VC5 (Raspberry Pi 4) + "vc4", // Broadcom VC4 (Raspberry Pi 0-3) + "virgl", // QEMU virtualized GPU (aka VirGL) + "zink", // generic OpenGL over Vulkan, experimental + + // d3d12: WSL emulated GPU (aka Dozen) + // ethosu: accelerator + // rocket: accelerator + }, ",")}, + + {"Dvulkan-drivers", strings.Join([]string{ + "amd", // AMD (aka RADV) + "broadcom", // Broadcom VC5 (Raspberry Pi 4, aka V3D) + "freedreno", // Qualcomm Adreno (all Qualcomm SoCs) + "intel", // new Intel (aka ANV) + "intel_hasvk", // Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code) + "panfrost", // ARM Mali Midgard and up (T/G series) + "swrast", // software renderer (aka Lavapipe) + "virtio", // QEMU virtualized GPU (aka VirGL) + "imagination", // PowerVR Rogue + "asahi", // Apple AGX + "gfxstream", // Android virtualized GPU + + // nouveau: Nouveau (aka NVK), requires rust + // microsoft-experimental: WSL virtualized GPU (aka DZN/Dozen) + // kosmickrisp: macOS-specific + }, ",")}, + {"Dvulkan-layers", strings.Join([]string{ + "device-select", + "intel-nullhw", + "overlay", + "screenshot", + "anti-lag", + "vram-report-limit", + }, ",")}, + + {"Dfreedreno-kmds", "msm,virtio"}, + {"Damdgpu-virtio", "true"}, + }, + }, + M4, + PythonPackaging, + PythonMako, + PythonPyYAML, + PythonPycparser, + Glslang, + SPIRVLLVMTranslator, + + Zlib, + Zstd, + Gzip, + Ncurses, + Libglvnd, + Libexpat, + Libva, + Libdrm, + Elfutils, + Bison, + Flex, + LMSensors, + Libconfig, + LibdisplayInfo, + Wayland, + WaylandProtocols, + Libxshmfence, + LibXxf86vm, + LibXrandr, + LibxcbUtilKeysyms, + Libpng, + Libarchive, + KernelHeaders, + ), version +} +func init() { + artifactsM[Mesa] = Metadata{ + f: Toolchain.newMesa, + + Name: "mesa", + Description: "open source implementations of OpenGL, OpenGL ES, Vulkan, OpenCL, and more", + Website: "https://mesa3d.org", + + Dependencies: P{ + Libdrm, + Elfutils, + LMSensors, + LibdisplayInfo, + Wayland, + Libxshmfence, + LibXxf86vm, + LibXrandr, + LibxcbUtilKeysyms, + Libpng, + }, + + ID: 1970, + + latest: (*Versions).getStable, + } +}