ValveSoftware / Proton

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

Mary Skelter 2 (1496250) #5711

Open KingKrouch opened 2 years ago

KingKrouch commented 2 years ago

Compatibility Report

System Information

I confirm:

Proton Log: steam-1496250.log

Symptoms

Reproduction

  1. Launch the game through Steam, making sure to have a frametime overlay enabled in the launch parameters for the game. Regarding the rendering issues on background elements, specifically take note of the introduction sequence, and the background on the options menu.
KingKrouch commented 2 years ago

Did some testing on Steam Deck (using the same workarounds), and I've noticed that the frametime spikes are not present. That specific issue is probably down to NVIDIA's GPU drivers or something CPU scheduler related that differs between my Ryzen 5 5600X/RTX 3070 setup running Arch or Fedora, and the Steam Deck running the latest updates.

One thing worth mentioning is that I had to have a keyboard connected to the Deck to get to the title screen due to the missing videos and KB/M controls being set as the default input method.

blah1 commented 1 month ago

The main issue that I'm still experiencing is heavy stuttering during particle effects, both on desktop and on Steam Deck. The stuttering is often more than 500ms on my Steam Deck (sometimes as high as 2000ms) and often caused doubled inputs. (My specs, though I doubt it's relevant since I ran into the same problems on my Steam Deck: https://gist.github.com/blah1/60b119f57afd85d2180b51a8185290df)

The stuttering is absent on Proton 6.3-8, so I did a full git bisect on my desktop and found the regression to be: https://github.com/ValveSoftware/wine/commit/a81dbfb12686b28e1889c4cff7e271848b6b0fc4 (which explains why the lag spikes didn't have high GPU/CPU usage, and were the same with uncapped TDP or 5W TDP on steam deck. It's a scheduling issue.)

I checked out Proton 9.0-3 and manually reverted that commit and confirmed that the lag spikes are gone. (So now I have a build with working videos and no lag spikes)

Other minor things: Video playback is fixed now in Proton 9.0-3 and Experimental. (It was broken in 9.0-2 and earlier)

The MSAA issue was fixed with an override in DXVK, as seen in the link above.

"I had to have a keyboard connected to the Deck [due to] KB/M controls being set as the default input method." The game seems to switch to keyboard controls if it doesn't detect a gamepad at boot, and it doesn't switch back automatically. I ran into this on desktop recently, but I haven't had this problem on my steam deck. (EDIT: rearranged for readability)

KingKrouch commented 1 month ago

Replying to https://github.com/ValveSoftware/Proton/issues/5711#issuecomment-2365132091

Interestingly, this stuttering issue also happens with games using the Orochi engine (From Silicon Studios) in general. Games would include Death end re;Quest 1+2, Neptunia VIIR and Virtual Stars, Dragon Star Varnir, and Mary Skelter Finale.

Although for some reason with the ladder bunch, I've been noticing worse performance (for some reason the games cap out at 58FPS on Proton, while some of them get much higher on Windows when force unlocking the framerate).

Do you got a pre-compiled build of Proton that fixes the regression that I can check out?

Video playback is fixed now in Proton 9.0-3 and Experimental. (It was broken in 9.0-2 and earlier)

This is very big if true, because Ghostlight's other ports that use Media Foundation codecs might work too, since they reuse a ton of their code between their ports. I believe that Mugen Souls and Mugen Souls Z should in theory be fixed now too, to list examples of a few other ports from them.

EDIT: They do indeed work, so I guess Mugen Souls at least can be listed as playable on the Steam Deck compatibility list finally.

Mary Skelter Finale also has working video playback. Mugen Souls Z apparently doesn't yet.

blah1 commented 1 month ago

Here's the patch I used: https://github.com/blah1/wine/commit/135b85a5cdc99380d8f2019154b7748722685085

Do you got a pre-compiled build of Proton that fixes the regression that I can check out?

Github won't let me upload more than 25MB apparently, so here's a link: https://mega.nz/file/HEcCXICQ#sj0x46hX2WRk2Im2ubWqBG6MjMCh4lQEQ0LYF1E7RiY (SHA256 should be '95c86fd88a04e2c164f3181edca2605f5f320b5ab731bad6f44fc818b82eee24')

(Disclaimer: I have no experience with this codebase and no idea if this causes any regressions (besides obviously breaking Little Nightmares 2 again))

KingKrouch commented 1 month ago

Here's the patch I used: https://github.com/blah1/wine/commit/135b85a5cdc99380d8f2019154b7748722685085

Do you got a pre-compiled build of Proton that fixes the regression that I can check out?

Github won't let me upload more than 25MB apparently, so here's a crude link that expires in 3 days: https://litter.catbox.moe/trbnoh.gz (should have been .tar.gz , rename it after downloading. I don't have time right now, but I can make a more permanent link tomorrow. SHA256 should be '95c86fd88a04e2c164f3181edca2605f5f320b5ab731bad6f44fc818b82eee24')

(Disclaimer: I have no experience with this codebase and no idea if this causes any regressions (besides obviously breaking Little Nightmares 2 again))

So I gave this a try, and the framerate doesn't have the stutter framerate drops anymore, but it still runs slower than it should. Right now it's fluctuating wildly between 40-55FPS even when nothing is going on, and it's not getting a locked 60FPS out of the Deck, and that's pretty important as game speed is tied to the framerate.

I'll need to test this out with some games that share the same engine.

I wonder if WINE_CPU_TOPOLOGY=2:0,1 %command% is enough to fix it.

EDIT: Looks like that topology tweak doesn't make a difference for me. There has to be some other performance regressions at play, because I remember these games running much better at one point. Another game using the same engine, Death end re;Quest stutters regardless if this Proton prefix is used or not.

blah1 commented 1 month ago

That's odd.

On my steam deck (a 64GB LCD upgraded with 1TB SSD), in gaming mode, I'm getting 45-55 fps on the opening logos (except "Denpile", which has 60fps), a somewhat jagged 57-61fps on the opening movie (the Mary Skelter 1 remake movie, because I enabled the DLC), and in the dungeon I'm getting a fairly stable 58-61fps. (Though I'm only in the beginning of area 2 still.) I'm also getting a fairly stable 60fps in areas 2-4 in the remake of Mary Skelter 1. Even with stock Proton 9.0-3, I'm getting around 60fps in most areas, and even in areas with particle effects I seem to be getting 60fps between the 500ms+ lag spikes. (Gamescope does occasionally say 60fps if I stare at the particles long enough to get a lucky half-second without a lag spike)

My performance settings are: "TDP Limit: 5W", "Allow Tearing: On". "Disable Frame Limit", "Half Rate Shading", and "Manual GPU Clock" are all unchecked. "Scaling Filter" and "Scaling Mode" are set to the leftmost option. In game I have "resolution: 1280x800" and "Display Mode: Fullscreen". (Yes, I'm getting nearly 60fps with 5W TDP, that's why I'm so surprised that you're having this lag (though the battery says it's using 9W...))

It sounds like you're having a separate issue. Does gamescope show your GPU or any of your CPU cores at 100% usage? Does the fps get worse if you cap your TDP? (If not then I'd suspect another scheduling issue or something like that.)

(I don't have any of the other games that you listed above, so I can't test those.)

blah1 commented 1 week ago

As mentioned in the other thread, Proton experimental now seems to have this applied: https://github.com/ValveSoftware/wine/commit/04de8cf0ac48671d0264367735f188cb9ef4f445

This seems to fix the particle effect stuttering (presumably more cleanly than the hack reversion I did).

That said, after not playing for 3 weeks (and a SteamOS reinstall last week), I'm running into some new lag in a weird pattern (on 9.0-3): https://steamcommunity.com/sharedfiles/filedetails/?id=3364836735 . Proton experimental didn't have that pattern: https://steamcommunity.com/sharedfiles/filedetails/?id=3364840966

Turning off background recording (and rebooting for good measure) didn't help, and changing various performance settings seemed to have no effect (though 300 and 500MHz GPU speed caused heavy lag for some reason). GPU and CPU usage were around 40%, so I assume it's some kind of scheduling issue again. I also tried 6.3-8 and 7.0-6 again, but they had 30 fps with heavy flickering (every second frame was black). I'm assuming this is just on my end though and maybe I just need to factory reset my steam deck or something. (and it's still 45-60fps, so it's nothing compared to the previous stuttering)

Also I ran into the game requiring keyboard and mouse today, like you said. It was fairly simple to fix using the touchscreen alone, though.

EDIT: Just did a quick test on my desktop and I'm getting a solid 60fps on proton experimental in heavy particle areas.

Now the only bug I'm still having on my desktop is the audio channels being reversed. (Spike/Guillotine traps sound like they're on the wrong side)