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
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#1400
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Setup
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:
The cause is not memory or thermals:
4517 MB used of 4876 MB allowed.Exceeded VRAM budgetwarnings.RX_VK_PASS_TIMING=1points at one compute programBefore the transition (600 presents), it ran 1.0 times per frame at about 0.13 ms:
After it, in the slow state, it is 92.7 % of the frame:
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.
7984161db3e053b5also 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=linearmakes movies smooth. With it, I have also had movies end without the slowdown, but today's drop showslineardoes 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.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.
I tried to reproduce this on Linux with an RTX 4070 Ti, on current main plus the DLSS build, using
RX_VK_PASS_TIMING=1and scene changes made by loading other saves from the pause menu:ab7699ee7f536755So 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.
Thanks for trying it! Both drops were in the same part of the story, the first meeting with Zelda in the castle courtyard:
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 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.