tangerineturtle1
589c9e8654
Stop the replay from searching the environment on every draw, remember setting lookups, and spread texture streaming over more frames.
...
The draw path called getenv("NX2NAVI_SKIP_PROG") for each of ~2,000 draws a frame, and getenv walks the whole environment block: in a replay-thread profile it was a sixth of the samples. That switch, the polygon offset log and the ASTC alpha probe now read the environment once. The replay's cost per draw went from 3.7-5.0 us to 1.2-2.8 us in play, and the mean frame rate by minute from 60-131 fps to 103-243 fps (different places in each run, so the figures are approximate).
cfg_get and cfg_value keep each thread's answers per name until the settings version changes (cfg_set, cfg_reset, cfg_load, and cfg_setenv, which the code that sets NX2NAVI_ variables in the process's own environment now uses); NX2NAVI_CFG_MEMO=0 asks every time.
The texture pool creates at most pool_create_budget (NX2NAVI_POOL_CREATE_BUDGET, default 16, was a fixed 64) new texture entries per refresh. The refresh holds the texture lock throughout, and streaming new textures in made 20-40 ms frames; at 16 the lock was held 5 ms per slow frame instead of 24 in a dense area, and the frames over 25 ms in a heavy minute fell from 111-188 to 89, with no pop-in seen.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-09 08:09:26 -05:00
..
2026-11-08 15:51:48 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 13:31:06 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 03:34:46 -05:00
2026-11-08 15:51:47 -05:00
2026-11-09 08:09:25 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:25 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 01:25:12 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-08 04:10:35 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 02:40:51 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-08 00:34:29 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 16:02:30 -05:00
2026-11-09 08:09:25 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 16:02:30 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 06:06:33 -05:00
2026-11-09 06:06:33 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-08 15:51:48 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 09:26:51 -05:00
2026-11-07 09:26:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:48 -05:00
2026-11-09 08:09:25 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 18:03:20 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:09:26 -05:00
2026-11-08 15:51:47 -05:00
2026-11-08 15:51:48 -05:00
2026-11-08 15:51:47 -05:00
2026-11-08 15:51:47 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:47 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:47 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 17:36:21 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 13:31:07 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:09:25 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 18:44:56 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:25 -05:00
2026-11-07 13:31:06 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 04:29:01 -05:00
2026-11-09 04:29:01 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 13:31:06 -05:00
2026-11-07 13:31:06 -05:00
2026-11-09 02:40:51 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 06:06:33 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 04:29:01 -05:00