forked from rosa/hakurei
141 lines
3.4 KiB
Go
141 lines
3.4 KiB
Go
package rosa
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"hakurei.app/internal/pkg"
|
|
)
|
|
|
|
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() {
|
|
native.mustRegister(Toolchain.newMesa, &Metadata{
|
|
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,
|
|
})
|
|
}
|