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

SPU LLVM: improve performance in some situations #5882

Merged
merged 4 commits into from Apr 30, 2019

Conversation

Nekotekina
Copy link
Member

For example, before (with accurate xfloat):

Screenshot from 2019-04-25 13-33-19

After:

Screenshot from 2019-04-25 13-35-25

@Nekotekina Nekotekina changed the title SPU LLVM: improve codegen in loops SPU LLVM: improve performance in some situations Apr 25, 2019
@ghost
Copy link

ghost commented Apr 25, 2019

Regression on [BCES01893] Gran Turismo 6 using SPU LLVM

unknown

LOG:
RPCS3.log.gz

SPU LOG:
spu.log.gz

@Nekotekina
Copy link
Member Author

Updated, you may try if the crash is gone.

@ghost
Copy link

ghost commented Apr 25, 2019

Working fine now!

@legend800
Copy link

legend800 commented Apr 25, 2019

Nice speed boost in several tested games.

Captain America - 20>24 in slow areas
PR:
2019-04-25 08_37_49-Window

Master:
2019-04-25 17_53_02-Window

Wipeout HD - 45>50 in slow areas
2019-04-25 08_42_26-Window

Emu hangs a lot now when close game window. Don't have this issue with today's Master.

@Asinin3
Copy link
Contributor

Asinin3 commented Apr 25, 2019

With SPU LLVM and Approximate xfloat (not accurate) I saw no performance gain in Persona 5, WipEout HD, Red Dead Redemption and Sly Cooper Thieves in Time.

Gained ~2fps in Ni No Kuni with accurate xfloat ON (note, accurate xfloat is only needed to fix Oliver's Cape color in Ni No Kuni, it's extremely minor and not worth turning accurate xfloat on.)

@MsDarkLow
Copy link
Contributor

MsDarkLow commented Apr 25, 2019

I tested the sample you used in 3 different spots (Zoomed in twice and Default).
i7-8700k @4.7GHz

Pictures Spot for reference

1 - Zoomed in
1
2 - Default
2
3 - Zoomed in
3

We get double the performance in many occasions when using accurate xfloat compared to how currently is in master.

However when without xfloat, I noticed a drop in fps in the 2nd spot, the other spots seem to be within margin of error.

These are the fps I got for each spot.

Scenario Accurate xfloat Approximate xfloat
Master PR Master PR
1 7.81 15.05 19.16 20.39
2 27.56 45.54 66.50 59.68
3 10.93 20.56 28.55 29.51

@proganime1200
Copy link

proganime1200 commented Apr 25, 2019

tried to use this on persona 5 and see a minor performance boost on some places with SPU LLVM and accurate xfloat before : 13 fps after 18fps

@kirbyguy22
Copy link

kirbyguy22 commented Apr 26, 2019

Gran Turismo 6 1.05 [BCUS98296]
i7-9700K @ 4.9GHz

  • Force CPU Blit is enabled
  • FPS averages were recorded in Time Trials over 1 lap using the Subaru BRZ GT300 in the roof camera
 Accurate xfloat Approx. xfloat
Track Master PR Master PR
Bathurst 32 36 38 37
Matterhorn 33 36 40 39

Noticeable improvement (~10%) using accurate xfloat, but no improvement at all when it is off. I will add more tracks as I test.

@arcadee1977
Copy link

Ninja gaiden sigma 2 improvement 51FPS-->58FPS (non accurate xfloat)

@psennermann
Copy link

I see almost a 10% speed gain with the game Journey (from 12,5 to 13,5 fps - non accurate xfloat)

Win10, i7 7700, gtx1060

@Aurez
Copy link

Aurez commented Apr 27, 2019

The House of the Dead 4 doesn't boot anymore with this PR

@legend800
Copy link

Confirmed. HOTD4 hangs on boot.

RPCS3.zip

@Nekotekina Nekotekina force-pushed the master branch 4 times, most recently from 16b44d9 to f1c094f Compare April 29, 2019 13:16
Implement remaining instructions.
Implement match_expr method.
Implement helper methods.
Register information about register accesses.
@Nekotekina Nekotekina force-pushed the master branch 2 times, most recently from 50300ae to 0c1e554 Compare April 30, 2019 21:07
Use a trick in check_state to improve LICM pass.
Refactor SPU analyser (block_info struct).
Fill register use info (currently unused).
@Nekotekina Nekotekina merged commit 1bc5e27 into RPCS3:master Apr 30, 2019
Nekotekina added a commit to Nekotekina/rpcs3 that referenced this pull request May 1, 2019
Bug in the analyser was created recently in RPCS3#5882.
Nekotekina added a commit to Nekotekina/rpcs3 that referenced this pull request May 1, 2019
Bug in the analyser was created recently in RPCS3#5882.
@Muramas
Copy link

Muramas commented May 2, 2019

I have noticed a huge stability improvement in P5 but I don't know if it is from #5895 or this. Keep up the good work

Nekotekina added a commit to Nekotekina/rpcs3 that referenced this pull request May 2, 2019
Bug in the analyser was created recently in RPCS3#5882.
@jobs-git
Copy link

jobs-git commented May 5, 2019

Huge performance improvement in Diablo 3. From 29fps to 38fps in Stronghold area! Other places its always 60fps!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet