godotengine / godotengine/godot
Consistent Forward+ crash - RenderingDeviceDriverVulkan
- 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

### 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
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