Rpcs3: SPU: FM instruction inaccuracies (Precise vs. Fast/ASMJIT)

Created on 22 Sep 2017  路  6Comments  路  Source: RPCS3/rpcs3

I found out that starting Journey with SPU Interpreter (Precise) allows it to go ingame (but seems to have issues uploading the textures, so it doesn't show any 3D graphics).

7d08ed8adc6f603a08b59c99cfb1f051

I tested the PR #3388, but it doesn't prevent the halt.

RPCS3.log.gz

P.D: The faulty instruction is FM (Float multiply) in SPU fast and ASMJIT. If I make SPU Fast to use the Precise implementation, the issue is solved. I have isolated the output of the instruction in one specific thread for each of the interpreters, making clear that it gives different outputs for specific inputs (NaN, and inf).

Here is a zip with both outputs: SPU_Comparison.zip

For example, in SPU Fast:

anyNumber(included 0) * inf = inf

In SPU Precise:

anyNumber * inf = NaN
Bug CPU

Most helpful comment

Hm, finding matches with #3388
Just needs a correct implementation

All 6 comments

1
2

Yep, if fix halt. Journey probably going playable.

RPCS3.log.gz

I have updated the issue with further information I have found.

Hm, finding matches with #3388
Just needs a correct implementation

Fixed

yes issue spu fixed, but render very glitched, and very slow speed ingame
Screen ingame

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AniLeo picture AniLeo  路  3Comments

Nezarn picture Nezarn  路  3Comments

xiangzhai picture xiangzhai  路  3Comments

elad335 picture elad335  路  3Comments

LokiGrants picture LokiGrants  路  3Comments