Nvidia drivers are installed, but Steam games with Proton are stuck at launch when GPU is used

I am using Arch Linux. I have made a clean install and installed nvidia, nvidia-utils and lib32-nvidia-utils and rebooted. nvidia-smi shows that my GPU is working (no processes though) but nvidia-settings gives me the error: “ERROR: Unable to load info from any available system”. My biggest problem however is that none of the games on Steam can be launched using Proton. They get stuck on launching game and I have to force Steam to close afterwards. Previously on another Arch Linux installation on the same machine I used optimus-manager and everything had worked flawlessly. This time I wanted to use PRIME offloading, which is the official method. I used this guide: PRIME - ArchWiki . I would be glad if you could help me resolve this issue. nvidia-bug-report.log.gz (324.0 KB)

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

Did you read these?
There might be other guides for Arch, dunno…

I read those and whenever I configure xorg.conf either manually or automatically with for example nvidia-xconfig --prime the system boots to a black screen and I have to use tty to remove the conf file. Another thing to note is that xrandr --listproviders only displays one provider with name “modesetting”, so it doesn’t see NVIDIA-0.

I have FINALLY managed to get everything with the GPU working perfectly by adding nvidia, nvidia-drm and nvidia-modeset to the MODULES section in /etc/mkinitcpio.conf and creating a new initramfs. Right now everything including the nvidia-settings are working. I just wanted to ask if it is normal that I see the xorg process in the nvidia-smi all the time. I don’t know if the GPU is powered down when not used by another program.

So you configured it to use Display offloading. Different thing to Render offloading.
And yes that would be normal to see the process at all times, unless X is shut down.

Would you by any chance know how I could achieve render offloading instead of display offloading and seeing N/A power usage on nvidia-smi, that was my initial goal (I have an rtx 3050 ti laptop graphics card so it should actually support it).

The Arch and Nvidia docs should bring you there.
If I remember correctly, nvidia-smi cannot be used for that, as it will power up the GPU.
I’m not sure if I remember correctly, that you could use nvidia-settings for that…

According to the wikis I should actually be able to use the GPU after installing the nvidia driver and doing nothing else but in my case with or without prime-run all the Proton games get stuck for some reason :/

Edit: I found out that I can see if the GPU is being used by displaying /sys/bus/pci/devices//power/runtime_status. It turns out that my GPU is only active when I use prime-run and suspended otherwise. If I open nvidia-smi it becomes active for a brief moment, regardless of the Xorg process. Could that mean that I have indeed somehow achieved render offloading?

Edit 2: I have checked the nvidia only part of the wiki and made sure that I didnt use those steps. glxinfo uses the integrated graphics card and if I run it with prime-run then it uses the dedicated one. I also have zero screen tearing which is a common issue when we only use the nvidia card.

Are you using the environment variables as described here:
https://download.nvidia.com/XFree86/Linux-x86_64/470.74/README/primerenderoffload.html
as launch options in the steam games properties?

i.e: __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only %command%

I have installed the nvidia-prime package which gives you the prime-run script, which sets those variables. When I use powertop I see that I have 0 percent NVIDIA GPU usage unless I start an application with those environment variables, so I guess it works now.

Thanks a lot for your help btw :)

I !think! for steam you have to set the launch options.

I quit playing on linux a while ago, just too much hassle… for me…

1 Like

In the launch options I have “prime-run %command%” which sets the variables.

Did you try the way I suggested? just for curiosity maybe? ;-)

I had tried setting the variables manually like you said before trying these stuff but it would get stuck all the same :/

Sorry to hear…
I don’t think I can help you with that.
Maybe setting PROTON_LOG =1 … %command% will give some hint. Logs can get quite big that way, I remember they are saved with the games numeric ID, but not where (/home folder maybe…).

I had tried that too but for some games it did not even create a log file :/ . I guess I could not make myself clear, right now I am satisfied with the result since powertop and the other file, which shows if the GPU is active or suspended, show me that eventhough nvidia-smi shows xorg as a process, the GPU is turned off unless I run nvidia-smi or any other Steam game with the necessary variables set. So I think I did get the render offloading working :)