ValveSoftware / Proton

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

Coromon (1218210) #5828

Open screwylightbulb opened 2 years ago

screwylightbulb commented 2 years ago

Compatibility Report

System Information

I confirm:

Proton log

steam-1218210.tar.gz

Symptoms

Game starts and runs fine, but after a while starts to stutter and slow down a lot. Tried with both Proton 7.0-2 and Experimental. Have noticed other people support similar issues.

Reproduction

Start game and play for a while until it starts to stutter. Time until this happens will vary from play to play.

cmalvi commented 2 years ago

This happen to me also on Steam Deck from Game Mode frame rate is max 53 but often less

kisak-valve commented 1 year ago

Coromon

Issue transferred from https://github.com/ValveSoftware/Proton/issues/6214. @Fantasy1446 posted on 2022-10-04T16:26:34:

Last version of Proton. On steam deck , coromon's game afther 30 minutes of game the FPS down to 10/14 and the game Is unplayable.

Fantasy1446 commented 1 year ago

Isn't there a way to fix?

pouwelsjochem commented 1 year ago

Developer of Coromon here, we've been investigating this issue for some time now and we're finally able to pinpoint where the issue is coming from. Just dropping our findings here to help someone else perhaps fix the core issue.

The FPS drop starts happening after the BOverlayNeedsPresent() Steam SDK API is called roughly ~130.000 times (~36.5 minutes converted to seconds * 60FPS). The steamworks plugin of our engine calls this on every frame to determine whether OpenGL should force a render to ensure the overlay is being updated. We tested decreasing the polling rate to the BOverlayNeedsPresent() to once every 10 frames, this delayed the FPS drop to 6 hours (360 minutes) instead of 36 minutes. This also changed the constant FPS drop into a frame spike every 10 frames, so it seems to me BOverlayNeedsPresent() starts to take a lot of CPU time after it is called over ~130.000 times.

We tested on every available Proton version on Steam, Proton 4.2-9 & Proton 3.16-9 do not have this glitch somehow.

We'll be releasing an update of our game soon where we decrease the polling rate even further to allow sessions of at least 18 hours without the FPS drop, but a better solution would be a fix for BOverlayNeedsPresent() in Proton.