Merge main's helper rows as number sliders into the 0.10.0 line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	runtime/ui/menu.cpp
This commit is contained in:
chrg6
2026-11-13 00:34:55 -05:00
4 changed files with 12 additions and 12 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -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()) {

View File

@@ -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 "