It can be such a pain
- Follow instructions from https://github.com/gridhead/nvidia-auto-installer-for-fedora-linux
- Use envycontrol (dnf install python3-envycontrol):
sudo envycontrol --use-nvidia-current -s hybrid --force-comp
If using SDDM:
- Edit
/etc/sddm.confand set lineDisplayServertox11(If you want to avoid using wayland) - Edit
/etc/sddm/Xsetupand append linesxrandr --setprovideroutputsource modesetting NVIDIA-0(it could be also called NVIDIA-G0) andxrandr --auto - Reboot
- Note: Make sure PRIME offloading is enabled, else X11 on an external display really lags ~1FPS
- Use glmark2 to check the default GPU Known issues:
- SDDM on external monitor may look a bit funny, like duplicate wallpapers at different sizes, just a cosmetic issue
- Allow your login manager to start with wayland
- Login into your wayland based DE
- for your shell create a
prime-runalias:alias prime-run="__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia" - By default apps will render to Intel, run the app with
prime-runto use the NVIDIA GPU instead (tested this works under wayland)
Known issues:
- Wayland rendering on Intel to an external display feels less responsive than X11 on NVIDIA, this could be a sync issue since the HDMI port is probably only wired to the NVIDIA GPU.
- WineD3D has an issue with wayland, such as the
D3DERR_CONFLICTINGRENDERSTATEerror, at least with D3D7, with D3D8/9/10/11/12, one can simply use a vulkan wrapper
sudo add-apt-repository ppa:graphics-drivers/ppasudo apt updatesudo apt install nvidia-drivers-XXX- Go to the nvidia settings panel, make NVIDIA the default under power settings, then reboot