Hybrid GPU¶
volnix is an ASUS laptop with a hybrid dual-GPU configuration: an AMD HawkPoint2 iGPU and an
NVIDIA RTX 4050 Mobile dGPU. Both drivers are loaded, and the Hyprland session renders on the iGPU by
default for battery efficiency.
Driver setup¶
boot.kernelModules = [ "amdgpu" "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ];
services.xserver.videoDrivers = [ "nvidia" "amdgpu" ];
The NVIDIA-specific environment offload variables in
home/default.nix
(__NV_PRIME_RENDER_OFFLOAD, GBM_BACKEND, __GLX_VENDOR_LIBRARY_NAME, …) are commented out so
the compositor stays on the AMD iGPU. Per-command offload is available through the nvrun alias:
Power management¶
The dGPU is kept idle and allowed to reach RTD3 (0 W) suspend whenever possible. The Ollama daemon
unloads models after OLLAMA_KEEP_ALIVE=5m, releasing CUDA handles so the card can power down (see
AI Stack).
ASUS services
services.asusd is enabled for ASUS hardware control. services.supergfxd and
services.power-profiles-daemon are disabled.
Stability workarounds¶
| Symptom | Mitigation |
|---|---|
| AMD display-core glitches | amdgpu.dcdebugmask=0x10 (kernel params) |
| Ryzen + hybrid-GPU C-state instability | processor.max_cstate=1 |
| Krita Qt6 canvas freeze on Wayland | Krita wrapped to force QT_QPA_PLATFORM=xcb (Troubleshooting) |
Containers & libraries¶
- Docker exposes the dGPU to containers via
--device nvidia.com/gpu=0(see the Fooocus container in AI Stack). programs.nix-ldships CUDA, Vulkan, VA-API, and OpenGL libraries so unpatched binaries and AppImages find GPU userspace at runtime.- Diagnostics installed:
nvtopPackages.nvidia,vulkan-tools,libva-utils,clinfo,nvidia-vaapi-driver.