forked from rosa/hakurei
266 lines
5.7 KiB
Go
266 lines
5.7 KiB
Go
package rosa
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"hakurei.app/internal/pkg"
|
|
)
|
|
|
|
func (t Toolchain) newLibglvnd() (pkg.Artifact, string) {
|
|
const (
|
|
version = "1.7.0"
|
|
checksum = "eIQJK2sgFQDHdeFkQO87TrSUaZRFG4y2DrwA8Ut-sGboI59uw1OOiIVqq2AIwnGY"
|
|
)
|
|
return t.NewPackage("libglvnd", version, newFromGitLab(
|
|
"gitlab.freedesktop.org",
|
|
"glvnd/libglvnd",
|
|
"v"+version,
|
|
checksum,
|
|
), nil, &MesonHelper{
|
|
Setup: []KV{
|
|
{"Dx11", "enabled"},
|
|
{"Dglx", "enabled"},
|
|
},
|
|
ScriptCompiled: `
|
|
export DISPLAY=':0'
|
|
Xvfb &
|
|
XVFB_PID="$!"
|
|
trap 'kill $XVFB_PID && wait $XVFB_PID' EXIT
|
|
`,
|
|
},
|
|
Binutils, // symbols check fail with llvm nm
|
|
Xserver, // test suite wants X server
|
|
|
|
LibXext,
|
|
), version
|
|
}
|
|
func init() {
|
|
artifactsM[Libglvnd] = Metadata{
|
|
f: Toolchain.newLibglvnd,
|
|
|
|
Name: "libglvnd",
|
|
Description: "The GL Vendor-Neutral Dispatch library",
|
|
Website: "https://gitlab.freedesktop.org/glvnd/libglvnd",
|
|
|
|
Dependencies: P{
|
|
LibXext,
|
|
},
|
|
|
|
ID: 12098,
|
|
}
|
|
}
|
|
|
|
func (t Toolchain) newLibdrm() (pkg.Artifact, string) {
|
|
const (
|
|
version = "2.4.133"
|
|
checksum = "bfj296NcR9DndO11hqDbSRFPqaweSLMqRk3dlCPZpM6FONX1WZ9J4JdbTDMUd1rU"
|
|
)
|
|
return t.NewPackage("libdrm", version, newFromGitLab(
|
|
"gitlab.freedesktop.org",
|
|
"mesa/libdrm",
|
|
"libdrm-"+version,
|
|
checksum,
|
|
), nil, &MesonHelper{
|
|
Setup: []KV{
|
|
{"Dintel", "enabled"},
|
|
},
|
|
},
|
|
Binutils, // symbols check fail with llvm nm
|
|
|
|
Libpciaccess,
|
|
KernelHeaders,
|
|
), version
|
|
}
|
|
func init() {
|
|
artifactsM[Libdrm] = Metadata{
|
|
f: Toolchain.newLibdrm,
|
|
|
|
Name: "libdrm",
|
|
Description: "a userspace library for accessing the DRM",
|
|
Website: "https://dri.freedesktop.org/",
|
|
|
|
Dependencies: P{
|
|
Libpciaccess,
|
|
},
|
|
|
|
ID: 1596,
|
|
}
|
|
}
|
|
|
|
func (t Toolchain) newLibva() (pkg.Artifact, string) {
|
|
const (
|
|
version = "2.23.0"
|
|
checksum = "UmF5tPyWIG_w5kiR3KFpoYbF7UUcaak5tyc-RhOheNTwQlLkPlifreFYCM9FQxbq"
|
|
)
|
|
return t.NewPackage("libva", version, newFromGitHub(
|
|
"intel/libva",
|
|
version,
|
|
checksum,
|
|
), nil, &MesonHelper{
|
|
Setup: []KV{
|
|
{"Dwith_x11", "yes"},
|
|
{"Dwith_glx", "yes"},
|
|
{"Dwith_wayland", "yes"},
|
|
},
|
|
},
|
|
Libdrm,
|
|
LibXfixes,
|
|
Libglvnd,
|
|
Wayland,
|
|
KernelHeaders,
|
|
), version
|
|
}
|
|
func init() {
|
|
artifactsM[Libva] = Metadata{
|
|
f: Toolchain.newLibva,
|
|
|
|
Name: "libva",
|
|
Description: "an implementation for VA-API (Video Acceleration API)",
|
|
Website: "https://01.org/vaapi",
|
|
|
|
Dependencies: P{
|
|
Libdrm,
|
|
LibXfixes,
|
|
Libglvnd,
|
|
Wayland,
|
|
},
|
|
|
|
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,
|
|
}
|
|
}
|