-
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
Jit: Replace "msrBits" with "featureFlags" and use for performance monitor #11988
Conversation
@JMC47 Could you help me test this? Enable JIT logging on warning level, then run Resident Evil 4 as well as Harry Potter and the Prisoner of Azkaban and check:
JitArm64 support not yet implemented. |
22c23db
to
b431f1d
Compare
b431f1d
to
3241c89
Compare
JMC has now done the testing. It seems like having to recompile a JIT block due to mismatching feature flags happens about 400 times when booting Harry Potter and the Prisoner of Azkaban but not in other situations, and there was no noticeable performance impact when playing either of the two games I listed. So handling mismatched feature flags by always recompiling the block should be fine. Combined with JitArm64 support being added, I now consider this PR ready. |
This is tested. If no one reviews it I will eventually merge this. Please review it before that happens. |
5e7644e
to
1088953
Compare
1088953
to
78e3e1e
Compare
This means we now require 64 GiB of free disk space on Windows? |
No, it works fine with a tiny amount of free disk space, just like before. But it is true that this increases the allocation you're thinking of from 32 GiB to 64 GiB. |
e3869f0
to
d158d8a
Compare
Needs a rebase now that the dispatcher stuff is merged |
d158d8a
to
20ed0d9
Compare
20ed0d9
to
e518f70
Compare
Preparation for the next commit.
By making the JIT cache check if the current state of MMCR0 and MMRC1 matches the state they had at the time the JIT block was compiled, we solve a correctness issue (marked in a comment as a speed hack). Not known to affect any games.
This has the same effect in the end, but in my opinion, doing it this way makes it more clear for the reader why we can read from ppcState at JIT time, something that makes no sense for everything else in ppcState.
e518f70
to
94b31eb
Compare
By making the JIT cache check if the current state of MMCR0 and MMRC1 matches the state they had at the time the JIT block was compiled, we solve a correctness issue (marked in a comment as a speed hack).
Not known to affect any games.