CPU high usage, GPU not fully utilized, and memory leaked on RAM #470
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#470
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?
The idea
Here's my log:
hookshot_log.txt
Anything else
this is the screenshot:

Some data on all three parts from a desktop with more headroom: RTX 4080 16 GB, i9-14900KF (8 P-cores + 16 E-cores), 32 GB RAM, Windows 11, v2.0.3-v2.0.5.
RAM: no leak here, but a large footprint. From the renderer's
memory: working setlines:So on a 16 GB machine Windows would page, which looks like a leak or stutter, but it doesn't keep growing here.
GPU underused: on this card the frame was limited by two things run one after the other: the CPU replay (~15 ms at ~3,000-3,500 draws) and the write-back copies at the end of each submission (~7 ms of GPU time, 26-68 MB a frame).
GPU-bound waitstays at 0 and resolution changes nothing. Full profile and a local patch in #384.CPU threads on a hybrid Intel CPU:
HOS_PIN=MainThread=FFFF,Presentation=FFFF,ModuleSystemWorker=FFFF(those threads on the P-cores' logical processors 0-15) helped a little here: busy outdoor areas went from the low 40s to the high 40s, indoors into the 50s (tester's fps counter); log averages 48.0 -> 49.4 fps. TheHOS_PINcomment inhos_thread.cnotes pinning was slower on another machine, so this may be specific to P/E-core CPUs, where Windows can put a busy thread on an E-core.hos_reserved_cpusreserves the last physical core for the replay thread. On these CPUs the last core is an E-core (logical 31 here). It only matters withRX_VK_ASYNC=1, but if the reserve stays, the last P-core (byEfficiencyClass) may be the better choice.Small logging nit: with
HOOKSHOT_OCCLUSION_OFF=1,occlusion_switch()logs itsocclusion off:line beforefreopenopenshookshot_log.txt, so the line never reaches the log and a log can't confirm the switch was on.Tracked in #995, follow there. That issue collects every report of low FPS while the GPU is not fully used, and shader stutter, and this one is linked from it with its GPU, version and log details. If it still happens on v2.0.6 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6; Update next to Play in the launcher), please add a comment there with your
hookshot_log.txt.can't even build with the newest update...
