Low fps and long loads on i5-14600KF + RTX 4070 SUPER: game threads wait ~250 ms for a virtual core (also with HOS_CORES=8) #1420

Closed
opened 2026-11-10 01:34:51 +00:00 by BrunoSilvestre00 · 1 comment
BrunoSilvestre00 commented 2026-11-10 01:34:51 +00:00 (Migrated from github.com)

Hookshot version

v2.0.11 (source d6369f1e), built with HookshotBuilder on Windows

What kind of problem

Low fps or stutter

What happened

Without frame generation the game itself runs at roughly 40-50 fps, with uneven frame times and long loading screens. Only frame generation gets it over 60. The same save in an emulator on the same PC runs noticeably smoother, so the GPU doesn't look like the limit.

The log points at the virtual cores. Game threads regularly wait a quarter of a second for a core, and that includes the loading and decompression threads:

vcores: ARes Loading 0 (priority 19) ran without a core after 251.1 ms: core 5: ModuleSystemWorker5 (16);
vcores: Resource Control (priority 20) ran without a core after 252.0 ms: core 1: ModuleSystemWorker1 (16) asked;
vcores: ParallelDecompThread (priority 19) ran without a core after 250.2 ms: core 5: BaseProcExecutor5 (16);
vcores: nn.npln.Shared (priority 16) ran without a core after 252.0 ms: core 1: ModuleSystemWorker1 (16) asked; core 2: AudioFrameworkThread (4);
vcores: ModuleSystemWorker2: 26283 takes, 2402 waits (mean 4340 us, longest 251.2 ms), 671 kicks, 807 yields, 9 escapes in 5 s

That happened 38 times in a ~10 minute session with the defaults. With HOS_CORES=8 in hookshot_env.txt it still happened 32 times, so going from 6 to 8 virtual cores only helped a little.

The game's own presents in that first session (vi: lines, 5 s windows):

vi: 152 frames presented (30.0 fps over the last 5.1 s, interval 1)
vi: present intervals: <15.5 ms 53, 15.5-17.8 34, 17.8-22 24, 22-30 11, 30-40 7, over 40 22
vi: 8430 frames presented (18.2 fps over the last 5.0 s, interval 1)
vi: present intervals: <15.5 ms 0, 15.5-17.8 0, 17.8-22 19, 22-30 47, 30-40 9, over 40 16
vi: 9095 frames presented (43.6 fps over the last 5.0 s, interval 1)
vi: present intervals: <15.5 ms 0, 15.5-17.8 49, 17.8-22 135, 22-30 19, 30-40 3, over 40 12

Second session with HOS_CORES=8, 2560x1440 output, frame pacing on and 4x frame generation: the game's own rate was 42-50 fps (vi: ... (46.3 fps ...), (49.8 fps ...), (41.8 fps ...)).

The CPU is a hybrid Intel part (6 P-cores + 8 E-cores), in case that matters for which host cores the game's threads end up on.

Where in the game

Loading a save and playing for about 10 minutes. Loading screens and area transitions are the worst.

How often

Every time

Graphics card and driver version

NVIDIA GeForce RTX 4070 SUPER (12 GB), driver 621.14

CPU, RAM and operating system

Intel Core i5-14600KF (6P+8E, 20 threads), 32 GB RAM, Windows 11 Pro (26200)

Changes from the defaults

  • First session: defaults (output 2048x1152, game's upscaler, frame generation off).
  • Second session: HOS_CORES=8 in hookshot_env.txt, output 2560x1440, frame generation 4x, frame pacing on, sharpness 40%, ultrawide set to the monitor's shape (3440x1440).

Other software hooked into the game

MSI Afterburner / RivaTuner only as an fps overlay in the first session. The numbers above come from the game's own vi: log lines.

hookshot_log.txt

The relevant lines are quoted above. I can attach the full logs if that helps.

Screenshots or video

### Hookshot version v2.0.11 (source d6369f1e), built with HookshotBuilder on Windows ### What kind of problem Low fps or stutter ### What happened Without frame generation the game itself runs at roughly 40-50 fps, with uneven frame times and long loading screens. Only frame generation gets it over 60. The same save in an emulator on the same PC runs noticeably smoother, so the GPU doesn't look like the limit. The log points at the virtual cores. Game threads regularly wait a quarter of a second for a core, and that includes the loading and decompression threads: ``` vcores: ARes Loading 0 (priority 19) ran without a core after 251.1 ms: core 5: ModuleSystemWorker5 (16); vcores: Resource Control (priority 20) ran without a core after 252.0 ms: core 1: ModuleSystemWorker1 (16) asked; vcores: ParallelDecompThread (priority 19) ran without a core after 250.2 ms: core 5: BaseProcExecutor5 (16); vcores: nn.npln.Shared (priority 16) ran without a core after 252.0 ms: core 1: ModuleSystemWorker1 (16) asked; core 2: AudioFrameworkThread (4); vcores: ModuleSystemWorker2: 26283 takes, 2402 waits (mean 4340 us, longest 251.2 ms), 671 kicks, 807 yields, 9 escapes in 5 s ``` That happened 38 times in a ~10 minute session with the defaults. With `HOS_CORES=8` in `hookshot_env.txt` it still happened 32 times, so going from 6 to 8 virtual cores only helped a little. The game's own presents in that first session (`vi:` lines, 5 s windows): ``` vi: 152 frames presented (30.0 fps over the last 5.1 s, interval 1) vi: present intervals: <15.5 ms 53, 15.5-17.8 34, 17.8-22 24, 22-30 11, 30-40 7, over 40 22 vi: 8430 frames presented (18.2 fps over the last 5.0 s, interval 1) vi: present intervals: <15.5 ms 0, 15.5-17.8 0, 17.8-22 19, 22-30 47, 30-40 9, over 40 16 vi: 9095 frames presented (43.6 fps over the last 5.0 s, interval 1) vi: present intervals: <15.5 ms 0, 15.5-17.8 49, 17.8-22 135, 22-30 19, 30-40 3, over 40 12 ``` Second session with `HOS_CORES=8`, 2560x1440 output, frame pacing on and 4x frame generation: the game's own rate was 42-50 fps (`vi: ... (46.3 fps ...)`, `(49.8 fps ...)`, `(41.8 fps ...)`). The CPU is a hybrid Intel part (6 P-cores + 8 E-cores), in case that matters for which host cores the game's threads end up on. ### Where in the game Loading a save and playing for about 10 minutes. Loading screens and area transitions are the worst. ### How often Every time ### Graphics card and driver version NVIDIA GeForce RTX 4070 SUPER (12 GB), driver 621.14 ### CPU, RAM and operating system Intel Core i5-14600KF (6P+8E, 20 threads), 32 GB RAM, Windows 11 Pro (26200) ### Changes from the defaults - First session: defaults (output 2048x1152, game's upscaler, frame generation off). - Second session: `HOS_CORES=8` in `hookshot_env.txt`, output 2560x1440, frame generation 4x, frame pacing on, sharpness 40%, ultrawide set to the monitor's shape (3440x1440). ### Other software hooked into the game MSI Afterburner / RivaTuner only as an fps overlay in the first session. The numbers above come from the game's own `vi:` log lines. ### hookshot_log.txt The relevant lines are quoted above. I can attach the full logs if that helps. ### Screenshots or video -
NotRexed commented 2026-11-10 01:52:31 +00:00 (Migrated from github.com)

Thanks for the vcores data (game threads waiting ~250 ms for a virtual core, also with HOS_CORES=8). Low FPS is tracked in #995. On this CPU class (i5-14600KF, P+E cores), #1286 found the reserved core landing on an E-core; that fix is in the next release, so please retest then. Closing this as a duplicate; please follow #995.

Thanks for the vcores data (game threads waiting ~250 ms for a virtual core, also with HOS_CORES=8). Low FPS is tracked in #995. On this CPU class (i5-14600KF, P+E cores), #1286 found the reserved core landing on an E-core; that fix is in the next release, so please retest then. Closing this as a duplicate; please follow #995.
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#1420
No description provided.