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

Forces deterministic FP operations when online #13608

Merged
merged 4 commits into from Apr 12, 2023

Conversation

RipleyTom
Copy link
Contributor

@RipleyTom RipleyTom commented Apr 4, 2023

Turns out rcp sse instruction result differs between Intel and AMD.
From our spu float test with both set to accurate:

$ diff output_AMD.txt output_INTEL.txt 
33401,33402c33401,33402
< frest   ([04]) -> 3fe55500 3fe55500 3fe55500 3fe55500
< frest   ([05]) -> bfe55500 bfe55500 bfe55500 bfe55500
---
> frest   ([04]) -> 3fe55400 3fe55400 3fe55400 3fe55400
> frest   ([05]) -> bfe55400 bfe55400 bfe55400 bfe55400
33405,33406c33405,33406
< frest   ([08]) -> 3fe6dc00 3fe6dc00 3fe6dc00 3fe6dc00
< frest   ([09]) -> bfe6dc00 bfe6dc00 bfe6dc00 bfe6dc00
---
> frest   ([08]) -> 3fe6db00 3fe6db00 3fe6db00 3fe6db00
> frest   ([09]) -> bfe6db00 bfe6db00 bfe6db00 bfe6db00
33410,33413c33410,33413
< frest   ([13]) -> be7ad900 be7ad900 be7ad900 be7ad900
< frest   ([14]) -> 3e6ad900 3e6ad900 3e6ad900 3e6ad900
< frest   ([15]) -> bf0a3700 bf0a3700 bf0a3700 bf0a3700
< frest   ([16]) -> 3f0a3700 3f0a3700 3f0a3700 3f0a3700
---
> frest   ([13]) -> be7ad800 be7ad800 be7ad800 be7ad800
> frest   ([14]) -> 3e6ad800 3e6ad800 3e6ad800 3e6ad800
> frest   ([15]) -> bf0a3600 bf0a3600 bf0a3600 bf0a3600
> frest   ([16]) -> 3f0a3600 3f0a3600 3f0a3600 3f0a3600

This results in sync issues between AMD and INTEL users in multiplayer games.
Fixes #13599.
And probably #13449.

@RipleyTom RipleyTom marked this pull request as draft April 4, 2023 13:26
@RipleyTom RipleyTom changed the title Don't use sse rcp in FREST accurate Forces deterministic FP operations when online Apr 4, 2023
@RipleyTom
Copy link
Contributor Author

I changed the approach to force deterministic results when config specifies online.

@RipleyTom RipleyTom marked this pull request as ready for review April 4, 2023 15:05
@RipleyTom RipleyTom marked this pull request as draft April 4, 2023 15:46
@RipleyTom RipleyTom force-pushed the fix_accurate_rcp branch 2 times, most recently from 8efd040 to 2bb14ea Compare April 5, 2023 14:41
@Nekotekina Nekotekina merged commit d35fecb into RPCS3:master Apr 12, 2023
4 of 5 checks passed
@RipleyTom RipleyTom deleted the fix_accurate_rcp branch January 26, 2024 03:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[NPJB00512] Mobile Suit Gundam Extreme VS Full Boost-Disconnect after the game starts
4 participants