rpcs3 icon indicating copy to clipboard operation
rpcs3 copied to clipboard

Add various SPU patterns

Open RipleyTom opened this issue 1 year ago • 2 comments

  • Add accurate_re intrinsic
  • Add pattern for accurate_re * value = full divison
  • Add variants of fast division
  • Add variants of sqrt
  • Fix pattern recognition by using peek_through_bitcasts (@Nekotekina's fix)

RipleyTom avatar May 20 '23 15:05 RipleyTom

The Need for Speed Most Wanted audio is broken on this PR Build. RPCS3.log.gz

Ordinary205 avatar May 20 '23 15:05 Ordinary205

Testing needed?

jgt11 avatar Jun 01 '23 16:06 jgt11

This Pull Request has a positive impact on PlayStation Home it seems :

image

Now the MLAA anti-aliasing works with UI elements while before, it was a complete black-screen.

GitHubProUser67 avatar Jun 11 '23 13:06 GitHubProUser67

I disabled one pattern, needs testing.

elad335 avatar Aug 06 '23 08:08 elad335

Same results, the NFS audio is still broken on the latest PR build. RPCS3.log.gz

Ordinary205 avatar Aug 06 '23 09:08 Ordinary205

Rebased on Accurate FI PR and found the problematic shortcut, NFS now works.

RipleyTom avatar Jan 25 '24 00:01 RipleyTom

Can't wait for this to be merged into master branch ! )) A lot of GT6 softlocks are gone with this PR ! (maybe all of them)

Linear524 avatar Jan 25 '24 02:01 Linear524

The PR breaks Resistance 2 Master: image PR: image

RPCS3.log.gz

Jonathan44062 avatar Jan 25 '24 03:01 Jonathan44062

Moved the spu_re_accurate(b) * a = a/b patterns to relaxed as they were the ones creating issues in Resistance 2.

RipleyTom avatar Jan 26 '24 08:01 RipleyTom

This PR doesn't fix audio in Blur I'm afraid, it still needs Accurate Xfloat to stop audio from randomly disappearing completely and game stability. (tested latest commit only).

Asinin3 avatar Jan 27 '24 02:01 Asinin3

I couldn't find any regression on my games. Accurate now should be more accurate than it was, approximate may be very slightly slower but work with more games and relaxed should be faster than it was.

RipleyTom avatar Jan 28 '24 02:01 RipleyTom

Can you add description of the instruction patterns themselfs in the pr description. Such as FREST(x) => FI(x) = 1/x or sonething So it would be easier to follow and review

elad335 avatar Jan 28 '24 11:01 elad335

1.00000011920928955078125f(1.0f with lowest fraction bit set)

If this is what it is I rather have a bits representation such as bit_cast<f32>(bit_cast<u32>(1.f) + 1) instead of relying on the compiler to round it correctly and being more intuiative to read.

elad335 avatar Jan 28 '24 19:01 elad335

This PR introduced a new deadlock in MGO (and presumably MGS4) when using relaxed xfloat.

It seems to be stemming from the FI instruction, and the deadlock happens in control_task.spu.task.

Previously MGO only needed approximate FM, FMA, and FNMS.

cipherxof avatar Apr 19 '24 02:04 cipherxof

Well this broke lbp2 brainy cakes level making story no longer beatable

GalaxyGaming2000 avatar Apr 26 '24 16:04 GalaxyGaming2000

Well this broke lbp2 brainy cakes level making story no longer beatable

the level was already broken since february if im not wrong

aikhalaf avatar Apr 26 '24 16:04 aikhalaf

the level was already broken since february if im not wrong

This PR was merged in February.

cipherxof avatar Apr 26 '24 18:04 cipherxof

the level was already broken since february if im not wrong

well downgrading to the version before this fixes it and it was merged in feb so uh

GalaxyGaming2000 avatar Apr 27 '24 02:04 GalaxyGaming2000

the level was already broken since february if im not wrong

well downgrading to the version before this fixes it and it was merged in feb so uh

lmao excuse my foolishness

aikhalaf avatar Apr 27 '24 06:04 aikhalaf