Jit sparse continuation #250

Merged
LotP1 merged 13 commits from jit-sparse-continuation into master 2024-11-22 21:33:44 +00:00

13 Commits

Author SHA1 Message Date
Evan Husted
141cbb11c5
Merge branch 'master' into jit-sparse-continuation 2024-11-22 15:19:04 -06:00
LotP1
fd81089955 missed unlock of sparse level count
this doesn't affect how the emulator runs as sparse only has 2 levels, but it functionally already supports more levels so the limit can be removed.
2024-11-22 00:55:53 +01:00
LotP1
91ef005a3c remove LowPowerPPTC from HLEConfiguration
it's unused and doesn't need to be here, so it's getting reverted
2024-11-22 00:55:53 +01:00
LotP1
b898fbd906 More info in log and renamed default profile
The PTC InternalVersion is now included and the default PPTC profile os now called "default"
2024-11-22 00:55:53 +01:00
LotP1
ba0a65078d Revert the link to the Low Power PPTC cache setting
The emulator now always uses GiantBlock.
TinyBlock has been left in, but is unused.
2024-11-22 00:55:53 +01:00
LotP1
08520812d4 Revert "Update and Reset locales for the LowPowerPPTC toggle"
This reverts commit a5dca04490d18c47cfdff87704cf5ec2a232c0bf.
2024-11-22 00:55:53 +01:00
LotP1
1ed7774256 Update and Reset locales for the LowPowerPPTC toggle 2024-11-22 00:55:53 +01:00
LotP1
206a66464c Use bigger memory blocks for GiantBlock
When using GiantBlock the memory block used for filling SparseMemoryBlocks is now 4096 times bigger.
Cuts function table mapping times by a factor of about 5000
2024-11-22 00:55:53 +01:00
LotP1
7ddcbe30f3 Show the PPTC profile in the console 2024-11-22 00:55:53 +01:00
LotP1
6e2631dd7b PPTC Profiles & FunctionTable options
The Sparse Jit Function Table sizes now depend on the LowPowerPTC setting. This means lower power devices won't be impacted as hard by the higher ram speed requirement of GiantBlock.
Also added functionality to the PPTC Initializer so it now supports different PPTC Profiles simultaneously, which makes switching between TinyBlock/LowPower and GiantBlock/HighPower seamless.
This also opens the door for the potential of PPTC cache with exefs mods enabled in the future.
Default (aka HighPower) currently has an Avalonia bug that causes a crash when starting a game, it can be bypassed be clicking the window multiple times durring loading until the window unfreezes.
2024-11-22 00:55:53 +01:00
LotP1
aefaa9eeb8 Implement TinyBlock
Updated the Branch to use TinyBlock by default.
In the next commit GiantBlock will be default with TinyBlock being used instead of LowPowerPTC is enabled.
2024-11-22 00:55:53 +01:00
Evan Husted
0f01b184eb I may be stupid 2024-11-22 00:55:53 +01:00
Evan Husted
df5e225d2d JIT Sparse Function Table, by riperiperi 2024-11-22 00:55:53 +01:00