Skip to content

FAQ_NVIDIA

brockar edited this page Mar 9, 2026 · 3 revisions

Notes for NVIDIA GPU Users

Note

There is no official Hyprland support for Nvidia hardware. These are community-gathered tips. Environment variables are configured in ~/.config/hypr/UserConfigs/ENVariables.conf Official Hyprland Nvidia wiki: wiki.hyprland.org/Nvidia

Driver Types

There are three setups you can use with Nvidia drivers:

  1. Proprietary driversnvidia-dkms (recommended for most users)
  2. Proprietary drivers + open kernel modulesnvidia-open-dkms
  3. Nouveau — open-source clean-room driver, for older/unsupported cards

Warning

For the Nvidia 50xx series (5090, 5080, etc.) or newer, the open source kernel modules are REQUIRED. Use nvidia-open-dkms instead of nvidia-dkms.

According to Nvidia, open kernel modules are also recommended for Turing and Ampere architectures (16xx, 20xx series and later). Try both if your card supports them.

Required Packages

Make sure these are installed:

  • nvidia-utils — userspace graphics drivers (required)
    • Also install lib32-nvidia-utils if you use Steam, Wine, or other multilib/gaming packages
  • egl-wayland — required for EGL + Wayland compatibility
    • On Ubuntu: libnvidia-egl-wayland1 and libnvidia-egl-gbm1

KMS / modprobe Setup

You need to enable modeset for the Nvidia DRM kernel module, and optionally load the Nvidia modules early in the boot process (Early KMS).

See the official wiki for full instructions: Nvidia — Early KMS, modeset and fbdev

Environment Variables

Edit ~/.config/hypr/UserConfigs/ENVariables.conf. Enable/disable variables one at a time and reboot between changes — some combinations can prevent Hyprland from starting.

Caution

If Hyprland doesn't start after a change, press CTRL + ALT + F2 (or F3) to log into TTY and revert the change. Test by typing Hyprland in TTY.

Core Nvidia variables

env = LIBVA_DRIVER_NAME,nvidia       # Enable Nvidia hardware acceleration
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = GBM_BACKEND,nvidia-drm         # Force GBM backend

VRR / G-Sync / Adaptive Sync

env = __GL_GSYNC_ALLOWED,1           # Allow G-Sync on capable monitors
env = __GL_VRR_ALLOWED,0             # Adaptive Sync — set to 0 to avoid game issues

Multi-GPU / Hybrid Graphics

# Set primary GPU explicitly (colon-separated list, first = primary)
env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0

# Disable forcing linear modifiers on Multi-GPU buffers (may help Nvidia issues)
env = AQ_FORCE_LINEAR_BLIT,0

# Disable explicit syncing on multi-GPU buffers
env = AQ_MGPU_NO_EXPLICIT,1

# Use legacy DRM interface instead of atomic mode setting — NOT recommended
# env = AQ_NO_ATOMIC,1

Common Issues

Electron / CEF App Flickering

Electron and CEF apps flicker because they run in XWayland by default. To enable native Wayland:

env = ELECTRON_OZONE_PLATFORM_HINT,auto

This works for Vesktop, VSCodium, Obsidian, and most Electron apps.

For apps that need manual flags, launch with:

--enable-features=UseOzonePlatform --ozone-platform=wayland

For Spotify on Arch, use spotify-launcher (official repos) instead of the AUR package. Then create ~/.config/spotify-launcher.conf:

[spotify]
extra_arguments = ["--enable-features=UseOzonePlatform", "--ozone-platform=wayland"]

On NixOS, set NIXOS_OZONE_WL=1 to automatically configure all Electron/CEF apps for Wayland.

As of Electron 35 / Chromium 134, you can also add this flag to fully resolve flickering via the syncobj protocol:

--enable-features=WaylandLinuxDrmSyncobj

XWayland Game Flickering

XWayland games may flicker or show frames out-of-order. This is due to implicit/explicit sync issues in the Nvidia driver.

Fix: Ensure you have:

  • xorg-xwayland ≥ 24.1
  • wayland-protocols ≥ 1.34
  • Nvidia driver ≥ 555

These enable explicit sync and should resolve flickering.

If your GPU is no longer supported by driver 555+, install the 535xx series instead:

Suspend / Wakeup Issues

Note

On Arch Linux and NixOS, the steps below are already handled for you.

Enable the Nvidia power management services:

sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service

Add this to your kernel parameters:

nvidia.NVreg_PreserveVideoMemoryAllocations=1

For NixOS:

hardware.nvidia.powerManagement.enable = true;

Warning

If you're using open Nvidia drivers and still have suspend issues, try switching to fully proprietary drivers.

Multi-Monitor with Hybrid Graphics (Laptop)

If you have issues with multi-monitor on a laptop with Intel iGPU + Nvidia dGPU:

  1. Remove optimus-manager if installed (disabling the service is not enough — fully uninstall it)
  2. Change BIOS from hybrid graphics to discrete graphics mode

For Multi-GPU setups where monitors attached to Nvidia aren't working, try:

  1. Change primary GPU via AQ_DRM_DEVICES (see env vars above)
  2. Set AQ_FORCE_LINEAR_BLIT=0 to disable forced linear modifiers on Multi-GPU buffers

VA-API Hardware Video Acceleration

Hardware video acceleration on Nvidia + Wayland is possible via nvidia-vaapi-driver.

Install:

# Arch
sudo pacman -S libva-nvidia-driver

Then add to your env vars:

env = NVD_BACKEND,direct

Firefox and Chromium have additional setup steps — see the nvidia-vaapi-driver README.

Improving Performance on Older Nvidia Cards (Driver 470)

SEE HERE

Clone this wiki locally