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

Ensures threads are stopped in sys_spu_thread_group_join #5310

Merged
merged 3 commits into from
Nov 13, 2018

Conversation

RipleyTom
Copy link
Contributor

@RipleyTom RipleyTom commented Nov 5, 2018

Only sets status to SPU_STATUS_STOPPED_BY_STOP when the thread is actually stopping(end of cpu_task).
sys_spu_thread_group_join will only finish when all threads have actually stopped.

Thanks whym for the logs and elad for helping me figure out the correct way to fix this.

@AniLeo
Copy link
Member

AniLeo commented Nov 5, 2018

Fixes old Catherine regression from earlier this year which makes the game non deterministically freeze after Atlus logo

Needs testing: #4861

Fixes #4473

@Emulator-Team-2
Copy link

Fixes freezing issue in Bleach: Soul Resurreccion.

@darkdragonz12
Copy link

FIXED FREZZE BLAZE BLUE CENTRAL FICTION!! GREAT WORK
sin titulo

@darkdragonz12
Copy link

FIXED FREEZE NARUTO SHIPPUDEN ULTIMATE NINJA STORM 2
naruto

@darkdragonz12
Copy link

darkdragonz12 commented Nov 5, 2018

FIXED Devil my cry 4 Frezze
devyl my cry 4

in this game he still has the problem of installing files, but that's a different problem I think

@RainbowCookie32
Copy link
Contributor

RainbowCookie32 commented Nov 5, 2018

Can confirm, brings Catherine NPUB30698 back ingame for me
capture
Thank you very much for the fix!

Edit: Actually the emulator crashed after a cutscene (when Vincent wakes up the first time), I'm not sure if it's related but I'm dropping the log here just in case
RPCS3.zip

@AniLeo
Copy link
Member

AniLeo commented Nov 5, 2018

Cutscene issue is unrelated. See #4408

rpcs3/Emu/Cell/SPUThread.cpp Outdated Show resolved Hide resolved
@josearr
Copy link

josearr commented Nov 5, 2018

Catherine is now fixed for me:
Windows 10
i5 3570K
GTX 1060 6GB
32GB RAM 1800MHz

@HexyFify
Copy link
Contributor

HexyFify commented Nov 5, 2018

Ripley's on a roll! 👍

@micaelis72
Copy link

This PR probably fixes all issues on #4875

@YaPeL
Copy link

YaPeL commented Nov 6, 2018

does not fix #4861 @AniLeo

@micaelis72
Copy link

Linux tests done!

Indeed fix errors in:

  • BLUS30196 [Valkyria Chronicles] Maybe can be considered playable. Only the texture leak on the first battle remains
  • BLUS30793 [SSFIVAE] Now goes ingame after the first intro cutscene
  • BLJS10184 [Macross 30] No longer freezes on cutscenes or transitions until gameplay. Still shows several errors on the console and when goes ingame, fps drops from 30 to 1-2 fps

@RipleyTom RipleyTom force-pushed the CleanFix branch 3 times, most recently from 315e7b0 to a7ce791 Compare November 9, 2018 20:47
@RealMrPascal
Copy link

Build Fixes KH1.5 First Cutscene Blackscreen Freeze and in KH 2.5 After Final Battle Blackscreen Freeze.

OS: Windows 7
CPU: Intel Core i7 6700K
GPU: Nvidia Geforce GTX 1060 6GB
RAM: 16GB DDR4

@kd-11 kd-11 merged commit 0e0a82e into RPCS3:master Nov 13, 2018
Nekotekina added a commit to Nekotekina/rpcs3 that referenced this pull request Nov 13, 2018
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
Nekotekina added a commit to Nekotekina/rpcs3 that referenced this pull request Nov 13, 2018
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
Nekotekina added a commit to Nekotekina/rpcs3 that referenced this pull request Nov 14, 2018
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Use SPU_STATUS_STOPPED_BY_STOP exclusively for sys_spu_thread_exit() as before
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
Zangetsu38 pushed a commit to Zangetsu38/rpcs3 that referenced this pull request Nov 17, 2018
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Use SPU_STATUS_STOPPED_BY_STOP exclusively for sys_spu_thread_exit() as before
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
@legend800
Copy link

This PR broke Ridge Racer 7 with SPU LLVM: #5342

Zangetsu38 pushed a commit to Zangetsu38/rpcs3 that referenced this pull request Nov 22, 2018
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Use SPU_STATUS_STOPPED_BY_STOP exclusively for sys_spu_thread_exit() as before
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
@RipleyTom RipleyTom deleted the CleanFix branch June 4, 2019 17:19
@M-Hassan90s
Copy link

RipleyTom:CleanFix

@RPCS3 RPCS3 deleted a comment from thiagosp89 Jun 23, 2023
@RPCS3 RPCS3 locked and limited conversation to collaborators Jun 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.