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

uaqlover picture uaqlover  路  3Comments

altiereslima picture altiereslima  路  3Comments

Asinin3 picture Asinin3  路  3Comments

iBlackS0ul picture iBlackS0ul  路  3Comments

legend800 picture legend800  路  3Comments