Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Need Testing] Implement TSX fallback #6056

Merged
merged 4 commits into from Jun 19, 2019
Merged

Conversation

Nekotekina
Copy link
Member

Remove Accurate PUTLLC option.
Implement fallback path for SPU transactions.

@Whatcookie
Copy link
Member

Whatcookie commented Jun 6, 2019

Persona 5 is now crashing with {RSX [0x00f6548]} RSX: nv406e::semaphore_acquire has timed out. semaphore_address=0x403005A0
P5TSXPRFA.log

Ninja gaiden sigma 2 hangs the same way as master does

Ninja gaiden sigma 1 also hangs with semaphore_acquire timeout
NGS1TSXPRFA.log

Edit: Got P5 to go ingame after trying a few more times, and performance is just as good as the old microcode, still hangs after a bit though

Edit 2: I forgot I just set accurate GETLLAR while testing ninja gaiden 3 demo just now, thats whats I needed to get ingame for P5

Edit 3: Actually, it turns out that setting accurate GETLLAR improves performance in P5 even on master with FA microcode...

@Whatcookie
Copy link
Member

P5 and sigma crashes seem fixed, but performance in P5 is still bad without accurate GETLLAR set.

Sigma 2 still hangs in the same manner

@legend800
Copy link

Motorstorm Apocalypse is still broken (see last comment here: #6020)

@incognitoh
Copy link

Good news. Testing 0.0.6-9320fec4, MotorStorm 2 (and others) are now working again with TSX + LLVM SPU Mega. For me, SPU LLVM Mega was broken a few weeks ago when TSX was enabled but this PR finally fixes it.

(i7 4790k Haswell)

@Whatcookie
Copy link
Member

Whatcookie commented Jun 7, 2019

(with force_abort microcode on commit 92ec6ab)
This PR in P5: 7 fps
Master in P5: 30 fps
Master/this PR with accurate GETLLAR in P5: 42 fps

While running perf stat -T (quick way to write 1 to the force_abort msr)
Master: 0 fps until I cancel
This PR: 0.22 fps until I cancel

The fallback is working, it wasn't in earlier commits. It doesn't really seem like its very useful though...

edit: With spu threads set to auto
This PR in P5: 20fps
Master in P5: 14 seconds per frame

@Sztefanol
Copy link

Journey and SotC both work now on LLVM on Haswell.

@legend800
Copy link

Yep, Motorstorm Apoc. is working again with LLVM + TSX. Thanks for the regression fix!

@Whatcookie
Copy link
Member

As discussed outside of github, recent commits improve performance for latest microcode, and almost all games have better performance than tsx off again. However...

Demon souls seems to have an issue on this pr with TSX enabled:
flicker
geometry now flickers in and out in certain scenes.
I tested 92ec6ab as well (last commit before performance improvement) and its still occurring there.

The flickering occurs every frame, and in a much more intense way after writing 1 to force_abort msr, so perhaps an issue with the fallback?
flicker2

@psennermann psennermann mentioned this pull request Jun 12, 2019
@psennermann
Copy link

Any news about this PR? On master build at the moment TSX+LLVM seems to be broken with every game...

@ruipin
Copy link
Contributor

ruipin commented Jun 17, 2019

Demon's Souls is a weird case, since the game has a specific race condition (game code, not RPCS3 fault) which causes the flicker. The more inconsistent the frame pacing, the more easily it triggers. I suspect frame pacing with the TSX fallback path is more inconsistent than before.

@Whatcookie
Copy link
Member

Whatcookie commented Jun 17, 2019

Isn't the flickering you're thinking of the full screen effect which appears with write colour buffers enabled? This seems different from that, since I used a patch which disables the dynamic exposure (removes the need for write colour buffers).

Edit: even the UI flickers in the first screenshot, I've never seen that before with the "flickering" but maybe I'm wrong

@legend800
Copy link

Yeah, a ton of games are broken with LLVM+TSX on Master (25% in my set), and both are needed for good perf in a bunch of them. This seems more like hotfix to me and to prevent false positives in other PRs.

Hopefully the Demon Souls thing can be sorted out as I don't see any other regressions noted and this can get merged soon.

@Nekotekina
Copy link
Member Author

Updated PR, please test for regressions.

@Nekotekina Nekotekina changed the title Implement TSX fallback [Need Testing] Implement TSX fallback Jun 17, 2019
@Whatcookie
Copy link
Member

Whatcookie commented Jun 17, 2019

Demon's souls flickering is fixed, even when writing 1 to force_abort msr. I'll edit this post if I find any regressions.

Edit: Persona 5 performance has regressed greatly with spu threads set to 2 (20fps) but performance is very fine (41 fps) if I set spu threads to auto.

@Nekotekina
Copy link
Member Author

Oh yeas, Preferred SPU Threads should be set to Auto with this PR.

@psennermann
Copy link

For now, after some quick testing, Ninokuni, Persona 5 and Shadow of the Damned seem to be ok

@legend800
Copy link

Seems like all known regressions are addressed and no new issues reported since the last commit a few days ago. Hopefully this fix pr can get merged soon as TSX is mostly broken on Master..

@Dime333
Copy link

Dime333 commented Jun 20, 2019

So does all games work best with SPU threads set to auto now or is the speed gain from using a specific number of SPU threads in some games lost with this build?

@legend800
Copy link

Ironically, I did just found a regression with this. NFL Blitz (maybe other ea titles?) suffered a massive speed drop:

0.0.6-8266
TSX on: 20 fps
TSX off: 50 fps

0.0.6-8262
TSX on: 60 fps

RPCS3.log.gz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants