daniel-schuermann / mesa

Mesa 3D graphics library (mirror; no pull requests here please)
http://mesa3d.org
135 stars 3 forks source link

Soul Calibur 6's sound issue in Wine/Proton exacerbated by ACO to the point of crashing game at loading screen #152

Closed motmontheinternet closed 4 years ago

motmontheinternet commented 4 years ago

First, an explanation of what the SC6 sound bug is, this bug happens with llvm, too, but it's more of an irritation with llvm than a crash. Every time you update Mesa, Soul Calibur 6 will revert to a state where any time a sound is called for the first time, the game will hang as it loads that sound, in llvm this is somewhere between a quarter of a second to two seconds. After calling a sound once, the game will not hang again when playing that sound until the next time you update Mesa. Closing the game and restarting the game doesn't recreate the problem, neither does restarting the computer. This means every time I update Mesa, I have to load up my character and do a lot of his moves so he says a lot of things and his weapon makes a lot of noises so I have run through the majority of them and I can play in peace for the next few months, no matter how many times I start up the game in that time period. The length of the sound is proportional to the length of the hang.

Now, in ACO, the hang is somewhere between 3 seconds and 10, and in fact I cannot even start the game, I can only very slowly navigate the menus to the point of trying to load a match, where the game sits at the point between the loading screen and when rendering the scene actually begins for 30 seconds and then simply sends me to desktop without any error message that I can see (I'm not a programmer, I don't know where to look, and nothing pops up). So I set RADV_PERFTEST=llvm and try again, where I see the audio issue happening (because I have installed the latest Mesa build from Steam's Ubuntu ACO PPA), but it works the same as described in the first paragraph. I did as many things as I could to call audio files for a while, shut the game down, set RADV_PERFTEST=aco, and loaded the game up again. This time the game started up just fine with no issue, because as I headed into a match, I did nothing to load new audio files. Once in the match the game would hang much more noticeably when faced with new audio than llvm would have.

I'm aware this probably isn't strictly an ACO issue, but just putting it out there, cause SC6's performance issue is annoying with llvm, but is much worse with ACO.

I have a Vega 56 card, am running Linux Mint 19.2, and the latest Mesa driver from Valve through the Ubuntu PPA. Note that I have previously owned a computer with a Radeon 270x and the sound issue described in the first paragraph equally applied to that computer as well when I still had it six months ago.

daniel-schuermann commented 4 years ago

What you are encountering sounds more likely to be compile stutters than sound issues. When a shader is compiled for the first time, the game freezes (thus doesn't continue to play the sound) for that moment. Would you be able to provide a renderdoc capture of some situation/animation which created such long freeze? see https://github.com/daniel-schuermann/mesa/issues/new?template=bug_report.md for the steps required.

motmontheinternet commented 4 years ago

I have no experience with tarballs like renderdoc's and ./configure and make do nothing, plus google is clueless about my inexperience.

daniel-schuermann commented 4 years ago

There is no need to build renderdoc. Just download the latest stable version, extract it somewhere, open bin/qrenderdoc once to set up the layer and you are able to capture frames like described in the template.

motmontheinternet commented 4 years ago

Okay, I gave it a shot and the game just crashes when I press F12. If renderdoc gives a capture despite the crash, I can't find it because the included instructions don't specify a folder and I'm just assuming it lands somewhere in the home folder, which I searched.

pendingchaos commented 4 years ago

RenderDoc captures are put in /tmp/RenderDoc/

motmontheinternet commented 4 years ago

This session I did five moves that would cause hang, one of the moves lasts for several seconds. https://drive.google.com/open?id=1PAItM8SXOyzBj0EYMHFIjITzRWaYb0Jb

daniel-schuermann commented 4 years ago

@motmontheinternet is this still an issue? the provided capture replays fine for me with both, llvm and aco.

motmontheinternet commented 4 years ago

To be honest, I do not know because I bought a new CPU a month ago and the performance was fixed at that point. I was using a Ryzen 2400G as a placeholder and since upgraded to a Ryzen 3700X. I was doing updates and such as soon as they were released from the time of making this thread until the new CPU and nothing changed until the hardware upgrade.