aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/CMakeLists.txt
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-29 00:27:35 -0400
committerTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-29 00:27:35 -0400
commit863d3afa90f2dfde8e715b45f28fc75c1b472739 (patch)
tree95e9e5dfbafbd758da1d2d8f121478c424c0af7d /src/video_core/CMakeLists.txt
parente6bd4a0ddd93b8d1640fd9369f66581f882f2431 (diff)
nx2: replay repeated native macro calls instead of interpreting them
Title 1 makes ~1,000,000 native macro calls a second in 3D scenes, 7 instructions each on average, and 96% repeat an earlier call exactly. A call whose effects depend only on its start, its parameters and the data RAM words it read (no MME_READ, no memory reads, no re-read of its own data RAM writes, no code upload while it ran) is remembered with those reads as guards; a later call with the same start and parameters whose guards still hold replays its data RAM and method writes. Uploading macro code clears the memo. EDEN_NX2_MME_MEMO=0 interprets every call. Checked offline against the previous interpreter on 200,000 recorded 3D-scene calls (method writes, registers and data RAM all identical, 94% replayed, 1.9x faster); in the game the macro zone fell from ~0.26 to ~0.20 us per call.
Diffstat (limited to 'src/video_core/CMakeLists.txt')
-rw-r--r--src/video_core/CMakeLists.txt1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index 513a644166..e97b425412 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -90,6 +90,7 @@ add_library(video_core STATIC
host1x/vic.h
macro.cpp
macro.h
+ macro_memo.h
macro_turing.h
fence_manager.h
gpu.cpp