aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu_cmd/yuzu.cpp
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 16:44:24 -0400
committerTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 16:44:24 -0400
commitcc3d73762a41dba370aadd3468cb510dcbc2b74d (patch)
tree32629e503c2cd1d64ce2353c76fb02585ce1d1cb /src/yuzu_cmd/yuzu.cpp
parent82a5b520bc6dc4a77acca9b3ddd0bc577ada5676 (diff)
Performance diagnostics and small wins for title 1
- eden-cli: SDL called SDL_AppIterate back to back, keeping a host core at 100% polling input; run the main callbacks at 240 Hz. - EDEN_NX2_IDLE_SPIN_US: optional spin before an idle core blocks (measured: no gain on title 1, so off by default). - EDEN_NX2_SVC_TRACE=<first>:<last>: trace SVCs (with thread ids) for a range of presents only. - MME DMA reads flush GPU-written memory first (never triggered on title 1, kept for correctness); render-enable override histogram instead of the first-400 log. Measured on title 1's title screen (RTX 4070 Laptop): GPU ~20% busy, the six emulated cores ~0.9 host cores in total, Eden's GPU thread 45-70% busy and largely waiting: on host fences for semaphore acquires (GPU accuracy High delays every release to host completion), on ASTC upload Finish(), and in a 1 ms poll sleep. gpu_accuracy=Low: ~12.5 -> ~16 fps.
Diffstat (limited to 'src/yuzu_cmd/yuzu.cpp')
-rw-r--r--src/yuzu_cmd/yuzu.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index f55da5fd61..f44916a2e3 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -172,6 +172,9 @@ struct SdlState {
};
extern "C" SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
+ // SDL calls SDL_AppIterate back to back by default, which kept a host core at 100% polling
+ // input; 240 Hz is plenty for input and the key script.
+ SDL_SetHint(SDL_HINT_MAIN_CALLBACK_RATE, "240");
SdlState* state = new SdlState();
*appstate = state;