Texture glitches on RX580 #380

Closed
opened 2026-11-07 23:07:03 +00:00 by kzaint-cl · 3 comments
kzaint-cl commented 2026-11-07 23:07:03 +00:00 (Migrated from github.com)

Builder version

v1.0.0

How you built

Hookshot Builder app (Windows)

Game files given to it

A .nup

The error

Title: AMD Radeon RX 580 (Polaris, 4 GB): Vulkan back end boots and reaches
gameplay, but the world renders as colour noise / solid blue

Environment
- Windows 11 (10.0.22631), Radeon RX 580 Series 4 GB, Intel Core i7 7th gen, 16 GB DDR4
- Game built with HookshotBuilder, default back end (hookshot_vk.dll)
- Log: "vk: Radeon RX 580 Series, Vulkan 1.3, driver 0x800117; mesh shaders no,
  host memory import yes, pipeline libraries no"

What works
- Boot, title screen, intro movie (only after installing Microsoft's "AV1 Video
  Extension"; without it the movies are black with sound), leaving Link's house, saving.
- A menu-like scene at a steady 60 fps (248 draws, 0 skipped).

What does not
1. Colours: 3D scenes are drawn as high-contrast colour noise (terrain) with a flat
   cyan/white sky, often just the solid blue clear colour plus HUD. Link's model in
   the equipment menu is almost black (rim light only). UI icons look correct.
2. RX_VK_ASTC_CPU=1 changes nothing, so it is not the GPU ASTC decode.
3. In gameplay (~700-2100 draws per frame) about 50-70 draws per frame are skipped at
   vk_draw.cpp:2692 ("a draw without a program", stage keys 6 and 7, which I assume
   are task/mesh). Also 12 dispatches per frame are skipped at vk_draw.cpp:3429, already
   at the title screen; the comment there says skipped dispatches leave garbage in the
   sky/terrain. The log also has: "program 0000000000000000 does not translate:
   dispatch replaced by linear upscale 1920x1080 -> 2560x1440".
4. About 560,000 DrawMeshTasksIndirect calls over the session.
5. vk_shader.cpp builds the recompiler profile with max_subgroup_size = 32 and
   warp_size_potentially_larger_than_guest = false without querying the device. GCN
   runs wave64, so shaders using vote/ballot/shuffle may misbehave. Could the profile
   be filled from VkPhysicalDeviceSubgroupProperties?
6. Performance (7-27 fps) is CPU-bound: in one frame with 1638 draws the GPU takes
   ~15 ms, but replay takes draw 156 ms + descriptors 118 ms + texture lookups 61 ms +
   submit 79 ms. VRAM is saturated ("3433 MB used of 3433 MB allowed") and textures
   are retired constantly.
7. Pressing Start after leaving the house gives a black window with menu music for
   1-2 minutes.

Questions: is AMD (wave64, no mesh shaders) supported or planned? Would a compute
fallback for mesh/task programs be considered? Which extra logs would help?

Visual Studio or Build Tools version, and Windows SDK version

Windows 11 23H2

Operating system and free space on the output drive

Windows 11 23H2 (10.0.22631.6199), 52,2 GB free on C:

Before you send it

  • I'm on the newest release, or it still fails on it.
  • I searched the open issues for this error.
  • I'm not attaching game files or anything built from them.
### Builder version v1.0.0 ### How you built Hookshot Builder app (Windows) ### Game files given to it A .nup ### The error ```text Title: AMD Radeon RX 580 (Polaris, 4 GB): Vulkan back end boots and reaches gameplay, but the world renders as colour noise / solid blue Environment - Windows 11 (10.0.22631), Radeon RX 580 Series 4 GB, Intel Core i7 7th gen, 16 GB DDR4 - Game built with HookshotBuilder, default back end (hookshot_vk.dll) - Log: "vk: Radeon RX 580 Series, Vulkan 1.3, driver 0x800117; mesh shaders no, host memory import yes, pipeline libraries no" What works - Boot, title screen, intro movie (only after installing Microsoft's "AV1 Video Extension"; without it the movies are black with sound), leaving Link's house, saving. - A menu-like scene at a steady 60 fps (248 draws, 0 skipped). What does not 1. Colours: 3D scenes are drawn as high-contrast colour noise (terrain) with a flat cyan/white sky, often just the solid blue clear colour plus HUD. Link's model in the equipment menu is almost black (rim light only). UI icons look correct. 2. RX_VK_ASTC_CPU=1 changes nothing, so it is not the GPU ASTC decode. 3. In gameplay (~700-2100 draws per frame) about 50-70 draws per frame are skipped at vk_draw.cpp:2692 ("a draw without a program", stage keys 6 and 7, which I assume are task/mesh). Also 12 dispatches per frame are skipped at vk_draw.cpp:3429, already at the title screen; the comment there says skipped dispatches leave garbage in the sky/terrain. The log also has: "program 0000000000000000 does not translate: dispatch replaced by linear upscale 1920x1080 -> 2560x1440". 4. About 560,000 DrawMeshTasksIndirect calls over the session. 5. vk_shader.cpp builds the recompiler profile with max_subgroup_size = 32 and warp_size_potentially_larger_than_guest = false without querying the device. GCN runs wave64, so shaders using vote/ballot/shuffle may misbehave. Could the profile be filled from VkPhysicalDeviceSubgroupProperties? 6. Performance (7-27 fps) is CPU-bound: in one frame with 1638 draws the GPU takes ~15 ms, but replay takes draw 156 ms + descriptors 118 ms + texture lookups 61 ms + submit 79 ms. VRAM is saturated ("3433 MB used of 3433 MB allowed") and textures are retired constantly. 7. Pressing Start after leaving the house gives a black window with menu music for 1-2 minutes. Questions: is AMD (wave64, no mesh shaders) supported or planned? Would a compute fallback for mesh/task programs be considered? Which extra logs would help? ``` ### Visual Studio or Build Tools version, and Windows SDK version Windows 11 23H2 ### Operating system and free space on the output drive Windows 11 23H2 (10.0.22631.6199), 52,2 GB free on C: ### Before you send it - [x] I'm on the newest release, or it still fails on it. - [x] I searched the open issues for this error. - [x] I'm not attaching game files or anything built from them.
NotRexed commented 2026-11-08 00:27:29 +00:00 (Migrated from github.com)

Thanks, that's right: the movies are AV1, and on Windows the game decodes AV1 through Windows itself, which needs Microsoft's free 'AV1 Video Extension' (most PCs have it, some don't). The next release says so the first time it happens and offers to open the extension's Store page, instead of leaving the movies black. Bundling an AV1 decoder of our own is on the list.

Thanks, that's right: the movies are AV1, and on Windows the game decodes AV1 through Windows itself, which needs Microsoft's free 'AV1 Video Extension' (most PCs have it, some don't). The next release says so the first time it happens and offers to open the extension's Store page, instead of leaving the movies black. Bundling an AV1 decoder of our own is on the list.
NotRexed commented 2026-11-08 01:02:06 +00:00 (Migrated from github.com)

The new release is out: https://github.com/NotRexed/Hookshot/releases/tag/no-visual-studio. Please rebuild with it and tell me here whether it's fixed for you (attach hookshot_log.txt if not).

The new release is out: https://github.com/NotRexed/Hookshot/releases/tag/no-visual-studio. Please rebuild with it and tell me here whether it's fixed for you (attach hookshot_log.txt if not).
NotRexed commented 2026-11-09 05:47:47 +00:00 (Migrated from github.com)

Tracked in #1001, follow there. That issue collects every report of GPUs without mesh shaders, and this one is linked from it with its GPU, version and log details. v2.0.6 brings back the fallback for GPUs without mesh shaders (PR #779). It is untested on these cards, so a v2.0.6 result from you would help. 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.

Tracked in #1001, follow there. That issue collects every report of GPUs without mesh shaders, and this one is linked from it with its GPU, version and log details. v2.0.6 brings back the fallback for GPUs without mesh shaders (PR #779). It is untested on these cards, so a v2.0.6 result from you would help. 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`.
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#380
No description provided.