AMD & NVIDIA Driver Issue

Hi,

I’m new to this forum so I don’t how the things goes in here really but I will try to explain my problem as clear as possible and hopefully get some help with this =)

I recently installed 5.12.2-1-MANJARO and I have a problem with my gpus. I got a RX470 8gb and a GT710, really weird setup… I will try some gpu passthrough in the future just to escape from the Windows pyramid and still use my necessary software.
Until then… I noticed that the open-source drivers that Manjaro uses are… not great, possibly just for me. I had a pretty laggy experience using those drivers so I wanted to install the closed-source ones.

First, I managed to install the Nvidia driver but for some reason it didn’t want to run after reboot (in inxi -Gxx just said: driver: nouveau) so I uninstalled all of them and leaved the Nvidia one.
It finally ran and it works flawlessly, pretty good in comparison with nouveau. Great!.. ummm wait a second-_-

Second, my AMD card just stopped working…
I tried installing the amdgpu driver again, no luck.
What I wanted really to make is to use the amdgpupro driver, from what I saw that’s the closed-source one but aparently it doesn’t work like that, it needs to run on top of the amdgpu one or something like that… I’m confused

Reference: https:// wiki.archlinux. org/title/AMDGPU
“…driver called [AMDGPU PRO], which works on top of the open-source AMDGPU kernel driver.”

I tried uninstalling it again, installing it… done that said on the amdgpu page wiki… didn’t do anything… besides that now the monitor lights up but stays black
I don’t know how to actually manage drivers in linux, just to uninstall the old ones and hope that those new work=)
I also read something about configuring X Org but is just chinese language to me…

What sould I try? I’m just very confused… And have some family problems that make all of that worse…
Yesterday I just opened Manjaro, starred at the bash shell and just ran shutdown now so don’t judge me=) any little help would mean a lot!
I hope I didn’t just wrote a whole novel here=))

-inxi -Gxx:
Graphics: Device-1: NVIDIA GK208B [GeForce GT 710] driver: nvidia v: 460.80 bus-ID: 06:00.0
chip-ID: 10de:128b
Device-2: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] vendor: XFX Pine
driver: amdgpu v: kernel bus-ID: 07:00.0 chip-ID: 1002:67df
Display: x11 server: X Org 1.20.11 compositor: kwin_x11 driver: loaded: nvidia
resolution: 900x1440 s-dpi: 99
OpenGL: renderer: GeForce GT 710/PCIe/SSE2 v: 4.6.0 NVIDIA 460.80 direct render: Yes

-X.org files??(not all of them, I think that the important ones):
/usr/share/X11/xorg.conf.d/10-amdgpu-nvidia-drm-outputclass.conf
Section “ServerLayout”
Identifier “layout”
Option “AllowNVIDIAGPUScreens”
EndSection

Section “OutputClass”
Identifier “AMDgpu”
MatchDriver “amdgpu”
Driver “amdgpu”
EndSection

Section “OutputClass”
Identifier “nvidia”
MatchDriver “nvidia-drm”
Driver “nvidia”
Option “AllowEmptyInitialConfiguration”
ModulePath “/usr/lib/nvidia/xorg”
ModulePath “/usr/lib/xorg/modules”
EndSection

/usr/share/X11/xorg.conf.d/10-amdgpu.conf
Section “OutputClass”
Identifier “AMDgpu”
MatchDriver “amdgpu”
Driver “amdgpu”
EndSection

-Right now I have installed(from pacman -Qe):
vulkan-amdgpu-pro 21.10_1247438-1
vulkan-intel 21.0.3-3
vulkan-radeon 21.0.3-3
xf86-video-amdgpu 19.1.0-2
xorg-server 1.20.11-1
xorg-server-devel 1.20.11-1
amdgpu-pro-libgl 21.10_1247438-1
amf-amdgpu-pro 21.10_1247438-1
mesa-demos 8.4.0-4
mesa-vdpau 21.0.3-3
nvidia-utils 460.80-1
opencl-nvidia 460.80-1
lib32-libva-mesa-driver 21.0.3-3
lib32-mesa-demos 8.4.0-2
lib32-mesa-vdpau 21.0.3-3
libva-intel-driver 2.4.1-1
libva-mesa-driver 21.0.3-3
libva-vdpau-driver 0.7.4-5
(might be more important stuff)

Hi @r1301 :wink:

So i guess you try to start the iGPU “NVIDIA GK208B” with mode settings and the proprietary nvidia driver and want to offload to the dGPU “AMD Ellesmere”…

That is off course an exotic setup xD

Did you add the modules to the mkinitcpio and add nvidia-drm.modeset=1 to the kernel parameter?

https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting

This Section have to be called Device or?

Also you need to add the busid for the modesetting. Like this:

BusID "PCI:0:2:0"

If i am correct, then it should look like this:

Section "ServerLayout"
        Identifier "layout"
        Screen 0 "nvidia"
        Inactive "amdgpu"
        #Option "AllowNVIDIAGPUScreens"
EndSection

Section "Device"
        Identifier "amdgpu"
        Driver "amdgpu"
EndSection

Section "Screen"
        Identifier "amdgpu"
        Device "amdgpu"
EndSection

Section "Device"
        Identifier "nvidia"
        Driver "modesetting"
        BusID "PCI:0:2:0" #Busid must be the correct one
EndSection

Section "Screen"
        Identifier "nvidia"
        Device "nvidia"
EndSection

However…

  • The NVIDIA driver currently cannot be used as an output sink when the output source driver is xf86-video-amdgpu.
  • PRIME Synchronization is compatible with xf86-video-amdgpu as an output sink. xf86-video-amdgpu implements a separate interface for PRIME Synchronization that the RandR layer of the X server does not recognize. As a result, X will print “randr: falling back to unsynchronized pixmap sharing”, despite the fact that PRIME is synchronized. Additionally, the “PRIME Synchronization” output property will not function to disable PRIME Synchronization when set to 0.

https://download.nvidia.com/XFree86/Linux-x86_64/460.80/README/randr14.html

Currently some scenarios will not work with the proprietary driver of nvidia.

Hi @megavolt

Sorry for my late response.
Actually I don’t have an iGPU, both my cards are dedicated,
I specify that because from what I know an iGPU is integrated but I don’t have any of that=)

Well there’s a full list of my specs if that helps:
-inxi -F
System: Host: RsPC Kernel: 5.12.2-1-MANJARO x86_64 bits: 64 Desktop: KDE Plasma 5.21.5
Distro: Manjaro Linux
Machine: Type: Desktop System: Gigabyte product: B450M DS3H v: N/A serial:
Mobo: Gigabyte model: B450M DS3H-CF v: x.x serial:
UEFI: American Megatrends LLC. v: F61a date: 03/29/2021
CPU: Info: 8-Core model: AMD Ryzen 7 2700X bits: 64 type: MT MCP cache: L2: 4 MiB
Speed: 2112 MHz min/max: 2200/3700 MHz Core speeds (MHz): 1: 2112 2: 1832 3: 1716 4: 1894
5: 1886 6: 2195 7: 1883 8: 1882 9: 1814 10: 1823 11: 1886 12: 2178 13: 1884 14: 1883 15: 3690
16: 1721
Graphics: Device-1: NVIDIA GK208B [GeForce GT 710] driver: nvidia v: 460.80
Device-2: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] driver: amdgpu v: kernel
Display: x11 server: X Org 1.20.11 driver: loaded: nvidia resolution: 900x1440
OpenGL: renderer: GeForce GT 710/PCIe/SSE2 v: 4.6.0 NVIDIA 460.80
Audio: Device-1: NVIDIA GK208 HDMI/DP Audio driver: snd_hda_intel
Device-2: AMD Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] driver: snd_hda_intel
Device-3: AMD Family 17h HD Audio driver: snd_hda_intel
Sound Server-1: ALSA v: k5.12.2-1-MANJARO running: yes
Sound Server-2: PulseAudio v: 14.2 running: yes
Network: Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169
IF: enp5s0 state: up speed: 100 Mbps duplex: full mac: b4:2e:99:97:e7:2a
Drives: Local Storage: total: 3.07 TiB used: 13.59 GiB (0.4%)
ID-1: /dev/nvme0n1 vendor: Kingston model: SA2000M8500G size: 465.76 GiB
ID-2: /dev/sda vendor: Kingston model: SA400S37120G size: 111.79 GiB
ID-3: /dev/sdb vendor: Seagate model: ST500DM002-1BD142 size: 465.76 GiB
ID-4: /dev/sdc vendor: Maxtor model: STM3250310AS size: 232.89 GiB
ID-5: /dev/sdd vendor: Seagate model: ST2000DM008-2FR102 size: 1.82 TiB
Partition: ID-1: / size: 106.79 GiB used: 13.59 GiB (12.7%) fs: ext4 dev: /dev/sda2
ID-2: /boot/efi size: 299.4 MiB used: 296 KiB (0.1%) fs: vfat dev: /dev/sda1
Swap: Alert: No swap data was found.
Sensors: System Temperatures: cpu: 44.6 C mobo: 16.8 C
Fan Speeds (RPM): N/A
GPU: device: nvidia screen: :0.0 temp: 35 C fan: 40% device: amdgpu temp: 35.0 C fan: 4
Info: Processes: 337 Uptime: N/A Memory: 15.63 GiB used: 1.08 GiB (6.9%) Shell: Bash inxi: 3.3.04

The RX470 is in the primary pcie slot, the top one and the GT is in the secondary one
Anyway I will look into what you said, thanks!

Umm from what I understand you gave me the instructions to route the AMD through the NIVIDIA one, but I don’t want to do that.

The NVIDIA card already works and it’s great, but I want to make the AMD one work too, with it’s own driver and stuff.
I would be pleased if you could help me=)

As I mentioned it, not all scenarios are working. The proprietary driver of nvidia is not able to run at the same time as an opensource driver do.

2 possible scenarios:

  1. The proprietary driver as standalone (as main) and offload applications with DRI_PRIME=1
  2. The amdgpu driver as main and offload applications with prime-run.

Not possible with the proprietary driver :

  1. Having both GPUs with active outputs for screens. As mentioned above: If the amd gpu is the output source (main output), then the nvida gpu (when using the nvidia driver) cannot be used as output sink (second output). Having 2 screens on each gpu works only with open source drivers due the lack of support by nvidia.
  2. Also the reverse method does not work.
  3. Offloading to the amdgpu does not work as well if nvidia is main. Only offloading to nvidia gpu could work.

What you could try:

Option “AllowPRIMEDisplayOffloadSink” “boolean”

RandR PRIME Display Offload Sink support, also known as “Reverse PRIME”, is disabled by default for NVIDIA RandR providers on X.Org X servers prior to version 1.20.7 due to latent bugs that can result in crashes when used with the NVIDIA driver. X server version 1.20.6 contains fixes for the crashing, but cannot be detected automatically.

This option overrides the default behavior, allowing PRIME Display Offload Sink to be used regardless of X server version.

Default: PRIME Display Offload Sink will be allowed only for X server 1.20.7 or newer.

https://download.nvidia.com/XFree86/Linux-x86_64/460.80/README/xconfigoptions.html#AllowPRIMEDisplayOffloadSink

But it seems very new and not well tested. With this option you should be able to use the amd gpu as second output sink. But no idea how this works. Never tried it.

1 Like

I want the both closed-source drivers but because of how amdgpupro driver works on top of the open-source one… Yeaaaaah now I see why in the System settings it’s and optional driver for hybrid amd-nvidia GPUs=)

Well that’s kind of unfortunate=( Don’t mind now why on Windows is that buggy sometimes…

I will try that, at least now I understand from where the problem really comes.

I will clone my install just to test it, if not… probably I will directly try to passthrough the AMD GPU and throw it to some KVM. Well that’s why I really have 2 GPUs=) for that KVM thing… But I would not be upset if in some day would be both working=))

Anyway, thanks so much for help! I will try these tomorrow=)

Hmmmm after what you said about those 2 GPUs and the thing that they cannot be running at the same time… this really make sense=))) Like the concept of routing one through another. Now I really can say I understand why laptops with 2 GPUs are made like that.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.