mirror of
https://github.com/hyprwm/aquamarine.git
synced 2025-12-20 02:30:02 +01:00
Read-only mirror of https://github.com/hyprwm/aquamarine
so nvidia as main gpu cant create linear modifiers and will give us a null bo if forced to linear, meanwhile without linear modifiers blitting fallbacks to cpu copying that is slow. so force linear mods, try create bo and if all else fails try again without. this way intel/amd as main and nvidia as dgpu will create linears and if nvidia is main it will be using cpu copying and still work but a bit slow. hide all of this behind AQ_FORCE_LINEAR_BLIT env var. since its a bit hackish. |
||
|---|---|---|
| .github/workflows | ||
| data | ||
| docs | ||
| include/aquamarine | ||
| nix | ||
| protocols | ||
| src | ||
| tests | ||
| .clang-format | ||
| .clang-tidy | ||
| .gitignore | ||
| aquamarine.pc.in | ||
| CMakeLists.txt | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| VERSION | ||
Aquamarine
Aquamarine is a very light linux rendering backend library. It provides basic abstractions for an application to render on a Wayland session (in a window) or a native DRM session.
It is agnostic of the rendering API (Vulkan/OpenGL) and designed to be lightweight, performant, and minimal.
Aquamarine provides no bindings for other languages. It is C++-only.
Stability
Aquamarine depends on the ABI stability of the stdlib implementation of your compiler. Sover bumps will be done only for aquamarine ABI breaks, not stdlib.
Building
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
TODOs
- Wayland backend
- DRM backend (DRM / KMS / libinput)
- Virtual backend (aka. Headless)
- Hardware plane support