mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-29 11:55:28 +03:00
be825b7aad
In some games performing the binary search in `TranslateRange()` ended up taking a fairly large (~8%) proportion of GPFIFO time. By using a segment table for O(1) lookups this is reduced to <2% for non-split mappings at the cost of slightly increased memory usage (2GiB in the absolute worse case but more like 50MiB in real world situations). In addition to adapting `TranslateRange()` to use the segment table, a new function `LookupBlock()` for cases where only a single mapping would ever be looked up so the small_vector handling and fallback paths can be skipped and the entire lookup be inlined. |
||
---|---|---|
.. | ||
libraries | ||
src/main | ||
.gitignore | ||
build.gradle | ||
CMakeLists.txt | ||
proguard-rules.pro |