Help understanding Amd chipset NVidia dGPU with prime

Hello,
I own a laptop with an amd Renoir chipset and a discrete Nvidia RTX 2060 GPU.
As I’d like to use both, Prime seems to be the best/obvious way. I installed the latest video-hybrid-amd-nvidia-455xx-prime driver with mhwd and the amd chipset seems to work just fine with that.

Onto actually using the dGPU I tried to run prime-run glxgears and checked nvtop/NVidia_system_manager, both of them showed expected usage on the NVidia card, with glxgears running on them but none of all the other windows I had running without prime-run. Ran the same test with the vkcube process to make sure prime-run handled switching between vulkan and openGL

Now to test out with an actual heavy process, I chose a random graphics heavy steam game that ran well with proton. Added the prime-run %command% on the load options, and the game shows up on nvtop/nvidia-system-manager’s task manager, yet none of the gpu usage graphs showed any activity (0% gpu usage) and the computer lags as hell, which makes me think it was running on the chipset’s gpu (cpu usage was not nearly high enough to justify lags). I can’t seem to understand what is happening here and what I’m doing wrong.
Worth noting that DRI_PRIME=0 glxgears (or DRI_PRIME=1) didn’t seem to run the process on the dGPU as it wasn’t appearing in any of the nvidia task manager yet there is a huge fps difference when running with index 1 (dGPU)

Here is mhwd -li output :

$ mhwd -li
Installed PCI configs:
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
video-modesetting 2020.01.13 true PCI
video-hybrid-amd-nvidia-455xx-prime 2020.10.04 false PCI
network-r8168 2016.04.20 true PCI
video-vesa 2017.03.12 true PCI
video-linux 2018.05.04 true PCI

Here is xrandr --listproviders :

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x55 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 2 associated providers: 1 name:Unknown AMD Radeon GPU @ pci:0000:05:00.0
Provider 1: id: 0x218 cap: 0x2, Sink Output crtcs: 4 outputs: 2 associated providers: 1 name:NVIDIA-G0

Would anyone mind helping me understand what I did wrong here ?

Edit :
Some games run just fine on the prime offload, namely overwatch on lutris

I know its not the solution but try launching a steam game with lutris and enable prime render offload and feral gamemode in lutris settings. Press the terminal icon in lutris as your launching and you’ll get the steam log which should give you more information as to what is going on

You could install radeontop to confirm your suspicion.

Remove this for one.
Theres virtually no reason for you to need Vesa… and it often messes up systems when installed.

Radeontop apparently doesn’t recognise my card ‘unkown radeon card <= R500 won’t work’. it probably only works with dGPUs ?

I don’t have feral gamemode but the logs don’t show any errors, just some basic successful steam loading logs

Update : It doesn’t seem to be an issue with prime as I got other games running just fine on the dGPU (overwatch on lutris ran on prime offload without any additional tweaking)

1 Like

You can download feral gamemode from the official repos, it does seem to improve gaming and prevents any throttling from happening