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: Make GETLLAR always accurate #15654

Merged
merged 2 commits into from
Jun 6, 2024
Merged

SPU: Make GETLLAR always accurate #15654

merged 2 commits into from
Jun 6, 2024

Conversation

elad335
Copy link
Contributor

@elad335 elad335 commented Jun 3, 2024

Following #15652, the reason for PUTLLC16 optimization to cause regressions was that the fat (old form) PUTLLC was, making GETLLAR accurate by providing additional checks for the data retrieved from the CELL memory.
Here we can kill two birds with one stone, from now on GETLLAR would be accurate (aside from the corner case which is side effects of operations on GETLLAR within the atomic loop scope - which is why I don't drop the setting altogether) and that PUTLLC16 optimization would be put in place.

Aims to fix (WIP):
Fixes #15652
#15645
#15644
#15635

Edit: At the end I decided the make accurate GETLLAR the default because there is no really a performance hit with it on. (it made more sense back in TSX days in which any additional memory touching counted)

@elad335 elad335 force-pushed the revert-s branch 4 times, most recently from 4365a62 to 1f79ba7 Compare June 5, 2024 13:11
@elad335 elad335 marked this pull request as ready for review June 5, 2024 13:24
@elad335
Copy link
Contributor Author

elad335 commented Jun 5, 2024

Ready for testing!

@elad335 elad335 changed the title SPU: Restore PUTLLC16 Optimization, Improve GETLLAR Accuracy [TESTERS NEEDED] SPU: Restore PUTLLC16 Optimization, Improve GETLLAR Accuracy Jun 5, 2024
@Darkhost1999
Copy link
Contributor

Darkhost1999 commented Jun 5, 2024

F {SPU[0x0000100] Thread (JM_SPU0) [0x00090]} SIG: Thread terminated due to fatal error: Out of range
(in file D:\a\1\s\rpcs3\Emu\Cell\SPUCommonRecompiler.cpp:5062[:47], in function struct spu_program __cdecl spu_recompiler_base::analyse(const class stx::se_t<unsigned int,1,4> *,unsigned int,class std::map<unsigned int,class std::basic_string<unsigned int,struct std::char_traits<unsigned int>,class std::allocator<unsigned int> >,struct std::less<unsigned int>,class std::allocator<struct std::pair<unsigned int const ,class std::basic_string<unsigned int,struct std::char_traits<unsigned int>,class std::allocator<unsigned int> > > > > *))

RPCS3.log
I used File -> all titles -> remove spu cache and found this when compiling new cache
BATTLEFIELD 3 [BLUS30762]
I was able to observe many more titles with the same error.
God of war collection
God of war 3
Killzone 2
Bioshock
Bioshock 2
Darksector
To name a few.

@elad335 elad335 force-pushed the revert-s branch 2 times, most recently from 611525c to 2a90471 Compare June 5, 2024 15:03
@elad335
Copy link
Contributor Author

elad335 commented Jun 5, 2024

Fixed! Also, YAKUZA: DEAD SOULS no longer requires accurate GETLLAR on default settings!

@RPCS3 RPCS3 deleted a comment from JohnLoveJoy Jun 5, 2024
@cipherxof
Copy link
Contributor

cipherxof commented Jun 5, 2024

Crashed in MGO after entering the title screen.

Only happened on the first boot.

·F 0:01:11.962226 {SPU[0x0000200] Thread (MGS4_URGENTCellSpursKernel0) [0x218e8]} SIG: Thread terminated due to fatal error: Unknown STOP code: 0x0 (op=0x0, Out_MBox=empty)
(in file D:\a\1\s\rpcs3\Emu\Cell\SPUThread.cpp:6357[:22], in function bool __cdecl spu_thread::stop_and_signal(unsigned int))

RPCS3.log.gz

@OA01UCipher
Copy link

Same freeze/hang before intro in MGSV GZ and TPP

MGSV Ground Zeroes:
RPCS3.log.gz

MGSV The Phantom Pain:
RPCS3.log.gz

@elad335 elad335 changed the title [TESTERS NEEDED] SPU: Restore PUTLLC16 Optimization, Improve GETLLAR Accuracy SPU: Make GETLLAR always accurate Jun 6, 2024
@elad335 elad335 merged commit ac5d907 into RPCS3:master Jun 6, 2024
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Task] Enable Accurate SPU GETLLAR by default
4 participants