Snapdragon X / Adreno X1-45: renderer startup fails because VK_EXT_external_memory_host is unavailable #2230

Closed
opened 2026-11-11 09:51:20 +00:00 by missiaenaurelien65-oss · 3 comments
missiaenaurelien65-oss commented 2026-11-11 09:51:20 +00:00 (Migrated from github.com)

Hookshot version

v2.0.14

What kind of problem

Crash, freeze or black screen

What happened

I am testing Hookshot on a Windows 11 ARM64 laptop with a Snapdragon X processor and Qualcomm Adreno X1-45 GPU.

The launcher starts correctly and the game builds successfully.

When I press Play, the game window opens and a black screen appears. A few seconds later the renderer initialization fails and the game exits.

The issue happens every launch.

I checked the log and found that the Vulkan device is detected successfully, but Hookshot reports that VK_EXT_external_memory_host is unavailable and renderer startup aborts afterward.

The most relevant log lines are:

vk: no VK_EXT_external_memory_host: the guest memory cannot be imported (needed for now)

vk: renderer startup failed after window and swapchain initialization

CRASH: exception 0xc0000005

The GPU is detected correctly:

Qualcomm(R) Adreno(TM) X1-45 GPU
Vulkan 1.3

The log also reports:

mesh shaders no

and Hookshot appears to use its mesh shader fallback successfully before reaching the VK_EXT_external_memory_host failure.

Where in the game

Immediately after pressing Play. The game never reaches the title screen.

How often

Every time

Graphics card and driver version

Qualcomm Adreno X1-45 GPU Vulkan API 1.3.295

CPU, RAM and operating system

Snapdragon X X1-26-100 16 GB RAM Windows 11 ARM64

Changes from the defaults

No configuration changes.

No hookshot_env.txt file exists.

Fresh installation.

Other software hooked into the game

No, nothing hooked in

hookshot_log.txt

hookshot_log.txt

hookshot_log.1.txt

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.14 ### What kind of problem Crash, freeze or black screen ### What happened I am testing Hookshot on a Windows 11 ARM64 laptop with a Snapdragon X processor and Qualcomm Adreno X1-45 GPU. The launcher starts correctly and the game builds successfully. When I press Play, the game window opens and a black screen appears. A few seconds later the renderer initialization fails and the game exits. The issue happens every launch. I checked the log and found that the Vulkan device is detected successfully, but Hookshot reports that VK_EXT_external_memory_host is unavailable and renderer startup aborts afterward. The most relevant log lines are: vk: no VK_EXT_external_memory_host: the guest memory cannot be imported (needed for now) vk: renderer startup failed after window and swapchain initialization CRASH: exception 0xc0000005 The GPU is detected correctly: Qualcomm(R) Adreno(TM) X1-45 GPU Vulkan 1.3 The log also reports: mesh shaders no and Hookshot appears to use its mesh shader fallback successfully before reaching the VK_EXT_external_memory_host failure. ### Where in the game Immediately after pressing Play. The game never reaches the title screen. ### How often Every time ### Graphics card and driver version Qualcomm Adreno X1-45 GPU Vulkan API 1.3.295 ### CPU, RAM and operating system Snapdragon X X1-26-100 16 GB RAM Windows 11 ARM64 ### Changes from the defaults No configuration changes. No hookshot_env.txt file exists. Fresh installation. ### Other software hooked into the game No, nothing hooked in ### hookshot_log.txt [hookshot_log.txt](https://github.com/user-attachments/files/34681495/hookshot_log.txt) [hookshot_log.1.txt](https://github.com/user-attachments/files/34681510/hookshot_log.1.txt) ### 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.
NotRexed commented 2026-11-11 21:27:16 +00:00 (Migrated from github.com)

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

@FabianZettl commented on GitHub · 2026-11-12 15:31 UTC · original

Same cause on a second platform: Turnip on the msm kernel driver does not expose VK_EXT_external_memory_host. On an AYN Thor (Adreno 740, Mesa 26.2.6) I worked around it by exporting device memory as dma-buf and mapping it over the guest window (see the comment in #1007). The renderer starts and presents; the CPU-visible caching of that mapping and the lost-write window during the copy are still open. If a maintainer knows of a safer way to give the GPU the guest pages without a host-pointer import, I would like to hear it.

> [@FabianZettl](https://github.com/FabianZettl) commented on GitHub · 2026-11-12 15:31 UTC · [original](https://github.com/NotRexed/Hookshot/issues/2230#issuecomment-6827951372) Same cause on a second platform: Turnip on the msm kernel driver does not expose `VK_EXT_external_memory_host`. On an AYN Thor (Adreno 740, Mesa 26.2.6) I worked around it by exporting device memory as dma-buf and mapping it over the guest window (see the comment in #1007). The renderer starts and presents; the CPU-visible caching of that mapping and the lost-write window during the copy are still open. If a maintainer knows of a safer way to give the GPU the guest pages without a host-pointer import, I would like to hear it. <!-- github-sync:c:6827951372 -->
Owner

@missiaenaurelien65-oss commented on GitHub · 2026-11-12 16:01 UTC · original

Same cause on a second platform: Turnip on the msm kernel driver does not expose VK_EXT_external_memory_host. On an AYN Thor (Adreno 740, Mesa 26.2.6) I worked around it by exporting device memory as dma-buf and mapping it over the guest window (see the comment in #1007). The renderer starts and presents; the CPU-visible caching of that mapping and the lost-write window during the copy are still open. If a maintainer knows of a safer way to give the GPU the guest pages without a host-pointer import, I would like to hear it.

I would be interested in testing your branch or patch if you decide to publish it.

> [@missiaenaurelien65-oss](https://github.com/missiaenaurelien65-oss) commented on GitHub · 2026-11-12 16:01 UTC · [original](https://github.com/NotRexed/Hookshot/issues/2230#issuecomment-6828710698) > Same cause on a second platform: Turnip on the msm kernel driver does not expose `VK_EXT_external_memory_host`. On an AYN Thor (Adreno 740, Mesa 26.2.6) I worked around it by exporting device memory as dma-buf and mapping it over the guest window (see the comment in [#1007](https://git.magicbean.dev/MagicBeanDev/Hookshot/issues/1007)). The renderer starts and presents; the CPU-visible caching of that mapping and the lost-write window during the copy are still open. If a maintainer knows of a safer way to give the GPU the guest pages without a host-pointer import, I would like to hear it. I would be interested in testing your branch or patch if you decide to publish it. <!-- github-sync:c:6828710698 -->
Commenting is not possible because the repository is archived.
No milestone
No assignees
2 participants
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#2230
No description provided.