0

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.

1 Answers1

1

I'm very new with Ubuntu and GNU/Linux in general and this is my first answer here, so please approach with caution and excuse the formation. I'm not sure if Nvidia GPUs use Prime but if it does here's my cent:

bashBedlam's answer here helped me run everything on discrete AMD gpu: How to configure an application to always run with DRI_PRIME=1 set? Is there an other way besides terminal?

"(...)Inserting your assignment DRI_PRIME=1 into /etc/environment and then restarting should do(...)"

How it looks: /etc/environment/ It's a read-only file. So you need to use gedit as root to make changes.

First, go to directory using this command in terminal:

cd /etc

Then:

sudo gedit environment

Now you can inject DRI_PRIME=1 command inside.

If I didn't get it wrong, it's what you want to do except your system has Nvidia.

  • sudo sh -c "echo "DRI_PRIME=1" >> /etc/environment" for one line terminal command, welcome to AskUbuntu. And this Q&A was already solved https://askubuntu.com/questions/791022/how-to-configure-an-application-to-always-run-with-dri-prime-1-set-is-there-an#791047 – Sadaharu Wakisaka Jan 28 '20 at 00:33