-
-
Notifications
You must be signed in to change notification settings - Fork 21.7k
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
Hard crash without any output when running specific scene in Godot 3.5 on Windows 11. #61499
Comments
Can you try compiling a debug build of the latest |
I have not compiled anything on Windows before, only on Linux so I'm not sure, but I'll give it a try. |
@EzraT The MRP seems to have some permission issue. Its download permission is "viewers cannot download" :( |
@timothyqiu Should be fixed now. |
An exported project may not provide much help. |
@univeous @Calinou |
Tested again using target=release_debug, and it runs without crashing just as with the debug build. |
You can compile the crashed debug version (e.g. 3.5rc2) to print the crash backtrace (if available) to locate the problem and confirm if it has indeed been fixed. |
@univeous |
Yeah, I think that's the difference. The official builds are cross-compiled from Linux with MinGW. |
@univeous Do you have the capability to compile in the same manner as the official builds? |
I can, but I may not be available until tomorrow :( |
I'm compiling debug builds of 3.x b541b57 with MinGW right now. Note that you can't use the MSVC debugger or WinDbg with those builds, and the crash handler won't work until #61006 is merged. You need to install GDB or LLDB and use it from the command line. You can install GDB using Scoop (
Run project until it crashes, then enter the following line in the GDB prompt to get a backtrace:
|
Windows 64-bit builds of b541b57 compiled with MinGW on Fedora 36 (GCC 12.1.1), including full debugging symbols:
|
@Calinou |
@Calinou @univeous @timothyqiu Tested again with the official RC3 build, and it still crashes. I could still send you the project files univeous, but I get the feeling that won't yield any results since it seems only the official builds crash. |
@EzraT I tried what you uploaded as "Minimal reproduction project", but I can't reproduce the problem. It's working fine for me. (see attached video) gd_61499-6000_v6_30.mp4 |
@MmAaXx500 @Calinou @univeous @timothyqiu Calinou, univeous, timothyqiu, if you tested this on Windows, on what version of Windows did you test the binary? I updated the issue a little to avoid confusion about the reproduction binary. |
I tested your export project on Windows 11 and it does crash. |
I can confirm it is a Windows 11 issue, I tested it on Windows 10 on the same system, and it does not crash. |
I can reproduce it with the official RC3 export templates and editor binary (only 64-bit version, both debug and release variants, 32-bit versions are OK), but not with the custom builds (neither MSVC, nor MinGW builds). Backtrace without symbols is pretty useless:
|
OK seems like it an issue with LTO and FreeType, custom MinGW build with the LTO also crashes:
|
Not sure what's exactly going wrong but, it's working with FreeType 2.10.4 but not with 2.11.0+. I'll try to bisect it. |
To clarify, we didn't have alphas for 3.5 but can you confirm that 3.5.beta1 crashes and 3.4.4.stable is fine? I'm trying to think about what could have caused the regression, and I think in 3.5.beta1 it's still using the exact same MinGW version and build options as 3.4.4 used. For the record, subsequent builds were made with these versions:
We did update FreeType twice during the 3.5 development:
And just as I was typing this @bruvzg confirmed that it seems to be a regression from FreeType 2.11.0+ so this checks out :) But that should mean that 3.5.beta1 should not crash, but 3.5.beta2+ should. |
Bad commit seems to be - freetype/freetype@80bda80 |
I'm currently unable to test because I recently factory reset my Windows laptop back to Windows 10 for unrelated reasons. I also know a 100% certain 3.4.4 does not crash. Edit: Corrected alpha to beta in the OP. |
The I wonder if adding it back solves the crash? Edit: Nevermind, that would break the intended logic. Maybe just this? diff --git a/thirdparty/freetype/src/smooth/ftgrays.c b/thirdparty/freetype/src/smooth/ftgrays.c
index 622035aa79..19cf41c1fe 100644
--- a/thirdparty/freetype/src/smooth/ftgrays.c
+++ b/thirdparty/freetype/src/smooth/ftgrays.c
@@ -605,7 +605,10 @@ typedef ptrdiff_t FT_PtrDist;
break;
if ( cell->x == ex )
- goto Found;
+ {
+ ras.cell = cell;
+ return;
+ }
pcell = &cell->next;
}
@@ -622,7 +625,6 @@ typedef ptrdiff_t FT_PtrDist;
cell->next = *pcell;
*pcell = cell;
- Found:
ras.cell = cell;
}
} Either way, this would be good to report upstream https://gitlab.freedesktop.org/freetype/freetype so we can make sure that it gets solved eventually there too - or reported further to binutils or GCC devs. |
No, still crashes. |
Just to check if this would be fixed in newer mingw-binutils or newer GCC, I made a test build on Fedora 37: https://downloads.tuxfamily.org/godotengine/testing/Godot_v3.5-rc3-f37_win64.exe.zip
|
Broken. |
Awesome, thanks! Would be good to report this upstream to https://gitlab.freedesktop.org/freetype/freetype so that they're aware of the issue, even if it's a toolchain problem and not directly their code being wrong. And then further up I'm not sure if it's a GCC or a binutils issue. Maybe @marxin can advise us? |
Fixed by #61803. |
FreeType bug report: https://gitlab.freedesktop.org/freetype/freetype/-/issues/1164 The real problem is probably still in either MinGW, GCC or binutils, but I don't know which yet and how to give them a useful reproducer. |
Here's a compiled version of current Godot Could you confirm that it solves your crash @EzraT @univeous? |
I am currently unable to test, I had to send my Windows laptop back to the manufacturer for repairs, (For a problem unrelated to this issue.) and I am not planning on upgrading it to Windows 11 again once I get it back, at-least not in the foreseeable future. If you want to test this @univeous, let me know and I'll send you the project files. |
Hard to guess what's responsible for that. Am I right it's only related to Windows target? |
It's only reproducible on Windows 11 so far. It was bisected to be a regression in FreeType, which was fixed by adding a Making a self-reproducible case sounds quite difficult, we experienced this FreeType bug in Godot in scenes using specific fonts at big sizes - to narrow this down one would have to make a new test program using only FreeType to see if that can trigger the bug, and then dissect FreeType to try to extract something more minimal. |
Yeah, I fully understand that test case isolation would be a pretty tough job there. |
Godot version
All of the 3.5 test releases to date
System information
Windows 11 only(?) - GLES2/GLES3
Issue description
All of the Godot 3.5 test releases (from beta to rc) crash consistently upon running a specific scene in one of my projects.
It runs for about 2 seconds, then audio starts to cut out and the engine freezes and crashes shortly after, without any information about the crash anywhere, not in console output with --verbose enabled, not in the logs, not in the editor.
The scene loads absolutely fine in 3.4.
Video
I've tried changing/re-importing/removing/toggling a lot of things in the scene to try to isolate a cause, but with no luck whatsoever.
It happens in both GLES2 and GLES3.
Resetting all project settings to default did not not make a difference either.
The only thing I do know about this crash is that it only seems to happen on my Windows 11 system, I tested it on Linux and the crash does not occur there.
Others have also tested it on Windows 10, and it does not seem to crash there either.
If anyone is interested in taking a look at this, let me know so I can share the project files privately.
Steps to reproduce
Open the included exported project(linked below) and run it, wait a bit for the crash to occur.
Reproduction binary.
Exported Project
The text was updated successfully, but these errors were encountered: