How can I force all applications to run on/permanently enable discrete GPU with open source drivers?












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.










share|improve this question





























    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.










    share|improve this question



























      0












      0








      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.










      share|improve this question
















      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.







      drivers nvidia wayland nouveau






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 1 at 7:37







      avisitoritseems

















      asked Mar 1 at 6:34









      avisitoritseemsavisitoritseems

      10312




      10312






















          0






          active

          oldest

          votes












          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "89"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1122144%2fhow-can-i-force-all-applications-to-run-on-permanently-enable-discrete-gpu-with%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Ask Ubuntu!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1122144%2fhow-can-i-force-all-applications-to-run-on-permanently-enable-discrete-gpu-with%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

          Mangá

          Eduardo VII do Reino Unido