Hey hey everyone,
I've been working on JIT core improvements for a while now but they have never seen the light of day since I haven't felt they were up to snuff or fully completed. There are quite a lot of changes in the pipeline for these JIT core improvements.
This is the first step on the road to the JIT improvements.
From a technical standpoint of this change, what it changes is that it improves our CPU block sizes by compiling through conditional branching instructions. This improves speed in the JIT recompiler since we stop bouncing back and forth from JIT code and our JIT dispatcher as often.
From my amount of benchmarking I've seen improvements from 0% to 11% CPU speed improvements.
I've tested the povray bench a couple of times. Without the changes I got these results {10:42, 10:34}. With the changes I got {9:37, 9:51}. That's a 7% to 11% speed improvement.
While the povray bench is purely synthetic, it is still nice to see that such a simple change has done quite a decent speed increase.
For testing, persons should run a variety of games to see improvements where one is limited due to CPU emulation, not CPU limited in say the video backend or GPU emulation.
It shouldn't cause any emulation issues, or speed regressions. But of course it should always be tested for.
This only affects the Jit64 and JitArm32 CPU cores. It doesn't touch the Jit64IL or JitArmIL CPU cores.
Doesn't matter in most cases for Android since in 90% of cases we are limited by the video drivers on Mali and Adreno devices. Currently our WIP system isn't outputting APK files that anyone can download, so we'll have to wait on that.
For building on Linux/OS X/Android.
- Checkout my github repo.
- Checkout the branch
- Build it.
git clone https://github.com/Sonicadvance1/dolphin.git
git checkout newer-ppcanalyst
Windows builds: [UPDATED!!!]
x86: http://dl.dolphin-emu.org/wips/degasus-d...491-x86.7z
x86_64: http://dl.dolphin-emu.org/wips/degasus-d...491-x64.7z
I've been working on JIT core improvements for a while now but they have never seen the light of day since I haven't felt they were up to snuff or fully completed. There are quite a lot of changes in the pipeline for these JIT core improvements.
This is the first step on the road to the JIT improvements.
From a technical standpoint of this change, what it changes is that it improves our CPU block sizes by compiling through conditional branching instructions. This improves speed in the JIT recompiler since we stop bouncing back and forth from JIT code and our JIT dispatcher as often.
From my amount of benchmarking I've seen improvements from 0% to 11% CPU speed improvements.
I've tested the povray bench a couple of times. Without the changes I got these results {10:42, 10:34}. With the changes I got {9:37, 9:51}. That's a 7% to 11% speed improvement.
While the povray bench is purely synthetic, it is still nice to see that such a simple change has done quite a decent speed increase.
For testing, persons should run a variety of games to see improvements where one is limited due to CPU emulation, not CPU limited in say the video backend or GPU emulation.
It shouldn't cause any emulation issues, or speed regressions. But of course it should always be tested for.
This only affects the Jit64 and JitArm32 CPU cores. It doesn't touch the Jit64IL or JitArmIL CPU cores.
Doesn't matter in most cases for Android since in 90% of cases we are limited by the video drivers on Mali and Adreno devices. Currently our WIP system isn't outputting APK files that anyone can download, so we'll have to wait on that.
For building on Linux/OS X/Android.
- Checkout my github repo.
- Checkout the branch
- Build it.
git clone https://github.com/Sonicadvance1/dolphin.git
git checkout newer-ppcanalyst
Windows builds: [UPDATED!!!]
x86: http://dl.dolphin-emu.org/wips/degasus-d...491-x86.7z
x86_64: http://dl.dolphin-emu.org/wips/degasus-d...491-x64.7z