White flashes, white bands and stray HUD pieces flicker on screen (AMD Radeon 8060S / Strix Halo, Linux RADV, GPD Win 5) #1186
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#1186
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?
Hookshot version
v2.0.9 (source ed212f62). Also seen on v2.0.8. On v2.0.7 there was flicker too, at the time with frame generation on.
What kind of problem
Graphics
What happened
During normal play the picture flashes for a few frames, several times a minute:
Textures themselves look correct; it is whole-frame flashing rather than garbled textures. Between the flashes the image is clean and runs smoothly (about 50-60 fps, no stutter). Expected: no flashes.
Where in the game
Kokiri Forest, near Link's house / the tree platforms, walking around normally in daylight. The attached video is from there.
How often
Every session, several times a minute.
Graphics card and driver version
AMD Radeon 8060S (Strix Halo, RDNA 3.5, integrated), RADV, Mesa 26.2.6, Vulkan 1.4.354. 8 GB of system memory reserved as VRAM (UMA). Mesh shaders, host memory import and pipeline libraries all reported "yes" in the log.
CPU, RAM and operating system
Changes from the defaults
Insert menu (hookshot_options.ini):
hookshot_env.txt:
Steam launch options:
HOS_INPUT_BACKGROUND=1 %command%(the controller was ignored in gamescope otherwise: "game window not in front, foreground window: process 0").Things I tried that did not stop the flashes (one at a time, each removed again):
RX_VK_ANISO=8(removed)RX_VK_WB_DIFF=0andRX_VK_BC_IDLE_S=0(#993's workaround): no change to the flashes, about 10 fps lowerRX_VK_SYNC_PIPELINES=1(the attached session ran with it): no changePossibly related, from the log: "draws left out (not ready)" is non-zero in some frames, and textures are retired constantly (about 80 at a time, roughly 120 events in a few minutes) although textures stay well under the 6144 MB budget (about 4 GB).
Other software hooked into the game
None besides Steam itself (Steam overlay / Steam Input, gamescope's WSI layer in Game Mode). No ReShade, no injectors.
hookshot_log.txt
https://gist.github.com/mavszorg/2dd67700ad55e7cb5387d9541228420f
On Linux, launched from Steam, no hookshot_log.txt file was written beside the game, so this is the game's own output for one full v2.0.9 run (Game Mode, about 5 minutes), taken from the system journal. Home folder paths shortened to
~.Screenshots or video
flicker-recording.mp4: 7 s phone recording of the screen; the flashes are at about 4 s.flicker-frames.png: six consecutive frames around the flash (top row normal, bottom row: white glow around Link, white band across the top, then normal again).Thanks for the detailed report and video. Linking this to the AMD handhelds and APUs tracker #997 (Strix Halo / 8060S); whole-frame flashes in general are collected in #1005, and #1126 has similar flashes and stray HUD pieces on a Legion Go S.
Same device here (GPD Win 5, Radeon 8060S, Bazzite, Mesa 26.2.6), same flashes: white glow/whiteout, white band, stray HUD pieces (empty heart, heart over the minimap). Some findings that may help narrow it down:
It is timing, not shaders. The flashes go away completely when the replay is not allowed to run ahead of the GPU:
RX_VK_FLASH=1+RX_VK_SHOT_EVERY=1) almost removes them, because each shot waits for the GPU.RX_VK_WAIT_GPU=1removes them on v2.0.8 with default settings (only a few at load-in).RX_VK_PARALLEL=4(which gives a locked 60 fps here, ~2 ms of segment recording instead of ~8 ms on one thread) the HUD flicker comes back withRX_VK_WAIT_GPU=1. It goes away only when waiting for the current frame's own GPU work at its present (a local 3-line patch:RX_VK_WAIT_GPU=-1→wait_value(value)), at 40–50 fps.RX_VK_MIRROR=1also removes them, but costs ~8 ms of memory sync a frame on this APU (~40–50 fps).So on a UMA APU with dma-buf guest memory, the GPU reads the game's buffers live, and the game's CPU writes the next frame's HUD/exposure data before the GPU has read the current one. The capture wait (#645) seems to cover only the exposure page, not the HUD's data.
Workaround for now:
RX_VK_WAIT_GPU=1inhookshot_env.txt(no flashes, ~45–53 fps). OrRX_VK_WAIT_GPU=1+RX_VK_PARALLEL=4for a steady 60 with occasional HUD flicker.Investigation done with Claude (Anthropic's AI assistant).
First of all: congratulations. I built this headless on Linux in 24 minutes and played for 22 minutes on a ROG Ally X (Z1 Extreme, RADV, Bazzite) with zero crashes, no device lost and 60 fps on light scenes. A Switch 2 recompilation running that well on an AMD handheld iGPU is genuinely impressive work, and the logs you emit are the most useful I have read in a long time — most of what follows came straight out of them.
Confirming this issue on one more AMD iGPU, v2.0.10, and adding two log lines that may narrow it down.
Same family, Z1 Extreme
Stray texture and icon fragments drifting across the screen, shadows and foliage shimmering, and occasional whole-screen white flashes. Textures are correct between the flashes, exactly as you describe.
Two log lines that look like a mechanism
59 draws a frame reusing the previous draw's descriptors is, if the heuristic ever mis-fires, precisely "an object drawn with its neighbour's texture". And a million slot re-registrations at a different size is the other classic way stale content surfaces. I have no proof these cause it — but they are the only two lines in my log that describe the right kind of wrongness.
Two things that do not change it
Full platform report and numbers in my comment on #1000.
Happy to film it, run with any
RX_*/HOS_*variable, or build from source with a patch — the device is free for debugging and I am a developer. Thanks again for this.Thanks for the report. To keep each problem in one place, this is tracked in #1126 (the flicker, white flashes and stray HUD pieces on AMD iGPUs under RADV), which links your details. Closing this as a duplicate; please follow #1126 for updates.