MVGAL — Multi-Vendor GPU Aggregation Layer
GPU discovery and integration components for Linux. Runtime capabilities are probed; unsupported operations fail explicitly.
v0.7.31 AMD · NVIDIA · Intel · Moore Threads Vulkan · OpenCL · CUDA
Documentation
Quick Start
Inspect GPUs and check daemon status.
Installation
Check package availability or build from source.
Secure Boot
MOK enrollment for packages that install signed modules.
Building
Build with the repository CMake or Meson configuration.
Architecture
Kernel, runtime, APIs, packaging and tools.
Codebase Map
Find the implementation and build definition for each subsystem.
Design
Design goals and architecture decisions.
API Reference
Complete public C API reference.
Scheduling Strategies
Scheduling strategy identifiers and availability notes.
Memory Management
Memory interfaces and capability-dependent support.
Hardware Compatibility
GPU discovery and runtime capability reporting.
Steam / Proton
Steam and Proton integration components.
Power Management
Capability-dependent power controls.
Troubleshooting
Common issues and solutions.
Project Status
Current milestone and status.
Changelog
Source release history through v0.7.31.
What is MVGAL?
Most Linux systems with multiple GPUs (e.g. an AMD RX 7900 + NVIDIA RTX 4080) treat each card as a completely separate device. Applications can only use one at a time, leaving the other idle.
MVGAL explores cross-vendor GPU discovery, runtime interfaces, scheduling, and application integration. The kernel module discovers devices without binding them away from native drivers. As of 0.7.31, unsupported kernel submission and VRAM allocation fail with -EOPNOTSUPP, and the Vulkan ICD does not advertise a synthetic aggregate physical device. Verify each API path and probed capability on the target system.
Quick Start
# Start the daemon (the unit is mvgal-daemon.service; enable also creates
# the mvgald.service and mvgal.service aliases)
pkexec systemctl enable --now mvgal-daemon
# Verify
mvgal-info # list detected GPUs
mvgal-status --once # status snapshot
mvgal-compat --system # check readiness
License
- Kernel module: GPL-2.0-only
- Userspace components: GPL-3.0-only
- Rust crates: MIT OR Apache-2.0