ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.39k stars 1.07k forks source link

Games Not Functioning When Multi-GPU #5999

Open alkaris2 opened 2 years ago

alkaris2 commented 2 years ago

OS: Manjaro Linux Kernel: 5.15.49-1-MANJARO GPU: NVIDIA GA104 [GeForce RTX 3070 Lite Hash Rate] vendor: ASUSTeK Display: x11 server: X.Org v: 21.1.3 with: Xwayland v: 22.1.2 driver: X: loaded: nvidia gpu: nvidia resolution: 1920x1080 OpenGL: renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2 v: 4.6.0 NVIDIA 515.57 direct render: Yes

I'm going to have to file this as sort of bug report, because I was testing this out. In my setup for testing I set my GTX 1070 as the secondary GPU to run the desktop manager and output for display, while RTX 3070 dedicated for playing games alone. These following issues I'm describing below only happens when BOTH GPUs are present in the system, but when I take out one the issue goes away. I have since taken out my GTX 1070 and just left my RTX 3070 in my system, but this is still an apparent issue when Multi-GPU are online.

I was running 2 GPUs in my system, a 1070 and RTX 3070, and I have found that in some games Proton/Wine is unable to run games because of specific errors relating to DirectX 11, possibly other versions of DirectX also, actually I would probably say all versions of DirectX as an issue related to this problem. Because it appears Proton or rather Wine is unable to differentiate between multiple GPUs in the system when the games relies on DirectX, I noticed this being an issue in some Unity games and non-Unity games and throwing this one specific error;

Screen: DX11 could not switch resolution (1280x720 fs=0 hz=0)

Sometimes also other related errors when it comes to setting screen resolution for window size of said games. UE4 games would show different kind of error message relating to DX11 and setting resolutions also. Some games will simply have no error message box and simply close out completely, and I did capture a log file for that game which was for Metal Gear Solid V: The Phantom Pain.

steam-287700.log

The log is rather lengthy with repeated lines, however one specific line that shows up regularly is

sh: 1: glxinfo: not found

It's like it's not able to query the glxinfo properly when multiple GPUs are present. But when I do run glxinfo from Terminal it does in fact work and show the GLX Info for both GPUs. Perhaps there should be a way to tell Wine how to differentiate between multiple GPUs, and which one it should use or at the very least better detect multiple GPUs in use and query them individually.

Steam System Info: https://gist.github.com/alkaris2/28977e4036e2f6841c3730a6b01ef77b

kisak-valve commented 2 years ago

Hello @alkaris2, this reads like an NVIDIA driver issue more than a Proton issue. That said, please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

__NV_PRIME_RENDER_OFFLOAD_PROVIDER as described in https://download.nvidia.com/XFree86/Linux-x86_64/515.57/README/primerenderoffload.html might give you more fine grained control of which GPU ends up getting used.

sh: 1: glxinfo: not found is coming from MangoHUD and is most likely unrelated. err: Failed to create surface is the line that does matter in your log.