skyline/app
Billy Laws be825b7aad Utilise SegmentTable for rapid FlatMemoryManager lookups
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.
2022-11-02 17:46:07 +00:00
..
libraries Enable hades vertex position input workaround for Adreno 2022-08-08 18:09:00 +01:00
src/main Utilise SegmentTable for rapid FlatMemoryManager lookups 2022-11-02 17:46:07 +00:00
.gitignore libNX FS Initalization (v0.3) 2019-10-18 16:22:38 +05:30
build.gradle Introduce a releasedebug build variant 2022-10-17 18:39:32 +02:00
CMakeLists.txt Introduce a releasedebug build variant 2022-10-17 18:39:32 +02:00
proguard-rules.pro Add kotlinx.serialization-json dependencies 2022-08-06 22:00:19 +05:30