eden-miror/src
lizzie 218c6705d9
Some checks are pending
tx-src / sources (push) Waiting to run
Check Strings / check-strings (push) Waiting to run
[hle] constexpr handler dispatch maps, introduce version gating (#4480)
This PR primarily focuses on upbringing constexpr maps for handlers.

Each time an HLE object of a service is construed, it registers it's own handlers, over and over.
Regardless of whetever it needs them at the moment or not.
Additionally we don't require to keep track of different function pointers amongst each object.
This can be done by overriding the given function instead, as opposed to having a separate
hash map for every given object.

In other words: Remove handlers (and handlers_tipc) map for every instance
then read from a static defined per-class.

- [x] Migrate all HLE functions to new `frozen::map` constexpr time finder
- [ ] Measure if this approach actually makes better codegen

Optional:
- [x] Properly gate all functions (that have versions commented next to them)
- [x] Maybe store `HandlerFnP<>` and `const char*` separately, version gating can go in a different map as well

Information such as name can be used on debug builds, but doesn't particularly help on release as one can consult an external reference (or have an annotated IPC map)

Signed-off-by: lizzie <lizzie@eden-emu.dev>

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Co-authored-by: Maufeat <sahyno1996@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4480
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-10-13 04:38:36 +02:00
..
android [dist, android] Update translations from Transifex for Oct 12 (#4527) 2026-10-12 19:23:00 +02:00
audio_core [*] Remove Fix{Static,Small}VectorADL workaround for GCC 12 (#4386) 2026-10-12 22:21:17 +02:00
common [video_core] Skip fragment shaders with known issues on non-NVIDIA drivers (#4503) 2026-10-08 23:11:34 +02:00
core [hle] constexpr handler dispatch maps, introduce version gating (#4480) 2026-10-13 04:38:36 +02:00
dedicated_room [common] remove DetachedTasks object usage (#4096) 2026-07-09 03:46:06 +02:00
dynarmic [dynarmic] fix bad arm codegen on relocations (#4458) 2026-09-20 00:29:28 +02:00
frontend_common [settings] move program_args and debug_knobs back to debugging category and make them pergameable (#4378) 2026-09-08 20:05:56 +02:00
hid_core [*] fix clangarm64 compilation (#4521) 2026-10-11 05:11:01 +02:00
input_common [*] fix clangarm64 compilation (#4521) 2026-10-11 05:11:01 +02:00
network [cmake] Simplify DetectPlatform and normalize platform names (#4183) 2026-08-10 04:57:38 +02:00
qt_common [video_core] Skip fragment shaders with known issues on non-NVIDIA drivers (#4503) 2026-10-08 23:11:34 +02:00
shader_recompiler [video_core] Skip fragment shaders with known issues on non-NVIDIA drivers (#4503) 2026-10-08 23:11:34 +02:00
tests [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
video_core [*] Remove Fix{Static,Small}VectorADL workaround for GCC 12 (#4386) 2026-10-12 22:21:17 +02:00
web_service [common] remove DetachedTasks object usage (#4096) 2026-07-09 03:46:06 +02:00
yuzu [qt] Filter collates accents (Unicode NFD) (#4380) 2026-10-01 07:39:44 +02:00
yuzu_cmd [frontend] Unify cmdline parsing (#4424) 2026-09-23 14:51:51 +02:00
yuzu_room_standalone [cmake] add a YUZU_STATIC_ROOM option (#3411) 2026-01-28 23:54:49 +01:00
.clang-format
CMakeLists.txt [cmake] Simplify DetectPlatform and normalize platform names (#4183) 2026-08-10 04:57:38 +02:00
dep_hashes.h.in [cmake, frontend] feat: CPMUtil + dependency viewer (#238) 2025-08-11 22:27:29 +02:00