-
-
Notifications
You must be signed in to change notification settings - Fork 21.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Godot freezes when pop up appears under X #42971
Comments
I'm not able to reproduce the issue on Ubuntu 20.04 with either Gnome or dwm. If you don't mind spending more time to check, there are a few other things that might help investigating:
|
Duplicate of #41614. |
I guess you meant to reference 3.2.4-beta1 and not 3.2-beta5? :)
While it might also be caused by the Nvidia driver, there's a crash stacktrace here, I'm not sure it's exactly the same. |
It looks like it could be a different issue, possibly due to #41910. This one is a complete softlock on the main thread after the popup appears, while the issue with the nvidia driver is a freeze for some time before the popup is rendered.
Yes, fixed! Thanks :) |
Doesn't freeze on Godot Engine v3.2.4.beta1.official
Doesn't freeze with
Tried 8a84b3c which is before #41910 and Godot still becomes unresponsive. (Godot Engine v4.0.dev.custom_build.8a84b3cfd)
I killed with xkill. That's why there's crash stacktrace. In the stacktrace is mentioned that it was killed.
This would be interesting. Tell me all the tools I need to set up for it. I don't mind sharing my screen on for example Godot's Discord server. |
@DavidHusicka Thanks for testing! Since it's not due to #41910 it's probably not the threading issue I was thinking about. And it's nice to know it doesn't affect the incoming 3.2 release. For the debugger, you just need to install Visual Studio Code (there are probably alternatives but I haven't tried). This is how you set it up for Godot: There are a few differences though for master compared to 3.2:
Then when you experience the freeze, press pause in the run bar: And on the left side panel, go to the run tag, open the callstack on the main thread, right click in the callstack and select "Copy Call Stack". One last thing I'm interested in, is to get extra log about x server events. For that, open After compiling again, you will see more log in the console. I'd like to see what you get when the freezing occurs. |
@pouleyKetchoupp Godot versionbuild from commit: 32be929 OS/device including version:Pop!_OS 20.04 LTS (64bit) 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. |
@Michael-Sjogren Thanks! That helps a lot. I'm still not sure what happens, but the pure virtual call in the callstack indicates something might be called on a destroyed object. I'm trying to do some guess work but no luck so far. Do you mind giving me the same information again, but this time with also the value of some variables in |
So i set a breakpoint on DisplayServerX11::process_events when im about to open a popup? |
No, rather by pausing when it's frozen like you did before. It's a few levels up in the call stack you shared. |
@Michael-Sjogren Make sure you click on the line that says Your variables seem ok. You will get something similar to this: Then please add the terminal output from the same debugging session so I can cross-reference the numbers. Thanks! |
Process event variableswindow_id: 1 call stack
|
Thanks! This call stack is different from the previous one, and actually points to possibly the same issue as #41614 (it's freezing while rendering, blocked on nvidia side). That means there could be two different issues here, I'm not sure. If you can change your nvidia driver version, try installing version 450.57. It might help if it's actually due the nvidia driver bug. |
Godot version: 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)) 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. |
@Darkheron Please surround large blocks of text with triple backticks like this: ``` 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 🙂 |
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
|
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 Edit: Rolling back to nvidia drivers 450.57 might help, it fixed the issue in some similar cases. |
Godot version:
built from commit: c97dea4
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):
The text was updated successfully, but these errors were encountered: