godotengine / godotengine/godot

Consistent Forward+ crash - RenderingDeviceDriverVulkan

Open
#88,906 2 comments 0 reactions 0 assignees View on GitHub
bug crash platform:windows topic:platforms topic:rendering
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

v4.3.dev.custom_build [a586e860e]

### System information

Windows 10 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 970 (NVIDIA; 31.0.15.4633)

### Issue description

Godot consistently crashes when coming from hibernate on W10, as per described steps. The stacktrace is always the same:
```
================================================================
CrashHandlerException: Program crashed
Engine version: Godot Engine v4.3.dev.custom_build (a586e860e5fc382dec4ad9a0bec72f7c6684f020)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[0]
[1-23]
[24] RenderingDeviceDriverVulkan::_swap_chain_release (Godot\drivers\vulkan\rendering_device_driver_vulkan.cpp:2441)
[25] RenderingDeviceDriverVulkan::swap_chain_resize (Godot\drivers\vulkan\rendering_device_driver_vulkan.cpp:2544)
[26] RenderingDevice::screen_prepare_for_drawing (Godot\servers\rendering\rendering_device.cpp:3191)
[27] RendererCompositorRD::blit_render_targets_to_screen (Godot\servers\rendering\renderer_rd\renderer_compositor_rd.cpp:38)
[28] RendererViewport::draw_viewports (Godot\servers\rendering\renderer_viewport.cpp:819)
[29] RenderingServerDefault::_draw (Godot\servers\rendering\rendering_server_default.cpp:92)
[30] RenderingServerDefault::draw (Godot\servers\rendering\rendering_server_default.cpp:388)
[31] Main::iteration (Godot\main\main.cpp:4008)
[32] OS_Windows::run (Godot\platform\windows\os_windows.cpp:1476)
[33] widechar_main (Godot\platform\windows\godot_windows.cpp:182)
[34] _main (Godot\platform\windows\godot_windows.cpp:206)[35] main (Godot\platform\windows\godot_windows.cpp:218)
[36] __scrt_common_main_seh (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
[37]
-- END OF BACKTRACE --
================================================================
```

### Steps to reproduce

1. Have Godot open in the 3D editor view
2. Press (or mouse click) Windows Key
3. Right click Power options, Hibernate
4. Turn PC back on, Godot will have crashed on these specs

![image](https://github.com/godotengine/godot/assets/115422160/5844e9be-32cc-4ec2-a8a4-f8df02a2fe80)

### Minimal reproduction project (MRP)

Reproducible on an empty project, which I include here:
[Empty Proj.zip](https://github.com/godotengine/godot/files/14419864/Empty.Proj.zip)

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the crash in the empty project on Windows 10 with Vulkan after hibernation, then inspect drivers/vulkan/rendering_device_driver_vulkan.cpp around _swap_chain_release (line 2441) and swap_chain_resize (line 2544). Trace the call from RenderingDevice::screen_prepare_for_drawing and verify that returning from hibernate no longer crashes on the reported setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.