ValveSoftware / Proton

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

Games do not run with Proton 7.0 or Proton Experimental with hybrid graphics enabled #6322

Open bgvaughan opened 2 years ago

bgvaughan commented 2 years ago

I have been seeing this issue since the release of Linux kernel 6.0 and Nvidia driver 5.10. If using Proton 7.0 or Proton Experimental (or GE-Proton 7.38 or 7.41) while my laptop is running in hybrid graphics mode, the button shows "Running" for as long as a few minutes, but no loader or splash screen becomes visible.

My system is a Lenovo P15 laptop, with an Nvidia Quadro T-1000 and an Intel CometLake-H G2, running Debian Sid. The issue has persisted across several weeks of software updates.

Normally I start games with launch options: __NV_PRIME_RENDER_OFFLOAD=1 VK_LAYER_NV_optimus=NVIDIA_only GLX_VENDOR_LIBRARY_NAME=nvidia %command%

The games seemed to behave the same way with no launch options, when presumably they'd be defaulting to the Intel video drivers.

I've seen this with all Windows games I've tried, specifically: Helldivers No Man's Sky SpaceEngine Dishonored Hardspace: Shipbreaker

Linux-native games, with the same launch options, run without difficulty, specifically: Hexcells Plus Baldur's Gate: Enhanced Edition Caves of Qud Rimworld Tabletop Simulator

If I switch to Proton 6.38, the Windows games run fine (setting aside an error message about input devices with No Man's Sky that doesn't seem to affect anything.)

I also found that when in my laptop's BIOS, I switched my display mode from hybrid to discrete, and launched the games without launch options, they ran fine with Proton 7.0.4 or Experimental.

Prior to the kernel and driver update, I ran the same games with Proton Experimental or with Proton 7.0.2, without difficulty.

Attached files: System information Proton log from SpaceEngine Internal log from SpaceEngine, se.log Internal log from SpaceEngine, launcher.log

se.log, line 27: [MT] ERROR: seSplashWindow::Create(): Window creation error

I feel like somewhere in the course of troubleshooting this, I've seen "window creation error" before.

bgvaughan commented 1 year ago

The issue still exists after more kernel updates and with the latest version of Proton Experimental, as of December 4.

Is more information needed?

bgvaughan commented 1 year ago

I found a thread from two years ago on Nvidia forums that described a workaround, and I found it worked for me. That suggests to me that somewhere in the stack there's a regression.

https://forums.developer.nvidia.com/t/steam-games-wont-launch-on-nvidia-card-despite-adding-relevant-parameters/160107

So I'm able to start games with Proton Experimental by launching them with the addition of 'VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json'. In full:

__NV_PRIME_RENDER_OFFLOAD=1 VK_LAYER_NV_optimus=NVIDIA_only GLX_VENDOR_LIBRARY_NAME=nvidia VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json %command%