-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Handle fpu rounding mode at least in jits #6762
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
Conversation
Fixes Gods Eater Burst loading PSP savedata, but can no longer load old savedata.
Not really used that often, anyway, but easy enough and good for testing that we set the rounding mode correctly.
May also affect performance, so can be disabled for that.
|
Wow! Finally =) #2845 @unknownbrackets , I'm thinking we might be able to get away with resetting the rounding mode less - for example only when actually exiting the JIT loop (or entering C calls) instead of on every block exit. |
|
Hmm, that might be fine, right. Would have to do it before Advance still. -[Unknown] |
|
Great work [Unknown]. Did some prelim testing on my decrepit Core 2/ATI MR HD 4670 laptop and the performance hit is almost negligible. |
This should be less often than doing it per block that uses fpu, unless the game doesn't use fpu much at all.
|
Since there's no way to maintain a flag when it's done in the dispatch before Advance, I just made it always maintain the rounding mode around all C++. This will of course be more often than before for games that don't use fpu at all, but it shouldn't be very much. And for games that do use the fpu, it will probably be a lot less often. I'm also wondering what impact this does, or should (presumably should not), have on the vfpu... -[Unknown] |
|
Don't see any speed impact on PC |
|
I concur with daniel229's findings. Always maintaining the rounding mode doesn't seem to have an additional speed impact on my laptop either. Ultimately, one can always disable this function if a game is known not to require it since you've kindly exposed it as an option in the UI. |
Handle fpu rounding mode at least in jits
|
Hm, I might remove the option later if it turns out the speed impact is ~zero. |
|
Well, the option's more about being able to load old Gods Eater Burst savegames. I don't expect any speed impact on desktop that will matter, much more worried as usual for mobile. Even there, I think it is uncommon enough it won't matter. -[Unknown] |
|
Ah yes, I forgot about the GEB saves. Was wondering why mine wouldn't load in the latest build until I disabled the option. |
|
What you want to do is upgrade them (won't work on old PPSSPP versions though) by checking it again and then saving. This should make them load on a real PSP as well. -[Unknown] |
|
Right, that worked perfectly. I had no idea you could toggle the FPU rounding option on and off when a game is active and running in real time. |
|
@unknownbrackets right. I think I'll just kill off the option in a month or so then when everyone who still is likely to care has upgraded their saves. |
|
What about people using 0.9.9 who want to upgrade to 1.0.0? -[Unknown] |
|
Hi, I'm sorry I'm a total newb, how do I fix the PW Battle 2 issue? I'm running PPSSPP v0.9.9, thanks :) |
|
Perfect, it works now! Congratulations to the developers. |

This notably doesn't handle it in the interpreter, and out of free time to try to make that happen.
Have some test mul.s ops which I plan to add to the cpu/fpu/fpu test.
I did not notice any obvious performance impact on Android but I did not test thoroughly. If performance does take a hit, could maybe only start setting the mode if the game ever sets the FCSR, since it's uncommon but usually done in game init if it is done.
Fixes #3988 (well, except in interp.)
@thedax I am probably crazy to hope, but would love to know if Peace Walker is affected by this.VICTORY, fixes #2845.-[Unknown]