diff --git a/docs/releases/v0.9.3.md b/docs/releases/v0.9.3.md index 88496e36..bbb568f3 100644 --- a/docs/releases/v0.9.3.md +++ b/docs/releases/v0.9.3.md @@ -24,6 +24,6 @@ - **The draw replay on several CPU cores is off by default again** (`replay_workers = 0`). With three workers on by default in 0.9.1 and 0.9.2 some players' games ended with a lost graphics device; the cause is not found yet. The settings menu has it under Game, Testing, as *CPU helper threads (experimental)*: 0 to 8, after a restart. -- **The other experimental performance settings have rows there too**, each a switch: *Helpers work ahead* (on is - `replay_pipe = 4`), *Helpers take small jobs* (on is `replay_small = 16`) and *Start next frame early* - (`tail_early`). A row whose setting does nothing without another one is greyed out and says which it needs. +- **The other experimental performance settings have rows there too**: *Helpers work ahead* (`replay_pipe`, 0 to 4), + *Helpers take small jobs* (`replay_small`, 0 to 64) and *Start next frame early* (`tail_early`). A row whose setting + does nothing without another one is greyed out and says which it needs. diff --git a/nx2navi.ini.example b/nx2navi.ini.example index 51bc287c..59bb6c79 100644 --- a/nx2navi.ini.example +++ b/nx2navi.ini.example @@ -92,8 +92,7 @@ # groups its workers still record. replay_small = N (default 0, needs replay_pipe): a group of N draws or more that is # too small to share out goes whole to one worker. Kokiri Forest standing on an RX 7900 XT with FSR 4, tail_early = 1, # replay_workers = 5, replay_pipe = 4 and replay_small = 16: 63 instead of 45 fps with all of them off. Also in the -# menu: Game, Testing, as switches: Helpers work ahead (on is replay_pipe = 4) and Helpers take small jobs (on is -# replay_small = 16). +# menu: Game, Testing, Helpers work ahead (replay_pipe) and Helpers take small jobs (replay_small). # replay_pipe = 0 # replay_small = 0 # EXPERIMENTAL, THE GAME CRASHES WITH 1. 1 lifts the virtual core gate: guest threads run without the console's limit diff --git a/runtime/ui/menu.cpp b/runtime/ui/menu.cpp index f44dbacc..04e6c27b 100644 --- a/runtime/ui/menu.cpp +++ b/runtime/ui/menu.cpp @@ -1449,9 +1449,7 @@ static void tab_game(float scale) { // Testing: experimental rows, then the debug menu where the game version has it opt_group_text("Testing"); // vk_exec.c rw_init and tail_enabled read these at start: each row notes the restart and the bar's Restart does - // it. A row whose setting does nothing without another one (rw_init) is greyed out until that one is set. The two - // rows under the workers are switches: on writes the value measured best (4 groups at once, groups from 16 draws), - // and any other value set in nx2navi.ini shows as on and stays. + // it. A row whose setting does nothing without another one (rw_init) is greyed out until that one is set. // Automatic first, the default (vk_exec.c vk_exec_replay_workers_auto), named with the count it gives on this PC { static const char *const vals[] = {"auto", "0", "1", "2", "3", "4", "5", "6", "7", "8"}; @@ -1464,9 +1462,9 @@ static void tab_game(float scale) { const bool workers = (!strcmp(wset, "auto") ? vk_exec_replay_workers_auto(nullptr) : atoi(wset)) > 0, pipe = workers && cfg_int("NX2NAVI_REPLAY_PIPE") > 0; if (!workers) opt_disable_next(UI_MENU_NEEDS_WORKERS); - opt_toggle_value("NX2NAVI_REPLAY_PIPE", UI_MENU_REPLAY_PIPE, UI_MENU_REPLAY_PIPE_DESC, "4", "0"); + opt_slider("NX2NAVI_REPLAY_PIPE", UI_MENU_REPLAY_PIPE, 0, 4, UI_MENU_REPLAY_PIPE_DESC, 1, "%.0f"); if (!pipe) opt_disable_next(workers ? UI_MENU_NEEDS_PIPE : UI_MENU_NEEDS_WORKERS); - opt_toggle_value("NX2NAVI_REPLAY_SMALL", UI_MENU_REPLAY_SMALL, UI_MENU_REPLAY_SMALL_DESC, "16", "0"); + opt_slider("NX2NAVI_REPLAY_SMALL", UI_MENU_REPLAY_SMALL, 0, 64, UI_MENU_REPLAY_SMALL_DESC, 4, "%.0f"); opt_toggle("NX2NAVI_TAIL_EARLY", UI_MENU_TAIL_EARLY, UI_MENU_TAIL_EARLY_DESC); // The debug menu, a tool for testing with English text of its own: off unless switched on here if (dbg_supported()) { diff --git a/runtime/ui_text.c b/runtime/ui_text.c index 4110e911..71f132b1 100644 --- a/runtime/ui_text.c +++ b/runtime/ui_text.c @@ -513,10 +513,13 @@ static const char *const text_en[UI_TEXT_COUNT] = { "frames a second on an 8-core CPU. If your game crashes with this on, set it to 0.", [UI_MENU_REPLAY_PIPE] = "Helpers work ahead (experimental)", [UI_MENU_REPLAY_PIPE_DESC] = "The game carries on with the rest of the frame while the helper threads are still " - "busy, instead of waiting for them. A small gain: 1 to 2% more frames a second.", + "busy, instead of waiting for them. The number is how many batches of work the " + "helpers may have at once; 0 turns it off. A small gain: 4 gave 1 to 2% more frames a " + "second.", [UI_MENU_REPLAY_SMALL] = "Helpers take small jobs (experimental)", [UI_MENU_REPLAY_SMALL_DESC] = "Gives the helper threads the smaller batches of drawing work too, not only the large " - "ones. A small gain: about 2% more frames a second.", + "ones. The number is the smallest batch a helper takes, counted in draw calls; 0 " + "turns it off. A small gain: 16 gave about 2% more frames a second.", [UI_MENU_TAIL_EARLY] = "Start next frame early (experimental)", [UI_MENU_TAIL_EARLY_DESC] = "The game starts on its next frame while the graphics card is still finishing the " "current one. The biggest gain of these settings: 19 to 29% more frames a second with "