Don´t run in Vega 7 IGPU RADV #1404

Closed
opened 2026-11-10 00:51:05 +00:00 by GabrielCrazyFiction · 5 comments
GabrielCrazyFiction commented 2026-11-10 00:51:05 +00:00 (Migrated from github.com)

Hookshot version

v2.0.5 - v2.0.11

What kind of problem

Crash, freeze or black screen

What happened

Idea: compute-shader fallback for GPUs without VK_EXT_mesh_shader

Thank you for the project and for how fast it is moving.

Hookshot needs mesh shaders, which limits it to fairly recent GPUs (as far as I know,
RTX 20 and newer, RX 6000 and newer). I am from Brazil, where hardware is expensive;
most PCs and laptops here have GTX cards, older Radeons or integrated graphics
(Vega, Iris Xe, UHD G7). On my Vega 7 (RADV RENOIR, Mesa 25.2.8), vulkaninfo lists
VK_EXT_mesh_shader only for llvmpipe, not for the GPU.

I know this is non-trivial and may not fit the project's goals, so I am asking more
than requesting. A rough idea, in case it is useful:

  1. Task replacement: a compute dispatch runs the translated task program. Instead of
    EmitMeshTasks, each surviving meshlet is appended to a buffer (atomic counter) together
    with its payload, and indirect dispatch arguments are written.
  2. Mesh replacement: an indirect compute dispatch, one workgroup per mesh workgroup.
    The vertex/primitive counts reserve ranges (atomic or prefix sum) in global vertex and
    index buffers, and the shader writes its outputs there.
  3. Draw with vkCmdDrawIndexedIndirect (or the Count variant if available) using a generic
    vertex stage that pulls from those buffers, plus the game's fragment shader.

Caveats I can see: extra memory traffic and memory use (a real concern on iGPUs that
share system RAM), preserving primitive order, per-primitive outputs, and the output
limits of the original mesh shaders. Tellusim's published tests show compute-based
approaches can compete with hardware mesh shaders on several GPUs, but their data is
prepared as meshlets beforehand, so I do not know how well this carries over to
translated game shaders. I noticed the shader translation has an IR (vk_shader.cpp),
so maybe the task/mesh programs could be retargeted there, but I do not know the
internals.

If it is not planned, a note in the README about this limitation would help others
avoid compiling for 30+ minutes first. I can test on a Vega 7 (RADV) and a
GTX 1660 Super, and share logs or captures if that helps.

Thanks for your time.
I'm very enthusiastic about this project, thank you for the great work.

Where in the game

End of Primary Cutscene ( Link Arrise)

How often

Every time

Graphics card and driver version

Vega 7 (4gb UMA Bios Mod) • Driver Base (Kernel): amdgpu • Driver OpenGL: radeonsi (Mesa 25.2.8) • Driver Vulkan: RADV (Mesa 25.2.8)

CPU, RAM and operating system

Ryzen 5 5500u , 2x8gb 3200mhz cl20 , Mint Cinnamont 22.3 kernel 7.0.42

Changes from the defaults

No response

Other software hooked into the game

No, nothing hooked in

hookshot_log.txt

I was testing several versions in a row and deleted the logs along the way, so I don't
have one from the failing run right now. I'll run the game again and attach
hookshot_log.txt (and hookshot_log.1.txt if needed) here as soon as possible.

Screenshots or video

No response

Before you send it

  • I'm on the newest release, or the problem is still there on it.
  • I searched the open issues for this problem.
  • I'm not attaching game files, keys, hookshot.exe, the .bin caches or saves.
### Hookshot version v2.0.5 - v2.0.11 ### What kind of problem Crash, freeze or black screen ### What happened Idea: compute-shader fallback for GPUs without VK_EXT_mesh_shader Thank you for the project and for how fast it is moving. Hookshot needs mesh shaders, which limits it to fairly recent GPUs (as far as I know, RTX 20 and newer, RX 6000 and newer). I am from Brazil, where hardware is expensive; most PCs and laptops here have GTX cards, older Radeons or integrated graphics (Vega, Iris Xe, UHD G7). On my Vega 7 (RADV RENOIR, Mesa 25.2.8), vulkaninfo lists VK_EXT_mesh_shader only for llvmpipe, not for the GPU. I know this is non-trivial and may not fit the project's goals, so I am asking more than requesting. A rough idea, in case it is useful: 1. Task replacement: a compute dispatch runs the translated task program. Instead of EmitMeshTasks, each surviving meshlet is appended to a buffer (atomic counter) together with its payload, and indirect dispatch arguments are written. 2. Mesh replacement: an indirect compute dispatch, one workgroup per mesh workgroup. The vertex/primitive counts reserve ranges (atomic or prefix sum) in global vertex and index buffers, and the shader writes its outputs there. 3. Draw with vkCmdDrawIndexedIndirect (or the Count variant if available) using a generic vertex stage that pulls from those buffers, plus the game's fragment shader. Caveats I can see: extra memory traffic and memory use (a real concern on iGPUs that share system RAM), preserving primitive order, per-primitive outputs, and the output limits of the original mesh shaders. Tellusim's published tests show compute-based approaches can compete with hardware mesh shaders on several GPUs, but their data is prepared as meshlets beforehand, so I do not know how well this carries over to translated game shaders. I noticed the shader translation has an IR (vk_shader.cpp), so maybe the task/mesh programs could be retargeted there, but I do not know the internals. If it is not planned, a note in the README about this limitation would help others avoid compiling for 30+ minutes first. I can test on a Vega 7 (RADV) and a GTX 1660 Super, and share logs or captures if that helps. Thanks for your time. I'm very enthusiastic about this project, thank you for the great work. ### Where in the game End of Primary Cutscene ( Link Arrise) ### How often Every time ### Graphics card and driver version Vega 7 (4gb UMA Bios Mod) • Driver Base (Kernel): amdgpu • Driver OpenGL: radeonsi (Mesa 25.2.8) • Driver Vulkan: RADV (Mesa 25.2.8) ### CPU, RAM and operating system Ryzen 5 5500u , 2x8gb 3200mhz cl20 , Mint Cinnamont 22.3 kernel 7.0.42 ### Changes from the defaults _No response_ ### Other software hooked into the game No, nothing hooked in ### hookshot_log.txt I was testing several versions in a row and deleted the logs along the way, so I don't have one from the failing run right now. I'll run the game again and attach hookshot_log.txt (and hookshot_log.1.txt if needed) here as soon as possible. ### Screenshots or video _No response_ ### Before you send it - [x] I'm on the newest release, or the problem is still there on it. - [x] I searched the open issues for this problem. - [x] I'm not attaching game files, keys, hookshot.exe, the .bin caches or saves.
Desconvidado commented 2026-11-10 02:44:55 +00:00 (Migrated from github.com)

Most be a joke. 5500u can barely hit 60 fps on ns1 emulation at 720p.

Image
Most be a joke. 5500u can barely hit 60 fps on ns1 emulation at 720p. <img width="1112" height="903" alt="Image" src="https://github.com/user-attachments/assets/ad84d278-4a29-40ff-ae01-4a7a33ecdc41" />
GabrielCrazyFiction commented 2026-11-10 02:58:23 +00:00 (Migrated from github.com)

Most be a joke. 5500u can barely hit 60 fps on ns1 emulation at 720p.

Image

In docked , the RAM and GPU clock runs in low speed . Read and discuss the proposed optimization using more detailed data from the API architecture and how to resolve the issue.Screenshot_20261109_235757_Google.jpg

> Most be a joke. 5500u can barely hit 60 fps on ns1 emulation at 720p. > > <img width="1112" height="903" alt="Image" src="https://github.com/user-attachments/assets/ad84d278-4a29-40ff-ae01-4a7a33ecdc41" /> In docked , the RAM and GPU clock runs in low speed . Read and discuss the proposed optimization using more detailed data from the API architecture and how to resolve the issue.![Screenshot_20261109_235757_Google.jpg](https://github.com/user-attachments/assets/85d2d47d-16b5-4840-b79a-b93f5ad64484)
Desconvidado commented 2026-11-10 03:02:21 +00:00 (Migrated from github.com)
Image

5500+rtx3060

Image

last reply

<img width="831" height="174" alt="Image" src="https://github.com/user-attachments/assets/c8adbf96-5a47-4e77-afc7-251232897244" /> 5500+rtx3060 <img width="1920" height="1080" alt="Image" src="https://github.com/user-attachments/assets/5f9847b7-c8f2-4a05-b2a4-a5e421e0fa1d" /> last reply
GabrielCrazyFiction commented 2026-11-10 03:07:07 +00:00 (Migrated from github.com)

It's not a lack of firepower, it's a matter related to how the architecture of the graphical pipeline and the distribution of activities at the code level behaves. IT IS NOT AN EMULATION It's an initial project, as you can see.

It's not a lack of firepower, it's a matter related to how the architecture of the graphical pipeline and the distribution of activities at the code level behaves. IT IS NOT AN EMULATION It's an initial project, as you can see.
NotRexed commented 2026-11-11 21:22:40 +00:00 (Migrated from github.com)

Thanks for the report. Reports of the same problem are now collected in #1000, which lists this one with your details and links back here, so one fix closes them together and the open list stays readable. Follow #1000 for the fix, and add new details there (or here). If this turns out to be a separate problem it will be reopened.

Thanks for the report. Reports of the same problem are now collected in #1000, which lists this one with your details and links back here, so one fix closes them together and the open list stays readable. Follow #1000 for the fix, and add new details there (or here). If this turns out to be a separate problem it will be reopened.
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#1404
No description provided.