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
A64 fastmem #528
A64 fastmem #528
Conversation
|
Please match the codestyle of the rest of the codebase. Design comments:
Misc comments:
I will give this a proper review when I can. |
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.
Apologies for my stricter than usual comments, but this touches a part of the codebase which is difficult to adequately test.
5b9f625
to
020e31b
Compare
no worry, that's helpful :) |
|
|
Just FYI, I've implemented what I've said above here: https://github.com/MerryMage/dynarmic/compare/fm |
Too fast ! On the exception fallback I think we had the same, but I couldn't validate it succesfully, it goes through Do you get better results ? |
418ab58
to
3202e4c
Compare
3364e12
to
63bc331
Compare
|
rebased the PR on top of fm branch, changed on A32/A64:
The few tests I did on page faults still can't clear the SIGSEGV though, even on A32, I would be curious to know how this mechanism is used |
63bc331
to
f36946f
Compare
6350e62
to
5635c4e
Compare
4417c16
to
495f58e
Compare
|
Hey! Apologies for getting back to this late. LGTM as is, I'll rebase onto |
Could you clarify what you mean by this? If you're running in a debugger on Windows, some debuggers hook segfaults (and get to them before we can intercept them). We're already using the fastest possible SEH handling method, though. |
|
OK I understood what happens. But it starts to be messy and I can't find a way to make a portable test out of it. For now I will leave it as is, if that's ok with you. |
d1e99ac
to
8c7fee3
Compare
|
Is there any way how I can help to get this merged to master as well? I can confirm that this implementation is working fine. I've seen a 15% performance increase in the CPU emulation in yuzu ingame BOTW. |
|
I can rebase this branch to a commit which is yuzu-compatible. (I've removed some yuzu-specific hacks.) |
|
Thanks for the offer, I already did so: https://github.com/degasus/dynarmic/commits/fm Edit: Would it help you if I rebase it on latest master, and move the fixups from the second commit to the first? |
Direct access to host (virtual) address space with
fastmemoffset, propagated from A32.The goal is to delegate page table computation and page boundaries detection to the hardware.
Benchmark
From memory intensive sequential read/write
Elapse time on i5-4590 compared to page table is