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: improve analyser [WIP] #4750

Merged
merged 2 commits into from Jun 22, 2018
Merged

SPU: improve analyser [WIP] #4750

merged 2 commits into from Jun 22, 2018

Conversation

@Nekotekina
Copy link
Member

Nekotekina commented Jun 13, 2018

Detailed description is under construction.

@Nekotekina Nekotekina force-pushed the Nekotekina:master branch 4 times, most recently from 165af9a to 3b7d0a0 Jun 13, 2018
@Nekotekina Nekotekina force-pushed the Nekotekina:master branch 4 times, most recently from 16d9834 to 0571c5a Jun 19, 2018
@Nekotekina

This comment has been minimized.

Copy link
Member Author

Nekotekina commented Jun 20, 2018

Potential fixes are applied to solve the problem of crashing on the first run with SPU LLVM.

@alex88510

This comment has been minimized.

Copy link

alex88510 commented Jun 20, 2018

ToCS previously will hang on SPU LLVM.
With this PR, it is able to load and play intro video but later crash the emulator.

I saw it generating a lot of SPU LLVM cache (first run)
RPCS3.log.gz

EDIT: after last changes of this PR merged, ToCS is able to run with SPU LLVM. (only tested a little)
First run will cause a lot of stuttering as it is generating the SPU cache.

@isshininu

This comment has been minimized.

Copy link
Contributor

isshininu commented Jun 21, 2018

With this PR I can test games, if they are SPU LLVM-compatible?
I also mean - if game crashes on SPU ASMJIT, perhaps it can work on SPU LLVM now?

@Nekotekina

This comment has been minimized.

Copy link
Member Author

Nekotekina commented Jun 21, 2018

Wait until next PR update though.

@isshininu

This comment has been minimized.

Copy link
Contributor

isshininu commented Jun 21, 2018

With this PR Silent Hill Downpour goes ingame in SPU LLVM for the first time.
No sound ingame, only in start menu.

RPCS3.log.gz

P.S.

F {PPU[0x1000000] Thread (main_thread)} class std::runtime_error thrown: Compilation failed

Same compilation error for Demon's Souls, though i am not sure if this game was even tested before.

RPCS3.log.gz

Build SPU cache after PPU, fix mixing progress
SPU ASMJIT: add support for Giga mode
SPU ASMJIT: use the same spu.log location as SPU LLVM
SPU: improve spu.log disasm
SPU: improve trampolines, unify with SPU ASMJIT
SPU: decode interrupt handler address from BR/BRA at 0x0
SPU LLVM: support Mega/Giga modes
SPU LLVM: implement function chunks
SPU LLVM: use PHI nodes, value visibility across basic blocks
SPU LLVM: implement function chunk table
New simple memory manager for LLVM (bugfix)
@Nekotekina Nekotekina force-pushed the Nekotekina:master branch from 0571c5a to e4da284 Jun 21, 2018
Simplify code by using root config location for /dev_flash/
Hide Emu.GetEmuDir() function due to the risk of misuse
@Nekotekina Nekotekina merged commit 81e5f3b into RPCS3:master Jun 22, 2018
2 of 4 checks passed
2 of 4 checks passed
continuous-integration/appveyor/branch Waiting for AppVeyor build to complete
Details
continuous-integration/travis-ci/push The Travis CI build is in progress
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@Dokman

This comment has been minimized.

Copy link

Dokman commented on e4da284 Jun 22, 2018

SPU ASMJIT

FPS R&C Before R&C After
In a cave 60 61
Open World 30 35
@spyropt

This comment has been minimized.

Copy link

spyropt commented Jun 22, 2018

Persona 5 ASMJIT
F {SPU[0x2000001] Thread (gfdSpursCellSpursKernel1) [0x0b5b8]} MEM: Access violation writing location 0xffdead00
RPCS3.log.gz

@Hasster1

This comment has been minimized.

Copy link

Hasster1 commented Jun 22, 2018

That's a really great idea - to merge the PR with giant [Work In Progress] words.

@spyropt

This comment has been minimized.

Copy link

spyropt commented Jun 22, 2018

The last of us now locks before showing Naughty Dog logo
tryed with cpu blit/wcb and without on asmjit
RPCS3.log.gz

@AniLeo

This comment has been minimized.

Copy link
Member

AniLeo commented Jun 22, 2018

It's his PR, it's a great idea to merge whenever he feels like it

@Emulator-Team-2

This comment has been minimized.

Copy link

Emulator-Team-2 commented Jun 22, 2018

@vsub

This comment has been minimized.

Copy link

vsub commented on 81e5f3b Jun 22, 2018

Just curious,why was this change done?
Now I can't test newer betas unless I also copy the dev_flash folder from my old rpcs3 folder along with the data folder

When I start this version and point(Manage=>Virtual File System)where my old rpcs3 version is(where the games are the the firmware(dev_flash)),the modules are missing when I go to Confuguration=>CPU after that

dev_flash is not part of the Virtual File System

@spyropt

This comment has been minimized.

Copy link

spyropt commented Jun 22, 2018

@Emulator-Team-2 dont know why you directed that to me but ok, if its not to report regressions... i simple stop doing it.
The same applies to all the user writing in this github.
lets delete all the issues by the way since its an emulator and not some shitty game...

@AniLeo

This comment has been minimized.

Copy link
Member

AniLeo commented Jun 22, 2018

Persona 5 w/ SPU ASMJIT

image

@Nekotekina

This comment has been minimized.

Copy link
Member Author

Nekotekina commented Jun 22, 2018

@spyropt Maybe you need to delete SPU cache, if you tested this PR before merge. Or need more information to reproduce.

@spyropt

This comment has been minimized.

Copy link

spyropt commented Jun 22, 2018

@Nekotekina did a fresh install and the same thing happens, could be because my cpu does not support avx/tsx
spu llvm works fine
The master build before this pr got merged works with asmjit

@AniLeo

This comment has been minimized.

Copy link
Member

AniLeo commented Jun 22, 2018

My test was done on a non-TSX CPU, but has AVX, AVX2 and XOP

@spyropt

This comment has been minimized.

Copy link

spyropt commented Jun 22, 2018

@AniLeo Ijust tested on a 3770k avx cpu and it works fine on asmjit
on my other cpu x5675 just goes in infinite loading
image

with F {SPU[0x2000004] Thread (gfdSpursCellSpursKernel4) [0x0b5b8]} MEM: Access violation writing location 0xffdead00

usually i do all my tests on the x5675 since its an arcade machine just for emulation

@Nekotekina

This comment has been minimized.

Copy link
Member Author

Nekotekina commented Jun 22, 2018

Reproduced! AVX cpu are unaffected.

@psennermann

This comment has been minimized.

Copy link

psennermann commented Jul 8, 2018

I have an AVX+ cpu (i5 7400 - no TSX) and I think that this PR causes Demon's Soul (maybe other games as well?) to reliably hang/crash on my system…

Win10
Gtx 1060 3gb
i5 7400

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
10 participants
You can’t perform that action at this time.