Game black screens after shaders compile #1161
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#1161
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
2.0.8
What kind of problem
Crash, freeze or black screen
What happened
The first time it happened the game audio and inputs was working, but it had a black screen. Now it just black screens with no output. The game doesn't respond and have to task manager kill it.
Where in the game
after shaders compile
How often
Every time
Graphics card and driver version
RTX 4090
CPU, RAM and operating system
Ryzen 7 7800X3D, 64GB, Windows 11
Changes from the defaults
No response
Other software hooked into the game
No, nothing hooked in
hookshot_log.txt
hookshot_log.txt
hookshot_log.1.txt
hookshot_log.2.txt
hookshot_log.3.txt
hookshot_log.4.txt
Screenshots or video
No response
Before you send it
Thanks for the logs. Linking this to the black-screen-after-the-intro tracker #998 for now. Does it still happen if you start the game a second time (the first start after an update prepares shaders and pipelines)?
I’m having the same problem; after updating to version Hookshot v2.0.8, the shaders compile, but then the game opens with sound only—no image. CPU 5800X3d and RTX 5070
hookshot_log.4.txt
Yes the same issue still happens. The hookshot logo pops up and the shaders compile under it for a brief second and then nothing, just blackscreen now. I set the game from ultrawide to normal using the .ini, but no change. I am going to try to rebuild hookshot in a different file to see if that fixes it.
When I click on the hookshot when in black screen the mouse gets captured. Pressing ESC does pop it back out, so some functions are still working during the black screen.
Thanks for the logs, they pinned it down: on v2.0.8 the GPU was lost inside a new write-back pass a few hundred frames after start, every time, and your v2.0.7 log shows the same PC running fine. Your driver (the 621 series) is newer than the one it was tested on.
v2.0.9 is out and turns that change (and the presents' new queue) off by default, back to v2.0.7's paths. Update from the launcher and please say here whether it starts now.
If you have a minute afterwards, it would help a lot to try each one alone, since they made v2.0.8 ~20% faster where they work: set
RX_VK_WB_DIFF=1, start the game, then remove it and tryRX_VK_PRESENT_QUEUE=1. Tell us which one (if either) brings the black screen back.2.0.9 works now.
Edit: Initially tested environment variables without resetting between tests, and caused both variables to stay in mem. I corrected the mistake.
set RX_VK_WB_DIFF=1 && hookshot.exe
works
set RX_VK_PRESENT_QUEUE=1 && hookshot.exe
black screens with no sound
hookshot_log.txt
hookshot_log.1.txt
621.14 RTX 5080 no problem with 2.0.8
621.14 rtx5080m
运行2.0.8没有问题 there is no problem in 2.0.8
但是在游玩过程中会出现飞天树木和地面贴图错误。
Hookshot v2.0.9 A/B test on CachyOS with an RTX 5060 (8 GB), NVIDIA driver
615.78.08, a Ryzen 5 5600G, and 16 GB of RAM.Both configurations reached controllable gameplay in Kokiri Forest after loading the same save. The logs showed zero device-lost events and zero Vulkan submit or present failures.
I recorded one scripted camera pan of about 24 seconds per configuration with
RX_VK_FRAME_LOG. Both runs used 67% resolution (1366×768), frame pacing on, 2× frame generation, andRX_VK_PRESENT_QUEUE=0. MangoHud was disabled. FPS counts Vulkan presents, including generated frames.RX_VK_WB_DIFF=0)RX_VK_WB_DIFF=1)The opt-in run was second. It increased average present FPS in this short test, with a few longer stalls. I left the separate present queue off in both runs.
Both variables work on Arch Linux with NVIDIA driver 615.78.08 on an RTX 3060 (8GB)
RTX 3080 mobile, driver 617.14 on windows 10
2.0.8 works fine
2.0.8 average framerate: 40fps
2.0.9 average framerate: 25fps
621.14 rtx 4060 notebook
Both variables without problem, also together no problem (put them in hookshot_env.txt)
A data point for narrowing the hotfix: on an RTX 4080 SUPER with driver 616.92 (0x9a170000, Windows 11, Ryzen 7 5800X3D),
RX_VK_WB_DIFF=1ran twice for 200 s in Kokiri Forest without losing the device. That was main plus PR #841, at a 3840x2160 output.What the diff is worth there, from
RX_VK_PASS_TIMING=1with the camera swinging in the village:wb copiesmove the same 68 MB a frame in both runs, 0.55 ms (60 us a span) with the diff and 5.2 ms (540 us a span) without it. The GPU time drops from 11.9 to 7.6 ms a frame with the game's own upscale at 67%, and from 13.6 to 9.2 ms with DLSS Quality. Frame rate goes from 49 to 50 fps median, and from 45 to 49.5 with DLSS, since the game is CPU-bound there.So 0x9b438000 (the driver in the report) may be the condition, rather than the diff pass on every NVIDIA card. I do not have that driver here to try it.
Hey i am running the same driver version on a 5070ti and it works fine for me but i am also running with 3x/4x frame-generation and a lower resolution.
You are running at 8x frame-gen and 4k resolution, can you try the RX_VK_PRESENT_QUEUE=1 without frame-generation or with lower levels like 3x and let me know if the black screen keeps happening? I feel like your driver is crashing due to running out of memory
It looks like you are right. it runs when I did those changes.
hookshot_log.txt
it also runs with both DIFF and QUEUE enabled with the same settings.
hookshot_log.txt
Okay that's good to hear!
Honestly 8x frame-gen seems a bit excessive anyway, not sure if you were getting many benefits from using that.
If lower frame-gen levels work well for you i would suggest sticking to those.
To make sure 'cryptic' crashes like these don't happen in the future it would be good to have a guard/warning before running out of memory. Would be useful to implement some kind of check for certain settings i think.
EDIT: to be fair, in these early stages of this port the memory usage seems quite extreme and inefficient. IMO there are lots of optimizations that can be implemented in the next weeks to reduce memory usage.
It looks like any amount of framegen black screens it, while running QUEUE.
hookshot_log.txt
hookshot_log.1.txt
Fixed in v2.0.9, as confirmed above (the v2.0.8 present queue lost the GPU on NVIDIA 621 drivers). Thanks for the A/B tests!