[SOLVED] NVIDIA PRIME synchronization


#1

Is there any plans to implement in the manjaro tools, the option to install NVIDIA Prime? I have it working, but I had to set it up manually which took a lot of time. I was wondering if it was possible to have it added .


Implementation of NVidia PRIME through mhwd
#2

Can you give us a tutorial how to set it up? Many people are wondering this but never figured it out. It could be an alternative to bumblebee if it’s not working well.


#3

Would be great to have this as another bow in the mhwd quiver.

+1

I’m sure many others would be interested in this also.


[HowTo] Set up PRIME with NVIDIA proprietary driver
NVIDIA Prime setup errors
#4

So below is step by step, also keep in mind to change yoru login manager according to what you use. I personally use SDDM because it seems most compatible with my configuration. This is running on an XMG P505 PRO laptop with a 980M dgpu.

Step 1:
Delete the current video driver.

$ sudo mhwd -r pci video-hybrid-intel-nvidia-bumblebee

Step 2:
Install video-nvidia.

$ sudo mhwd -i pci video-nvidia -f

Step 3:
Find your correct BUS ID:

$ lspci | grep -E "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM204M [GeForce GTX 980M] (rev a1)

Step 4:
Edit config for NVIDIA Prime Synchronization as well as screen tearing fix. Accelmethod might give you problems with SNA depending on your hardware. If so, change to UXA. The AllowEmptyInitialConfiguration must go into the Screen section as stated on Nvidia website.

$ cat /etc/X11/xorg.conf.d/90-mhwd.conf 
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 375.26
Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID  "PCI:0:2:0"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "true"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Section "Extensions"
    Option      "Composite" "Enable"
    Option	"RENDER" "Enable"
EndSection
 
Section "InputClass"
	Identifier          "Keyboard Defaults"
	MatchIsKeyboard	    "yes"
	Option              "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Step 5:
Make the X server use KMS with root rights.

$ cat /etc/X11/Xwrapper.config
needs_root_rights = yes

Step 6:
Add the xrandr lines to SDDM config and than reboot after:

$ cat /usr/share/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

Step 7:
Put this in for GRUB settings for KMS and performance.

GRUB_CMDLINE_LINUX_DEFAULT="i915.enable_rc6=0 nvidia-drm.modeset=1 intel_idle.max_cstate=0"

Step 8:
Add i915 and nvidia to mkinitcpio

MODULES="i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm"

Finally, reboot and than test!

Result:
Now the X server starts successfully and I can see two xrandr providers:

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x20f cap: 0x1, Source Output crtcs: 0 outputs: 0 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x48 cap: 0x2, Sink Output crtcs: 3 outputs: 6 associated providers: 1 name:modesetting

Any way to manually switch Intel and Nvidia without Bumblebee?
Confusion about dual Nvidia Intel Graphics
Nvidia nonfree drivers not loading
Setting GPU as default and not Intel Graphics
Acer ROG 752 Optimus video issues
[SOLVED] Nvidia Prime Issue With Inspiron 15 GTX 1050TI
Nvidia non-free driver prevents me from loading Manjaro
Failed to create Vulkan device (Rise of the Tomb Raider)
NVIDIA GTX1060 problem
[SOLVED] UI of some apps not responding but I know they're working and "could not enable discrete graphics"
After update boot does not go thru
Deepin Screen Tearing with NVIDIA Drivers - HP Envy
eGPU - Poor perfomance with prime and nouveau
Use nVidia GPU for everything
I'm back. ALmost but I have a question about nvidia-prime
Booting to white error screen: “Oh no! Something has gone wrong. A problem has occurred and the system can’t recover. Please log out and try again.”
#5

It would be awesome to have an alternative to bumblebee in mhwd.
I tried a few distros before Manjaro and bumblebee was not the easiest thing to setup. Only Manjaro and Ubuntu made it work somewhat headache-free. Had a terrible time in fedora, openSUSE and Debian to get it working.

I not an expert Linux user by any means though and while I like to tinker a bit, it’s always nice to have something working out-of-the-box. (Or out of the mhwd :slight_smile:)

How is PRIME compared to bumblebee in terms of performance / energy management?
bumblebee and primus development seems to have … stoppped? Is nothing needed anymore in the software? Last commits were years ago…


#6

As far I understand, Prime is a simple GPU switcher, nothing to develop here, drivers are constantly updated so that’s all we need. As to bumblebee, it would be nice to see some improvements and I red somewhere that update is planned but will it work out, who knows?

I agree that mhwd with ability to choose and install prime or bumblebee would rock!

As to performance and energy, bumblebee is better, since it runs only chosen programs through discrete card, while rest uses intel GPU which saves energy and makes everything works well (better then on nvidia, less issues: for example, on the same laptop, alienware, a friend of mine has screen tearing on ubuntu prime, while I don’t on manjaro, thanks to bumblebee). In bumblenee nvidia has more resources and should be more efficient. This is especially visible with old and weak nvidia GPU’s (I tested it on my old laptop and on manjaro bumblebee Skyrim was perfectly playable, on ubuntu prime it had barely few FPS so it was a disaster), but on newer computer and cards, this effect is minimal, however if you are a performance freak, bumblebee is way to go.

On the other side, bumblebee alone can be pain in the ass too. For example, on manjaro on newer kernels TLP has a bug that makes bumblebee not starting when using battery (there is a config fix for that), also when you have hdmi output wired to nvidia directly, making it work with external screens is very challenging (didn’t manage that so far). Vulcan doesn’t work with bumblebee - there is that…

So prime is a valid alternative.


#7

The discrete gpu is the single source of rendering in Prime mode, the nvidia card is in an always on powered state. The difference with bumblebee is that is that it only switches the nvidia card on when uses with the software switch and than after exiting the program, the rendering is given back to the iGPU which is the intel.

Also, with nvidia’s latest update to Prime, screen tearing has been basically eliminated. Applications now synchronize directly to the iGPU during the rendering requence. It is better explained in the hyperlink. I moved it from the first post.

https://devtalk.nvidia.com/default/topic/957814/prime-and-prime-synchronization/


#8

There is some planned on upstream. When ready we may adopt.


#9

Ahh, yes! This is a good time to be gaming in Linux, many improvements being added.


#10

If there will be more vulcan games, gaming will become even better and then bumblebee will be unadvised option. So taking serious steps to automatize and strengthen presence of prime on manjaro will be or is an important thing. That’s to you @philm :wink:

There is a way to have both prime and bumblebee (at least on ubuntu, so I guess it should be possible here too), but that has to be carefully configured to make it work well.


#11


#12

Just wanted to give this conversation a nudge because nvidia’s prime sync is a heck of a lot faster than bumblebee in my testing and would result in increased framerates for all of the hybrid users of bumblebee. Yes, I’m aware there’s a way to install it manually, but you’re stuck without automatic and convenient switching between GPUs.


#13

I also need a better way to install Prime and switch between GPUs :frowning:


#14

@asynec What are you currently using for a setup? What kind of hardware?


#15

Its a Xiaomi Notebook Pro, with nVidia MX150 hybrid graphics, and an external 4k display. The Intel graphics aren’t powerful enough to power the external display and the internal display without a lot of choppiness. I’m trying to get better performance in Gnome generally.

@ryanmusante


#16

For a long time I use manjaro on pc with a great pleasure. I also has a notebook with a hybrid video card and only that stops me from installing the manjaro. I hope for the soonest implementation of NVIDIA PRIME in MANJARO! Thank you!


#18

https://devtalk.nvidia.com/default/topic/1029625/linux/no-sys-class-drm-card0-entries-on-kernel-4-15/

4.15 fixes in the works for according to NVIDIA devlog forums.


#19

Hope we will soon see Nvidia prime in Manjaro settings manager


#20

Have you been affected by this bug (MX150) [Stable Update] 2018-05-17 - GCC8, Gimp, KDE, Gnome, Deepin, Firefox ?


#21

I’m still using same nvidia prime synch configuration, no problems with latest driver [980M]. Although it isn’t perfect, still some spamming in journalctl various messages. I’ve posted on nvidia devtalk forums without any luck. Either their linux dev team is understaffed or their priorities are on too many other things.

You’re on MX150 and having problems?