System: KDE Neon 18.04, 4.18 kernel
Integrated: Intel HD
Discrete: Nvidia 965M
Drivers: nouveau
I have gotten it to work with Nvidia's proprietary drivers, but I am trying out Wayland and would like to stick with it. The problem is that Nvidia's proprietary source means Wayland can't develop a seamless way to integrate Nvidia drivers. I'd really love to get away from xorg and Nvidia software usage because they've been a huge pain.
I can use X.org with my discrete GPU, but can only (most of the time) use Wayland with my integrated GPU. I say most of the time because I haven't actually seen it switch to using my discrete GPU with either desktop manager but the RAM I save/performance boost is very noticeable when forcing everything to run off the discrete GPU. I know that applications that render 3D gfx heavily are able to switch off, but the ability to do it well is hampered by Intel HD Graphics deciding to use a lot more RAM. The main applications I'd like to force run on my discrete are browsers and GUI shell.
Things I've tried in the order presented:
Purged anything nvidia
Reinstalled any nouveau related packages in case it was related to upgrading the kernel
Installed nvidia-prime
by itself and using command prime-select nvidia
Looked if my discrete was known by my system with switcheroo-control
; not really sure what this does without any BIOS settings to help.
Partial output of gdbus introspect --system --dest net.hadess.SwitcherooControl --object-path
:
interface net.hadess.SwitcherooControl {
methods:
signals:
properties:
readonly b HasDualGpu = true;
Removed nouveau.modeset=0
and replaced it with nvidia-drm.modeset=1
. I previously used the prior to allow myself to boot into login without system hang and the latter option was suggested as such from here.
What I haven't tried from that guide is sudo ubuntu-drivers autoinstall
, which I will try now. I've been hesitant to try it because of all the packages it installs.
libbsd0:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386
libdrm2:i386 libedit2:i386 libelf1:i386 libexpat1:i386 libffi6:i386 libgl1:i386 libgl1-mesa-dri:i386
libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386 libllvm7:i386 libnvidia-cfg1-390
libnvidia-common-390 libnvidia-compute-390 libnvidia-compute-390:i386 libnvidia-decode-390
libnvidia-decode-390:i386 libnvidia-encode-390 libnvidia-encode-390:i386 libnvidia-fbc1-390
libnvidia-fbc1-390:i386 libnvidia-gl-390 libnvidia-gl-390:i386 libnvidia-ifr1-390
libnvidia-ifr1-390:i386 libpciaccess0:i386 libsensors4:i386 libstdc++6:i386 libwayland-client0:i386
libwayland-server0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386
libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386
libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxnvctrl0 libxshmfence1:i386
libxxf86vm1:i386 nvidia-compute-utils-390 nvidia-dkms-390 nvidia-driver-390 nvidia-kernel-common-390
nvidia-kernel-source-390 nvidia-settings nvidia-utils-390 screen-resolution-extra
xserver-xorg-video-nvidia-390
I've now rebooted into Wayland. My 3D processor calls for Nvidia but the main GPU being used is still Intel. nvidia-smi
prints out that 30MB is being used for /usr/lib/xorg/Xorg
. I've put nvidia-smi -pm 1
and will reboot to test. I don't think it will help. If it does I will re-edit but I'm going to put this for rest until someone with more experience can help. Normally I would use nvidia-settings
to force discrete but it outputs ERROR: Unable to find display on any available system
.
Edit: I reisub'd after I my system hanged on restarting. Logged in regular shell, checked GPU RAM usage with nvidia-smi
and multiple processes are rendered with GPU instead of just 1. I was able to use nvidia-settings
and double checked that Nvidia/performance was selected as the preferred mode. One of the many, many reasons I switched to Wayland is that I wasn't able to extend monitors one day. My 2nd monitor always stays as a duplicate...still not fixed, and now my panels are all missing.
Logged out, logged back into Wayland session and nvidia-smi
only shows Xorg as the process being rendered through Nvidia GPU. I really, really need to use a virtual OS for testing this kind of stuff.