Linux/RADV: in-game menu text renders as hollow boxes on RX 9070 XT (v2.0.11) #1279
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#1279
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.11 (latest release at time of report; log begins
hookshot v2.0.11).What happened
On the native Linux build (
bin/hookshot), in-game menu text renders as rows of hollow square glyphs and is unreadable. The menu and scene otherwise render. Expected: readable menu text.Changing
language.txtbetweenes-419,es, anden-USdoes not change the symptom; the log confirmsoe: language en-US (language.txt). In the same game folder,bin/hookshot.exelaunched through Wine displays the text correctly, while the native Linux executable does not.This remains reproducible on v2.0.11, after the text fixes referenced in #214 / #229 and PR #228. Those reports describe blank text; this report is specifically hollow-box glyphs on the native Linux build.
System
0x6802006)Where / frequency
In-game settings/menu overlay. Reproduced with multiple language selections during this session.
Related reports
I have a screenshot and
hookshot_log.txtavailable and can attach them if needed. No game files or saves are attached.Could this be a separate Linux/RADV text-rendering issue, or is there a known workaround for v2.0.11?
Additional sanitized evidence from
hookshot_log.txt(absolute local paths omitted):The screenshot is not attached in this comment; it remains available locally. No save data or game files are included.
Thanks for the comparison with the same folder under Wine. Linking this to the Linux tracker #1000 (hollow-box menu text on the native build, RADV).
Fixed in the v2.0.12 branch, closing at release. Linux menus now skip fonts that have no Latin letters (#1405), which were what drew the hollow boxes.
Fixed in v2.0.12 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.12): Linux menu fonts without Latin letters are skipped, the font Fontconfig picks is honoured, and UTF-8 text is drawn (#1405, #1371, #1389). Update with the Hookshot Builder (or the game's update offer) and rebuild. If it still happens on v2.0.12, reopen this with your
hookshot_log.txt.Not reproducible on another RADV card with the same driver build, ultrawide included. The native Linux build's in-game menu text renders correctly here, so this looks narrower than "Linux/RADV".
Machine: ROG Ally X, Radeon 780M (
vk: device 0: AMD Ryzen Z1 Extreme (RADV PHOENIX), Vulkan 1.4, driver 0x6802006) — the samedriver 0x6802006your log reports, so the same Mesa 26.2.6 build. Bazzite (Fedora 45 base, kernel 7.2.15), nativebin/hookshotfrom a v2.0.11 build (source 10f983ad),language.txt=fr, so accents and the small-caps "ZELDA NOTES" are part of the test.Both runs are headless and driven by the game's own scripted input, so anyone can repeat them exactly:
(title screen -> Parametres -> the option pages). The second run adds
HOS_OUTPUT_RES=1 HOS_ASPECT=2.3889, which the log reports as:-- your picture size.
Result, identical in both runs: every row is readable text -- "Camera : axe vertical inverse", "Deplacement de la camera", "Commandes par mouvements", "Type de ciblage", the right-hand help paragraph, and the small-caps ZELDA NOTES with its icon. No hollow boxes anywhere. The title screen's own menu ("Continuer / Nouvelle partie / Parametres (dont ceux de ZELDA NOTES)") is correct too.
So on this machine it is not the native Linux build as such, not RADV as such, not that Mesa build, not the ultrawide picture, and not a non-English language. Against your setup what is left is the RADV generation: GFX1103 (Phoenix, RDNA3) here against GFX1201 (RDNA4) there -- the same card as #1576, which is also RADV-and-RDNA4-only so far.
Two cheap checks that would narrow it on your side, since the Wine build in the same folder is fine: does the text come back with a 16:9 picture (
HOS_OUTPUT_RES=0and noHOS_ASPECT), and doesRX_VK_LOW_SPEC=1change anything? If neither does, the remaining suspect is the font path on GFX1201 specifically.I can run any other variant of this on the 780M -- the sequence above is scripted, so a run is one command.
Tooling and method. Nothing custom does the measuring: the determinism is the game's own --
HOS_HEADLESSfor offscreen rendering,HOS_INPUT_SCRIPTwithHOS_INPUT_FRAME_CLOCKfor input timed in game frames,RX_VK_SHOTSfor captures taken inside the renderer rather than off a compositor. That is why the commands above are the whole experiment and anyone can repeat them. Around them I run the session offscreen with wbox, with the Hookshot-side configuration in hookshot-wbox -- configuration and scripts only: no game file, capture, reference image or build output goes in either repository, per CONTRIBUTING.md. Reading is done on contact sheets of every capture of a run, not on samples.Correction to my comment above, which I posted without seeing that v2.0.12 had closed this 40 minutes earlier.
I tested the wrong menu, so my "not reproducible" is worth nothing here. The fix is #1405, Linux: skip menu fonts that have no Latin letters — the Insert menu, whose fonts come from the system through Fontconfig. What I exercised was the game's own Paramètres pages, which draw with the game's built-in fonts: a different text path entirely. Everything I built on that reading — "not the native Linux build as such, not RADV as such, not that Mesa build" — is about a path this bug was never in.
Disregard the RDNA4 inference. I wrote that this and #1576 both stopping at GFX1201 pointed at the driver's RDNA4 path. #1279 turned out to be font selection with no GPU in it at all, and #1576 a real race in the parallel replay (#1184). Two reports from one card is not evidence that a bug belongs to that card.
I should have caught this from my own run: the Insert menu never opened in my headless sessions under
RX_VK_MENU_SCRIPT, and that is "the experiment did not run", not a negative result. I read the rest of the screenshots as if it had.One thing that may save you a confusing update, from v2.0.13's notes rather than from my machine: on v2.0.12 the Insert menu is invisible in fullscreen at 1440p, 4K and ultrawide (it was drawn taller than the screen and dropped) — your 3440x1440 is in that set. v2.0.13 fixes it (#1603, #1611).
If it is still worth a second data point, I can now check the Insert menu itself here on v2.0.13 — same driver build
0x6802006,language.txt=fr, but Bazzite/Fedora 45 against your CachyOS, so a different Fontconfig set. Say the word and I will post what the menu looks like.