godot: Godot freezes when pop up appears under X
Godot version: built from commit: c97dea47b582ec66df4d0565df83902826df7829 Godot Engine v4.0.dev.custom_build.c97dea47b (also happens on Godot Engine v4.0.dev.calinou.c3964b6c8 and Godot Engine v4.0.dev.custom_build.c3964b6c8, didn’t test other)
OS/device including version: Pop!_OS 20.04 LTS (64bit) Nvidia GTX 960 Driver version: 455.28 Kernel: 5.4.0-7642-generic DE/WM: dwm (also tested on Pop shell (variation of GNOME) with same results)
Issue description: Whenever pop up appears, Godot hangs.
Steps to reproduce: Start Godot and click on anything that causes pop up to appear.
Video: https://youtu.be/MtH823uUKew
Minimal reproduction project: Doesn’t apply
Logs (I killed Godot with xkill when became unresponsive):
./godot.linuxbsd.tools.64
Godot Engine v4.0.dev.custom_build.c97dea47b - https://godotengine.org
ERROR: Can't find layer: VK_LAYER_KHRONOS_validation
at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_LUNARG_standard_validation
at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_GOOGLE_threading
at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
DisplayServer::_create_window 0 want rect: 448, 240, 1024, 600 got rect 448, 240, 1024
, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1024, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1052, 1057
Editing project: /home/dave/Work/godot/test (::home::dave::Work::godot::test)
Godot Engine v4.0.dev.custom_build.c97dea47b - https://godotengine.org
ERROR: Can't find layer: VK_LAYER_KHRONOS_validation
at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_LUNARG_standard_validation
at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
ERROR: Can't find layer: VK_LAYER_GOOGLE_threading
at: _check_layers (drivers/vulkan/vulkan_context.cpp:157)
DisplayServer::_create_window 0 want rect: 448, 240, 1024, 600 got rect 448, 240, 1024, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1024, 600
DisplayServer::_window_changed: 0 rect: 2, 21, 1052, 1057
ERROR: Some texture bindings were not properly freed (leaked CanvasItems?)
at: ~RasterizerCanvasRD (servers/rendering/rasterizer_rd/rasterizer_canvas_rd.cpp:2500)
ERROR: Attempted to free invalid ID: 0
at: _free_internal (drivers/vulkan/rendering_device_vulkan.cpp:6956)
DisplayServer::_create_window 1 want r
ect: 66, 55, 373, 241 got rect 66, 55, 373, 241
X connection to :1 broken (explicit kill or server shutdown).
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fe93616f210] (??:0)
[2] Object::get(StringName c
onst&, bool*) const (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/core/object.cpp:456)
[3] EditorExportPlatformAndroid::_check_for_changes_poll_thread(void*) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/godot/platform/android/export/export.cpp:303 (discriminator 3))
[4] ThreadPosix::thread_callback(void*) (/mnt/4a2a9151-8f05-4326-ad0a-f3e087d86a6c/Tools/g
odot/drivers/unix/thread_posix.cpp:73)
[5] /lib/x86_64-linux-gnu/libpthread.so.0(+0x9609) [0x7fe936677609] (??:0)
[6] /lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7fe93624b293] (??:0)
-- END OF BACKTRACE --
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 19 (11 by maintainers)
Thanks all for the time spent investigating! All of this points to a freeze during rendering just like #41614 so I’m closing this issue as duplicate again.
The original description suggested it could be something else and the one call stack with
__cxa_pure_virtualstill seems weird to me but we’ll see if that happens again once the nvidia driver issue is fixed.Edit: Rolling back to nvidia drivers 450.57 might help, it fixed the issue in some similar cases.
I am sorry for being inactive lately. I will try to send my debugger output ASAP. Also, I am interested in finding the commit when this appears for the first time (which might help with some insight).
There are multiple call stacks so I send them all
(no DisplayServerX11::process_events so couldn’t provide more info in this regard even tho X lagged a little before pausing)
Console output
@Darkheron Please surround large blocks of text with triple backticks like this:
``` text here ```
This prevents them from taking too much space and also makes sure issue references aren’t accidentally created. I edited your comment, but remember to do this next time 🙂
Godot version: 4.0
OS/device including version:
Linux version 5.4.0-42-generic (buildd@lgw01-amd64-038) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) Nvidia GeForce RGX 2080Ti Vulkan 1.2 AMD Ryzen Threadripper 2950X 16-Core Processor Using the nvidia 450 driver.
Having the same problem. Not completely sure what is going on yet, but at first glance it seems to be blocking in vkDeviceWaitIdle for ages.
Still looking.
@pouleyKetchoupp Hey i’m having the same exact problem as OP has, with the difference of the popup window showing but it dosen’t seem to render(transparent with borders and contents behind it are inside the window like a image). that the the whole application softlocks and i cant click or interact with anything in the application and i have to manually shut it down via htop.
Godot version
build from commit: 32be929 Godot Engine v4.0 master
OS/device including version:
Pop!_OS 20.04 LTS (64bit) Nvidia GTX 980 Driver version: 455.28 Kernel: 5.4.0-7642-generic
So i did as you instructed with debugging via vscode. I also uncommented line 87 from platform/linuxbsd/display_server_x11.cpp and this is the output that i got:
Stack Trace:
Terminal Output:
I’m new to contributing online so i apologize beforehand if i left out any information.