-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
JitArm64: Increase farcode & nearcode cache size #12664
Conversation
@dreamsyntax Could you test Shadow the Hedgehog on AArch64 with this PR? |
8199cce
to
b3ceb16
Compare
Will do. If anyone else could please test other games/phones to see if the negative penalties such as longer stutter apply. Time to first stutter & Jit Cache Clear in Logging: Pixel 6 Relevant logs, happens at init on all branches but no detriment as below is not near/farcode clear.
(this PR) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Completed tests on Android. Resolves Shadow stutter from JIT Cache clear
If farcode was becoming full every five minutes, I think the reason for the improvement is PR #12319. But if it was nearcode becoming full, I'm less sure. |
That checks out. My prior ARM log was farcode, and it was before that PR. |
This needs a rebase. Should we merge this before the beta? It sounds like it works fine. |
This is a JitArm64 version of 219610d. Due to limitations on how far you can jump with a single AArch64 branch instruction, going above the former limit of 128 MiB of code (counting nearcode and farcode combined) requires a bit of restructuring. With the restructuring in place, the limit now is 256 MiB. See the new large comment in Jit.h for a description of the new memory layout.
b3ceb16
to
e8154a5
Compare
Sure, why not. |
This is a JitArm64 version of PR #12213.
Due to limitations on how far you can jump with a single AArch64 branch instruction, going above the former limit of 128 MiB of code (counting nearcode and farcode combined) requires a bit of restructuring. With the restructuring in place, the limit now is 256 MiB. See the new large comment in Jit.h for a description of the new memory layout.