After a scene change, compute program ab7699ee7f536755 goes from 0.13 ms to 125 ms per run and the game stays at ~5 fps until restart (RTX 4050 Laptop) #1400

Closed
opened 2026-11-10 00:41:03 +00:00 by DarkzGG · 5 comments
DarkzGG commented 2026-11-10 00:41:03 +00:00 (Migrated from github.com)

Setup

  • RTX 4050 Laptop GPU, 6 GB, plugged in, Windows 11
  • Hookshot v2.0.11, also seen on v2.0.5
  • Handheld profile On, Resolution 67 %, frame generation 2x
  • Also running a local DLSS/Reflex build: see the last section

What happens

Gameplay runs fine, then after a scene change GPU time jumps and stays high until the game is restarted. I first saw it right after movies, and today also after an in-game transition with no movie:

vk: 27240 presents, 35.2 fps; a frame: 120 draws ... GPU time 10.5 ms a frame (the longest submission 134.2 ms)
vk: 27360 presents, 6.0 fps;  a frame: 592 draws ... GPU time 160.3 ms a frame (the longest submission 150.7 ms)

The cause is not memory or thermals:

  • VRAM was under budget: 4517 MB used of 4876 MB allowed.
  • There were no Exceeded VRAM budget warnings.
  • Retired imports were given back.
  • The GPU sat at 100 %, 2640 MHz and 65 °C.

RX_VK_PASS_TIMING=1 points at one compute program

Before the transition (600 presents), it ran 1.0 times per frame at about 0.13 ms:

m   0.133 ms     1.0 x    133.1 us       1.0 items    0.00 MB  dispatch  prog ab7699ee7f536755

After it, in the slow state, it is 92.7 % of the frame:

m dispatch   76.375 ms  92.7%     75.8 spans ...
m  64.424 ms     0.5 x  125094.6 us       0.5 items    0.00 MB  dispatch  prog ab7699ee7f536755
m   5.474 ms     0.5 x  10628.5 us       0.5 items    0.00 MB  dispatch  prog 7984161db3e053b5

That is the same (non-indirect) dispatch taking ~1000x longer: 0.13 ms, then 70 ms in the 600 presents that span the transition, then 125 ms. 7984161db3e053b5 also rises to 10.6 ms. Everything else in the frame stays as before. It looks data-dependent, for example a loop bound or a buffer the shader reads that is stale or unbound after the scene change. It does not recover without a restart.

Movies

Separately, the movie networks take about 36 ms per frame here (24 fps, audio drifts), which is under the 40 ms automatic fallback. RX_VK_MOVIE_UPSCALE=linear makes movies smooth. With it, I have also had movies end without the slowdown, but today's drop shows linear does not prevent it.

Caveat

This build also replaces the gameplay upscale network with NVIDIA DLSS through Streamline, plus Reflex (local prototype, RX_VK_DLSS=1 / RX_VK_REFLEX=1). Neither touches these programs, and DLSS logged nothing in the slow state. I have not reproduced it on a stock build yet. I can share the full log, or capture more (a dump of that program, its dispatch size) if you tell me which switch to use.

**Setup** - RTX 4050 Laptop GPU, 6 GB, plugged in, Windows 11 - Hookshot v2.0.11, also seen on v2.0.5 - Handheld profile On, Resolution 67 %, frame generation 2x - Also running a local DLSS/Reflex build: see the last section **What happens** Gameplay runs fine, then after a scene change GPU time jumps and stays high until the game is restarted. I first saw it right after movies, and today also after an in-game transition with no movie: ``` vk: 27240 presents, 35.2 fps; a frame: 120 draws ... GPU time 10.5 ms a frame (the longest submission 134.2 ms) vk: 27360 presents, 6.0 fps; a frame: 592 draws ... GPU time 160.3 ms a frame (the longest submission 150.7 ms) ``` The cause is not memory or thermals: - VRAM was under budget: `4517 MB used of 4876 MB allowed`. - There were no `Exceeded VRAM budget` warnings. - Retired imports were given back. - The GPU sat at 100 %, 2640 MHz and 65 °C. **`RX_VK_PASS_TIMING=1` points at one compute program** Before the transition (600 presents), it ran 1.0 times per frame at about 0.13 ms: ``` m 0.133 ms 1.0 x 133.1 us 1.0 items 0.00 MB dispatch prog ab7699ee7f536755 ``` After it, in the slow state, it is 92.7 % of the frame: ``` m dispatch 76.375 ms 92.7% 75.8 spans ... m 64.424 ms 0.5 x 125094.6 us 0.5 items 0.00 MB dispatch prog ab7699ee7f536755 m 5.474 ms 0.5 x 10628.5 us 0.5 items 0.00 MB dispatch prog 7984161db3e053b5 ``` That is the same (non-indirect) dispatch taking ~1000x longer: 0.13 ms, then 70 ms in the 600 presents that span the transition, then 125 ms. `7984161db3e053b5` also rises to 10.6 ms. Everything else in the frame stays as before. It looks data-dependent, for example a loop bound or a buffer the shader reads that is stale or unbound after the scene change. It does not recover without a restart. **Movies** Separately, the movie networks take about 36 ms per frame here (24 fps, audio drifts), which is under the 40 ms automatic fallback. `RX_VK_MOVIE_UPSCALE=linear` makes movies smooth. With it, I have also had movies end without the slowdown, but today's drop shows `linear` does not prevent it. **Caveat** This build also replaces the gameplay upscale network with NVIDIA DLSS through Streamline, plus Reflex (local prototype, `RX_VK_DLSS=1` / `RX_VK_REFLEX=1`). Neither touches these programs, and DLSS logged nothing in the slow state. I have not reproduced it on a stock build yet. I can share the full log, or capture more (a dump of that program, its dispatch size) if you tell me which switch to use.
NotRexed commented 2026-11-10 00:46:17 +00:00 (Migrated from github.com)

Thanks for pinning this down to one program. ab7699ee7f536755 is also the compute that comes right before the Intel Arc device lost in #999, so a pass that suddenly gets very slow after a scene change may be common to both. Linking to the FPS tracker #995 for the maintainer.

Thanks for pinning this down to one program. ab7699ee7f536755 is also the compute that comes right before the Intel Arc device lost in #999, so a pass that suddenly gets very slow after a scene change may be common to both. Linking to the FPS tracker #995 for the maintainer.
Joey-Magnus commented 2026-11-10 04:05:09 +00:00 (Migrated from github.com)

I tried to reproduce this on Linux with an RTX 4070 Ti, on current main plus the DLSS build, using RX_VK_PASS_TIMING=1 and scene changes made by loading other saves from the pause menu:

scene ab7699ee7f536755
Hyrule Castle road (first load) 148 us, 0.4x a frame
Hyrule Field, after loading another save 137 us, 0.9x a frame
Hyrule Castle Town, after another load does not run in this scene (3190 draws, 26.8 ms GPU a frame)

So on NVIDIA here it doesn't jump on every scene change: two transitions, no slowdown. The reported trigger may be a specific one (after a movie, or a particular area pair). @ the reporter: do you remember which areas you went between for the in-game transition? With that I can retry the same route.

I tried to reproduce this on Linux with an RTX 4070 Ti, on current main plus the DLSS build, using `RX_VK_PASS_TIMING=1` and scene changes made by loading other saves from the pause menu: | scene | `ab7699ee7f536755` | |---|---| | Hyrule Castle road (first load) | 148 us, 0.4x a frame | | Hyrule Field, after loading another save | 137 us, 0.9x a frame | | Hyrule Castle Town, after another load | does not run in this scene (3190 draws, 26.8 ms GPU a frame) | So on NVIDIA here it doesn't jump on every scene change: two transitions, no slowdown. The reported trigger may be a specific one (after a movie, or a particular area pair). @ the reporter: do you remember which areas you went between for the in-game transition? With that I can retry the same route.
DarkzGG commented 2026-11-10 21:40:54 +00:00 (Migrated from github.com)

Thanks for trying it! Both drops were in the same part of the story, the first meeting with Zelda in the castle courtyard:

  1. The movie of the first meeting with Zelda. It played, and right after it the game stayed at ~5 fps. A restart fixed it.
  2. After the restart, talking to Impa in the courtyard, the scripted scene where she takes over after Zelda. It dropped to ~5 fps again, with no movie this time.

So the trigger may be that sequence rather than any scene change: the courtyard's Zelda/Impa scenes, or the move out of the courtyard that follows them. A save just before meeting Zelda should reach both.

Thanks for trying it! Both drops were in the same part of the story, the first meeting with Zelda in the castle courtyard: 1. **The movie of the first meeting with Zelda.** It played, and right after it the game stayed at ~5 fps. A restart fixed it. 2. **After the restart, talking to Impa** in the courtyard, the scripted scene where she takes over after Zelda. It dropped to ~5 fps again, with no movie this time. So the trigger may be that sequence rather than any scene change: the courtyard's Zelda/Impa scenes, or the move out of the courtyard that follows them. A save just before meeting Zelda should reach both.
ominixisboss commented 2026-11-11 00:31:33 +00:00 (Migrated from github.com)

Thanks for trying it! Both drops were in the same part of the story, the first meeting with Zelda in the castle courtyard:

  1. The movie of the first meeting with Zelda. It played, and right after it the game stayed at ~5 fps. A restart fixed it.
  2. After the restart, talking to Impa in the courtyard, the scripted scene where she takes over after Zelda. It dropped to ~5 fps again, with no movie this time.

So the trigger may be that sequence rather than any scene change: the courtyard's Zelda/Impa scenes, or the move out of the courtyard that follows them. A save just before meeting Zelda should reach both.

what settings are you using I want to try as well. I have a laptop with a 4050 I can try it out on

> Thanks for trying it! Both drops were in the same part of the story, the first meeting with Zelda in the castle courtyard: > > 1. **The movie of the first meeting with Zelda.** It played, and right after it the game stayed at ~5 fps. A restart fixed it. > 2. **After the restart, talking to Impa** in the courtyard, the scripted scene where she takes over after Zelda. It dropped to ~5 fps again, with no movie this time. > > So the trigger may be that sequence rather than any scene change: the courtyard's Zelda/Impa scenes, or the move out of the courtyard that follows them. A save just before meeting Zelda should reach both. what settings are you using I want to try as well. I have a laptop with a 4050 I can try it out on
NotRexed commented 2026-11-11 21:22:37 +00:00 (Migrated from github.com)

Thanks for the report. Reports of the same problem are now collected in #995, which lists this one with your details and links back here, so one fix closes them together and the open list stays readable. Follow #995 for the fix, and add new details there (or here). If this turns out to be a separate problem it will be reopened.

Thanks for the report. Reports of the same problem are now collected in #995, which lists this one with your details and links back here, so one fix closes them together and the open list stays readable. Follow #995 for the fix, and add new details there (or here). If this turns out to be a separate problem it will be reopened.
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#1400
No description provided.