Flickering short white horizontal lines with Upscaler "Game's own" below 100% render resolution (RTX 2060 Super) #2455
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#2455
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
Source build of main at
b744b1ec(hookshot v2.1.0-rc.3-70-gb744b1ec, first line of the log), newer than v2.1.0.What kind of problem
Graphics (missing, black or wrong-coloured things, lighting, flicker)
What happened
Short white horizontal lines flash on and off all over the picture, constantly.
Isolated by changing one setting at a time:
Anisotropic filtering ("Game's" vs 16x) makes no difference.
So it follows the game's own network upscaling from a smaller 3D. On this card the log says
vk: native matrix multiplies on (cooperative matrices, the console's fragment layout checked), so the networks run on the native matrix path. It may be the NVIDIA/Turing counterpart of the AMD grid lines in #1006 (where the networks run in software). Possibly related: #2444 (white lines on an RX 6750 XT with the game's own upscaler, at 100% with frame generation on); here frame generation is off and 100% has no lines.Where in the game
Kokiri Forest (start of the game).
How often
Every time: constantly, as long as the settings above are active.
Graphics card and driver version
NVIDIA GeForce RTX 2060 SUPER 8 GB, driver 610.62
CPU, RAM and operating system
16 GB RAM, Windows 11. Monitor 2560x1440 @ 144 Hz, game windowed, Output resolution 2048x1152 (the game's).
Changes from the defaults
Render resolution, Upscaler and Anisotropic filtering, as in the table above.
Note: the log also shows VRAM slightly over the driver's allowance (
over the driver's video-memory allowance (6.8 of 6.7 GB)). The lines go away at 100% in the same scene, so that does not look like the cause.Other software hooked into the game
No, nothing hooked in.
hookshot_log.txt
Attached in a comment below.
Screenshots or video
Attached in a comment below.
Before you send it
hookshot_log.txt
More data, measured instead of by eye. Build: main
b744b1ec, RTX 2060 SUPER, driver 610.62, Windows 11. Kokiri Forest, from a save.Method: the game was driven through the control bridge (
scripts/hookshot_ctl.py launch --headless,option_set, 10shots at 2048x1152 per setting). A detector counted the bars. A bar is 16 px wide and 2 rows tall, brighter than the rows above and below it, and drops off sharply at both ends. Only flickering places were counted: places seen in at most half of the shots, since static scene edges show up in every shot. Every run used a separate copy of the game folder with its own caches.What the bars look like: 16 px wide at
x % 16 == 0, 2 rows aty % 8 in {0, 1}of the 2048x1152 output, with a dark 1 px outline. They land in different places every frame.native matrix multiplies on (cooperative matrices ...))RX_VK_TAAU_KEYS=fd029a317a9a4b94(the stand-in in place of the 4/3 network)RX_VK_MMA_SOFTWARE=1 RX_VK_TAAU_KEYS=-(the same network, HMMA on subgroup shuffles)RX_VK_MMA_NO_LDSM_BARRIER=1(In the software run, only shots taken after the log's
compute pipeline of fd029a317a9a4b94: SLOW compileline count; before that line the dispatch was left out.)So: the bars come from the 4/3 gameplay network
fd029a317a9a4b94, and only when it runs on the native cooperative-matrix path (HMMA_nx2->OpCooperativeMatrixMulAddKHR,emit_spirv_warp.cpp). The same network on the software HMMA path is clean. Removing the LDSM subgroup barriers makes it somewhat worse (40 -> 54, a single run each, so possibly noise). The 16-wide, 2-row tile alignment points at the matrix fragments.Not yet known which part of the cooperative-matrix path is at fault. Candidates I'm checking next: whether an
OpCooperativeMatrixMulAddKHRruns in subgroup-non-uniform control flow in this program, and shared-memory ordering around it beyond LDSM. seedds/nxnative saw a similar symptom with the same NDSR networks on Metal ("dotted horizontal rows" / "LDSM reads rows other lanes stored" / "An HMMA outside a chain overwrote the chain's accumulator" in theirdocs/reference/shaders.md). Their causes were specific to their translator, but the symptom matches.Workaround for players meanwhile: Upscaler AMD FSR 3.1, or Render resolution 100%.
[Posted with the help of an AI agent (Hermes) on my machine; I reviewed the numbers.]
Thanks for the report. Reports of the same problem are now collected in #2511, which lists this one with your details and links back here, so one fix closes them together and the open list stays readable. Follow #2511 for the fix, and add new details there (or here). If this turns out to be a separate problem it will be reopened.