Summary: fixed laggy/freezing YouTube playback (especially fullscreen) on a hybrid-GPU laptop by enabling hardware video decoding on the Intel iGPU — the GPU that actually drives the display — instead of the NVIDIA GPU the defaults were routing decode to.
The laptop has two GPUs:
i915, renderD128) — drives the display.nvidia, renderD129) — present, but draws nothing.Omarchy's default NVIDIA config unconditionally sets LIBVA_DRIVER_NAME=nvidia and __GLX_VENDOR_LIBRARY_NAME=nvidia, so browsers tried to decode video through NVIDIA's VA-API path even though NVIDIA isn't drawing to the screen. On top of that:
intel-media-driver) wasn't installed — no valid hardware decode driver for the active GPU at all.--use-gl=disabled and a render-node override to the NVIDIA node: software compositing + NVIDIA routing.Net effect: the browser was software-decoding video AND software-compositing the UI. Barely noticeable windowed; fullscreen forced a full-screen software surface every frame — severe lag.
sudo pacman -S --needed intel-media-driver libva-utils
Verify with LIBVA_DRIVER_NAME=iHD vainfo — confirms H264, HEVC, VP9 and AV1 hardware decode on the Intel iGPU.
In ~/.config/hypr/monitors.lua, after the defaults load (last call wins). /usr/share/omarchy/ stays untouched:
hl.env("LIBVA_DRIVER_NAME", "iHD")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "mesa")
New ~/.config/brave-flags.conf (same flags appended to ~/.config/chromium-flags.conf):
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=VaapiVideoDecoder,VaapiVideoEncoder
--disable-features=UseChromeOSDirectVideoDecoder
--disable-features=Vp9kSVCHWDecoding
--enable-gpu-rasterization
hl.monitor({ output = "eDP-1", mode = "1920x1080@144", position = "0x0", scale = omarchy_monitor_scale })
hyprctl reload + hyprctl configerrors → clean, monitor at 1920x1080@144Hz.LIBVA_DRIVER_NAME=iHD (was nvidia); the --use-gl=disabled and NVIDIA render-node override are gone.failed to find a suitable render node; after → no VA-API errors.renderD128 here). Routing it to the idle NVIDIA GPU adds copy/sync overhead per frame.# monitors.lua: delete the two hl.env lines + the explicit 144Hz line
# brave-flags.conf / chromium-flags.conf: remove the VA-API flags
# optionally: sudo pacman -R intel-media-driver libva-utils (harmless to keep)
hyprctl reload