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

[Feature request] Better PPU/SPU precompilation #16883

Open
Anuskuss opened this issue Mar 17, 2025 · 1 comment
Open

[Feature request] Better PPU/SPU precompilation #16883

Anuskuss opened this issue Mar 17, 2025 · 1 comment
Labels
CPU Discussion LLVM Related to LLVM instruction decoders

Comments

@Anuskuss
Copy link
Contributor

Anuskuss commented Mar 17, 2025

Quick summary

As mentioned in #14255, when you launch multi-title games (e.g. The Orange Box), you first have to compile/load PPU/SPU caches for the main menu. Once you get into the main menu and want to launch a game, you then have to compile/load the caches for that game. If you then leave the game and return to the main menu, you have to compile/load the caches for the main menu once again.

Details

RPCS3 should make an effort to find all executables and (pre) compile/load all possible PPU/SPU caches. Once you're actually in the game, no more compilation should happen as that ruins the user experience. This would also solve the second problem, which is that RPCS3 "forgets" about the cache once it loads a different one, which becomes especially annoying in something like Call of Duty because it means having to wait a minute each time you change the game mode (e.g. singleplayer -> multiplayer).
The option PPU LLVM Precompilation should be extended to support this.

P.S. Another thing that I'd greatly appreciate is if you guys treated the LLVM PPU/SPU cache like ASMJIT, or even the shader cache. It always takes ages to boot into a game. It would be awesome if you could just dump the cache to disk, give it an ID and only invalidate it when something warrants it. That way it could just be instantly loaded into RAM and you get right into the game. You could even make it so the cache only works with the exact version it was created with, because I personally only update RPCS3 when the tags change so I'd have slow load times once every few months instead of everytime.

@cipherxof
Copy link
Contributor

I wonder what the memory footprint of something like this would be, especially for games like MGS4.

@AniLeo AniLeo added CPU Discussion LLVM Related to LLVM instruction decoders labels Mar 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CPU Discussion LLVM Related to LLVM instruction decoders
Projects
None yet
Development

No branches or pull requests

3 participants