Skip to content
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

Editor crashes when you minimize it (Windows, GL Compatibility, old Intel chipset) #95068

Closed
eeheeheeh opened this issue Aug 2, 2024 · 44 comments · Fixed by #95526
Closed

Editor crashes when you minimize it (Windows, GL Compatibility, old Intel chipset) #95068

eeheeheeh opened this issue Aug 2, 2024 · 44 comments · Fixed by #95526

Comments

@eeheeheeh
Copy link

eeheeheeh commented Aug 2, 2024

Tested versions

Reproducible in Godot 4.3 rc-2

System information

Windows 10 - Godot 4.3 rc-2 - OpenGL3 (Compability)

Issue description

When I minimize godot when it is starting or with the debug open or with the editor open minimized, it crashes.

Steps to reproduce

Open a project in Godot 4.3 rc-2 and minimize it twice, there is a crash and Godot.exe does not respond

Minimal reproduction project (MRP)

2024-08-02.09-07-41.mp4
@AThousandShips
Copy link
Member

Can't replicate this on Windows 11, more details to replicate this are needed

@eeheeheeh
Copy link
Author

Those are all the details, the bug is very simple and I am reviewing the source code of that version to see if I find the error

@AThousandShips
Copy link
Member

AThousandShips commented Aug 2, 2024

Then this is likely hardware or driver related as I can't replicate this with your instructions (I tested both with Forward+ and Compatibility)

@eeheeheeh
Copy link
Author

No se puede replicar esto en Windows 11, se necesitan más detalles para replicarlo

It must also be because of my hardware since it does not support Vulkan, but I can find an explanation

@eeheeheeh
Copy link
Author

Entonces es probable que esto esté relacionado con el hardware o el controlador, ya que no puedo replicarlo con sus instrucciones.

My computer has a fourth generation Intel i5, it supports up to OpenGL 4.3 and does not support Vulkan. And it has 8GB of ram

@Alex2782
Copy link
Contributor

Alex2782 commented Aug 3, 2024

Try to start "cmd" first, then Godot, the terminal window should stay open with the crash message.

try also -v (Use verbose stdout mode.)
https://docs.godotengine.org/en/latest/tutorials/editor/command_line_tutorial.html

@Snowlette
Copy link

Snowlette commented Aug 7, 2024

Like original bug: Windows 10 - Godot 4.3 rc-2 - OpenGL3 (Compability)

Getting the same/similar problem, Godot_v4.3-rc2_mono_win64 crashes when minimised. Also randomly crashing without warning while I'm working in Visual Studio, possibly because it is put into background.. Both the main Godot window and command window are shut down without warning. This has not been a problem with previous versions of Godot. Looking in event viewer, I see two errors:

Faulting application name: Godot_v4.3-rc2_mono_win64.exe, version: 4.3.0.0, time stamp: 0x66aacc79
Faulting module name: ig8icd64.dll, version: 10.18.15.4279, time stamp: 0x55db7cda
Exception code: 0xc0000005
Fault offset: 0x00000000001b66f6
Faulting process ID: 0x2fc4
Faulting application start time: 0x01dae8b70fc051dd
Faulting application path: C:\Program Files\Godot4\Godot_v4.3-rc2_mono_win64.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ig8icd64.dll
Report ID: aa9d5586-e0b2-4ef9-8c29-cbdb6f67142e
Faulting package full name:
Faulting package-relative application ID:

AND:

Application: Godot_v4.3-rc2_mono_win64.exe
CoreCLR Version: 8.0.724.31311
.NET Version: 8.0.7
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0000005, exception address 00007FFD662C66F6
Stack:

ALSO: When verbose mode is switched on, the following messages are logged to the command window just before it is closed.

================================================================
CrashHandlerException: Program crashed with signal 11
Engine version: Godot Engine v4.3.rc2.mono.official (3978628c6cc1227250fc6ed45c8d854d24c30c30)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] error(-1): no debug info in PE/COFF executable
[2] error(-1): no debug info in PE/COFF executable
[3] error(-1): no debug info in PE/COFF executable
[4] error(-1): no debug info in PE/COFF executable
[5] error(-1): no debug info in PE/COFF executable
[6] error(-1): no debug info in PE/COFF executable
[7] error(-1): no debug info in PE/COFF executable
[8] error(-1): no debug info in PE/COFF executable
[9] error(-1): no debug info in PE/COFF executable
[10] error(-1): no debug info in PE/COFF executable
[11] error(-1): no debug info in PE/COFF executable
[12] error(-1): no debug info in PE/COFF executable
[13] error(-1): no debug info in PE/COFF executable
[14] error(-1): no debug info in PE/COFF executable
[15] error(-1): no debug info in PE/COFF executable
[16] error(-1): no debug info in PE/COFF executable
[17] error(-1): no debug info in PE/COFF executable
[18] error(-1): no debug info in PE/COFF executable
[19] error(-1): no debug info in PE/COFF executable
-- END OF BACKTRACE --
================================================================

Bugsquad edit: Fix formatting.

@Alex2782
Copy link
Contributor

Alex2782 commented Aug 7, 2024

  • Does Godot also crash with empty 2D projects? (if not, please upload a MRP)
  • What hardware do you have exactly?

No crash reproduced on a very old PC, perhaps over 12 years old.


Help -> Copy System Info

Godot v4.3.rc2 - Windows 10.0.19045 - GLES3 (Compatibility) - NVIDIA GeForce GT 730 (NVIDIA; 30.0.14.7298) - Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (8 Threads)

Bildschirmfoto 2024-08-07 um 14 22 06


After a project has been started, this information can also help with troubleshooting (API Version, and which GPU is prioritized)

Bildschirmfoto 2024-08-07 um 14 24 48

@Snowlette
Copy link

Created a new test project (Compatibility mode). Did nothing but minimise Godot and Godot crashed. Re-opened the empty test project, did nothing but minimise Godot and again it crashed.

Yes it is an old laptop, but this problem did not exist in 4.3_rc1 mono.

Godot v4.3.rc2.mono - Windows 10.0.19045 - GLES3 (Compatibility) - Intel(R) Iris(TM) Graphics 6100 (Intel Corporation; 10.18.15.4279) - Intel(R) Core(TM) i3-5157U CPU @ 2.50GHz (4 Threads)

@Snowlette
Copy link

Just went back and double checked Godot_v4.3-rc1_mono_win64 to be sure and it definitely does not crash.

@Snowlette
Copy link

Sorry, I missed the request for API version and GPU prioritisation:
OpenGL API 3.3.0 - Build 10.18.15.4279 - Compatibility - Using Device: Intel - Intel(R) Iris(TM) Graphics 6100

@ahopness
Copy link

ahopness commented Aug 10, 2024

crash.mp4

same issue here, the runtime, editor and proj. list all crash when minimized.

Godot v4.3.rc3 - Windows 10.0.19045 - GLES3 (Compatibility) - Intel(R) HD Graphics 405 - Intel(R) Pentium(R) CPU N3710 @ 1.60GHz (4 Threads)

error it printed out b4 closing

CrashHandlerException: Program crashed with signal 11
Engine version: Godot Engine v4.3.rc3.official (03afb92efa18874da19f7fc185a32c005d20aa1d)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] error(-1): no debug info in PE/COFF executable
[2] error(-1): no debug info in PE/COFF executable
[3] error(-1): no debug info in PE/COFF executable
[4] error(-1): no debug info in PE/COFF executable
[5] error(-1): no debug info in PE/COFF executable
[6] error(-1): no debug info in PE/COFF executable
[7] error(-1): no debug info in PE/COFF executable
[8] error(-1): no debug info in PE/COFF executable
[9] error(-1): no debug info in PE/COFF executable
[10] error(-1): no debug info in PE/COFF executable
[11] error(-1): no debug info in PE/COFF executable
[12] error(-1): no debug info in PE/COFF executable
[13] error(-1): no debug info in PE/COFF executable
[14] error(-1): no debug info in PE/COFF executable
[15] error(-1): no debug info in PE/COFF executable
[16] error(-1): no debug info in PE/COFF executable
[17] error(-1): no debug info in PE/COFF executable
[18] error(-1): no debug info in PE/COFF executable
[19] error(-1): no debug info in PE/COFF executable
-- END OF BACKTRACE --

@Alex2782
Copy link
Contributor

scons dev_build=yes to insert 'debug info' into the editor (I think)

https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_windows.html#doc-compiling-for-windows

@Alex2782
Copy link
Contributor

Alex2782 commented Aug 10, 2024

v4.3.rc.custom_build [88f3b5f9d]

download from Google Drive 47 MB, virus check on virustotal.com

I have created with Visual Studio 2022 tools it should include the debug information (dev_build=yes). Does it also crash and show more information?

@ahopness
Copy link

ahopness commented Aug 11, 2024

the backtrace w/ the debug build:

CrashHandlerException: Program crashed
Engine version: Godot Engine v4.3.rc.custom_build (88f3b5f9d52f740b24fabfb8bc01b8b7026ba279)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[0] <couldn't map PC to fn name>
[1] <couldn't map PC to fn name>
[2] <couldn't map PC to fn name>
[3] <couldn't map PC to fn name>
[4] <couldn't map PC to fn name>
[5] <couldn't map PC to fn name>
[6] <couldn't map PC to fn name>
[7] <couldn't map PC to fn name>
[8] <couldn't map PC to fn name>
[9] <couldn't map PC to fn name>
[10] <couldn't map PC to fn name>
[11] <couldn't map PC to fn name>
[12] <couldn't map PC to fn name>
[13] <couldn't map PC to fn name>
[14] <couldn't map PC to fn name>
[15] <couldn't map PC to fn name>
[16] <couldn't map PC to fn name>
[17] <couldn't map PC to fn name>
-- END OF BACKTRACE --

@Alex2782
Copy link
Contributor

New download please try again @ahopness now with pdb files (zipfile 162 MB).

image

@Snowlette
Copy link

Just downloaded v4.3.rc.custom_build and initial tests are promising. Creating a new test project and simply minimising Godot is fine (no crashing). Opening the same empty project, and simply minimising is fine. Created a basic empty Node2D screen and it runs with no issues.

Because my project uses the mono version, I can't really test it too much further. If you can provide a mono version, I will happily use that for a while.

Thanks for your efforts.

@ahopness
Copy link

took a while because i had to install WinDbg :p here's the error + call stack

(296c.1674): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
ig8icd64!DrvSetLayerPaletteEntries+0x1eb06:
00007ffc`2c9a29b6 8b4110          mov     eax,dword ptr [rcx+10h] ds:00000000`00000010=????????
0:000> k
 # Child-SP          RetAddr               Call Site
00 00000035`f7ffe430 00007ffc`2ca014af     ig8icd64!DrvSetLayerPaletteEntries+0x1eb06
01 00000035`f7ffe460 00007ffc`2c9aa5ee     ig8icd64!DrvSetLayerPaletteEntries+0x7d5ff
02 00000035`f7ffe6b0 00007ffc`2c8113b2     ig8icd64!DrvSetLayerPaletteEntries+0x2673e
03 00000035`f7ffe790 00007ff6`0cc0bf8a     ig8icd64!RegisterProcTableCallback+0xc2c2
04 00000035`f7ffe800 00007ff6`0cc0c998     godot_windows_editor_dev_x86_64!RasterizerGLES3::_blit_render_target_to_screen+0x4ea [D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp @ 418] 
05 00000035`f7ffe960 00007ff6`1049a665     godot_windows_editor_dev_x86_64!RasterizerGLES3::blit_render_targets_to_screen+0xe8 [D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp @ 437] 
06 00000035`f7ffe9e0 00007ff6`0fdc93ce     godot_windows_editor_dev_x86_64!RendererViewport::draw_viewports+0xef5 [D:\Develop\github-godot\servers\rendering\renderer_viewport.cpp @ 829] 
07 00000035`f7fff040 00007ff6`0fdca8d9     godot_windows_editor_dev_x86_64!RenderingServerDefault::_draw+0x1ae [D:\Develop\github-godot\servers\rendering\rendering_server_default.cpp @ 88] 
08 00000035`f7fff320 00007ff6`0b7cedc7     godot_windows_editor_dev_x86_64!RenderingServerDefault::draw+0x109 [D:\Develop\github-godot\servers\rendering\rendering_server_default.cpp @ 410] 
09 00000035`f7fff390 00007ff6`0b73b766     godot_windows_editor_dev_x86_64!Main::iteration+0x987 [D:\Develop\github-godot\main\main.cpp @ 4123] 
0a 00000035`f7fff750 00007ff6`0b732b2e     godot_windows_editor_dev_x86_64!OS_Windows::run+0x66 [D:\Develop\github-godot\platform\windows\os_windows.cpp @ 1666] 
0b 00000035`f7fff790 00007ff6`0b732c23     godot_windows_editor_dev_x86_64!widechar_main+0x1fe [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 180] 
0c 00000035`f7fffbc0 00007ff6`0b732c62     godot_windows_editor_dev_x86_64!_main+0x43 [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 206] 
0d 00000035`f7fffc00 00007ff6`0b7325fd     godot_windows_editor_dev_x86_64!main+0x12 [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 220] 
0e 00000035`f7fffc40 00007ff6`1149c936     godot_windows_editor_dev_x86_64!WinMain+0x2d [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 234] 
0f (Inline Function) --------`--------     godot_windows_editor_dev_x86_64!invoke_main+0x21 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 102] 
10 00000035`f7fffc70 00007ffc`59d77374     godot_windows_editor_dev_x86_64!__scrt_common_main_seh+0x106 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
11 00000035`f7fffcb0 00007ffc`5addcc91     KERNEL32!BaseThreadInitThunk+0x14
12 00000035`f7fffce0 00000000`00000000     ntdll!RtlUserThreadStart+0x21

@ahopness

This comment was marked as off-topic.

@Alex2782
Copy link
Contributor

Alex2782 commented Aug 11, 2024

ok 😃 my Dev path: D:\Develop\github-godot

@ahopness / @Snowlette Can you also reproduce the crash with Godot 4.2.1 (12 December 2023) or Godot 4.2 (30 November 2023)? --> https://godotengine.org/download/archive/

pdb files

I tried it and forced a crash. Unfortunately, delivering 'pdb' files in the same folder does not work.
Only inside: D:\Develop\github-godot\bin


 # Child-SP          RetAddr               Call Site
00 00000035`f7ffe430 00007ffc`2ca014af     ig8icd64!DrvSetLayerPaletteEntries+0x1eb06
01 00000035`f7ffe460 00007ffc`2c9aa5ee     ig8icd64!DrvSetLayerPaletteEntries+0x7d5ff
02 00000035`f7ffe6b0 00007ffc`2c8113b2     ig8icd64!DrvSetLayerPaletteEntries+0x2673e
03 00000035`f7ffe790 00007ff6`0cc0bf8a     ig8icd64!RegisterProcTableCallback+0xc2c2
04 00000035`f7ffe800 00007ff6`0cc0c998     godot_windows_editor_dev_x86_64!RasterizerGLES3::_blit_render_target_to_screen+0x4ea [D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp @ 418] 

glBlitFramebuffer(0, 0, rt->size.x, rt->size.y,

A few months ago, we added a workaround for Android with Adreno 3xx GPUs. Merged on Feb 22. PR #87352
Perhaps this change will have an impact on Intel GPUs

@ahopness
Copy link

ahopness commented Aug 11, 2024

The crash doesn't happen in the versions 4.2.1 and 4.2.2

about that pdb file:

the crash backtrace with the .pdb in the right directory spills the same stuff as the windbg callstack: CrashHandlerException: Program crashed Engine version: Godot Engine v4.3.rc.custom_build (88f3b5f9d52f740b24fabfb8bc01b8b7026ba279) Dumping the backtrace. Please include this when reporting the bug to the project developer. [0] [1] [2] [3] [4] [5] RasterizerGLES3::_blit_render_target_to_screen (D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp:418) [6] RasterizerGLES3::blit_render_targets_to_screen (D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp:437) [7] RendererViewport::draw_viewports (D:\Develop\github-godot\servers\rendering\renderer_viewport.cpp:829) [8] RenderingServerDefault::_draw (D:\Develop\github-godot\servers\rendering\rendering_server_default.cpp:88) [9] RenderingServerDefault::draw (D:\Develop\github-godot\servers\rendering\rendering_server_default.cpp:410) [10] Main::iteration (D:\Develop\github-godot\main\main.cpp:4123) [11] OS_Windows::run (D:\Develop\github-godot\platform\windows\os_windows.cpp:1666) [12] widechar_main (D:\Develop\github-godot\platform\windows\godot_windows.cpp:180) [13] _main (D:\Develop\github-godot\platform\windows\godot_windows.cpp:206) [14] main (D:\Develop\github-godot\platform\windows\godot_windows.cpp:220) [15] WinMain (D:\Develop\github-godot\platform\windows\godot_windows.cpp:234) [16] __scrt_common_main_seh (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288) [17] -- END OF BACKTRACE --
+ new windbg callstack: (2634.1cb0): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. ig8icd64!DrvSetLayerPaletteEntries+0x1eb06: 00007ffc`05f329b6 8b4110 mov eax,dword ptr [rcx+10h] ds:00000000`00000010=???????? 0:000> k # Child-SP RetAddr Call Site 00 0000006c`80ffe330 00007ffc`05f914af ig8icd64!DrvSetLayerPaletteEntries+0x1eb06 01 0000006c`80ffe360 00007ffc`05f3a5ee ig8icd64!DrvSetLayerPaletteEntries+0x7d5ff 02 0000006c`80ffe5b0 00007ffc`05da13b2 ig8icd64!DrvSetLayerPaletteEntries+0x2673e 03 0000006c`80ffe690 00007ff6`0cc0bf8a ig8icd64!RegisterProcTableCallback+0xc2c2 04 0000006c`80ffe700 00007ff6`0cc0c998 godot_windows_editor_dev_x86_64!RasterizerGLES3::_blit_render_target_to_screen+0x4ea [D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp @ 418] 05 0000006c`80ffe860 00007ff6`1049a665 godot_windows_editor_dev_x86_64!RasterizerGLES3::blit_render_targets_to_screen+0xe8 [D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp @ 437] 06 0000006c`80ffe8e0 00007ff6`0fdc93ce godot_windows_editor_dev_x86_64!RendererViewport::draw_viewports+0xef5 [D:\Develop\github-godot\servers\rendering\renderer_viewport.cpp @ 829] 07 0000006c`80ffef40 00007ff6`0fdca8d9 godot_windows_editor_dev_x86_64!RenderingServerDefault::_draw+0x1ae [D:\Develop\github-godot\servers\rendering\rendering_server_default.cpp @ 88] 08 0000006c`80fff220 00007ff6`0b7cedc7 godot_windows_editor_dev_x86_64!RenderingServerDefault::draw+0x109 [D:\Develop\github-godot\servers\rendering\rendering_server_default.cpp @ 410] 09 0000006c`80fff290 00007ff6`0b73b766 godot_windows_editor_dev_x86_64!Main::iteration+0x987 [D:\Develop\github-godot\main\main.cpp @ 4123] 0a 0000006c`80fff650 00007ff6`0b732b2e godot_windows_editor_dev_x86_64!OS_Windows::run+0x66 [D:\Develop\github-godot\platform\windows\os_windows.cpp @ 1666] 0b 0000006c`80fff690 00007ff6`0b732c23 godot_windows_editor_dev_x86_64!widechar_main+0x1fe [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 180] 0c 0000006c`80fffac0 00007ff6`0b732c62 godot_windows_editor_dev_x86_64!_main+0x43 [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 206] 0d 0000006c`80fffb00 00007ff6`0b7325fd godot_windows_editor_dev_x86_64!main+0x12 [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 220] 0e 0000006c`80fffb40 00007ff6`1149c936 godot_windows_editor_dev_x86_64!WinMain+0x2d [D:\Develop\github-godot\platform\windows\godot_windows.cpp @ 234] 0f (Inline Function) --------`-------- godot_windows_editor_dev_x86_64!invoke_main+0x21 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 102] 10 0000006c`80fffb70 00007ffc`59d77374 godot_windows_editor_dev_x86_64!__scrt_common_main_seh+0x106 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 11 0000006c`80fffbb0 00007ffc`5addcc91 KERNEL32!BaseThreadInitThunk+0x14 12 0000006c`80fffbe0 00000000`00000000 ntdll!RtlUserThreadStart+0x21

@Alex2782
Copy link
Contributor

Do you dare to perform bisecting?
https://docs.godotengine.org/en/latest/contributing/workflow/bisecting_regressions.html

I'm not sure if PR #87352 could have anything to do with it.
I have checked the parameter values that are passed to the function, the values do not change when the window is minimized. (on Windows 11)

@ahopness
Copy link

lol what a wierd litte bug...
gonna try to bisect it later today btw

@Snowlette
Copy link

I agree with @ahopness, neither 4.2 or 4.2.1 exhibited this crash, Godot has been very stable for a while now, however I did double check.

It is not possible to perform the test with a 'New' project, as the project.godot file must be manually edited to compatibility mode. That said, I could not get either version to crash when working with the edited project.

@akien-mga
Copy link
Member

akien-mga commented Aug 14, 2024

Just went back and double checked Godot_v4.3-rc1_mono_win64 to be sure and it definitely does not crash.

According to this the regression would have been introduced in 4.3.rc2, so one of these commits: https://godotengine.github.io/godot-interactive-changelog/#4.3-rc2

Can other affected users confirm that 4.3.rc1 doesn't reproduce the crash, but 4.3.rc2 and 4.3.rc3 do?

CC @bruvzg @alvinhochun @godotengine/rendering

@Snowlette
Copy link

Snowlette commented Aug 14, 2024

FYI, as you probably guessed, crash still occurs in Godot_v4.3-rc3_mono_win64.

Intel(R) Iris(TM) Graphics 6100
Driver version: 10.18.15.4279

This appears to be the latest driver compatible with this laptop. There does appear to be a later driver on the Intel website, but it is not compatible.

@akien-mga
Copy link
Member

Intel(R) Iris(TM) Graphics 6100 Driver version: 10.18.15.4279

This appears to be the latest driver compatible with this laptop. There does appear to be a later driver on the Intel website, but it is not compatible.

This driver is newer (2022) and should support Iris 6100: https://www.intel.com/content/www/us/en/download/18369/intel-graphics-driver-for-windows-15-40.html?wapkw=iris%206100

You might just need to force Windows to accept installing it, because your OEM might have locked it to only accept their own vendored and outdated Intel drivers. See https://www.intel.com/content/www/us/en/support/articles/000056629/graphics.html

@akien-mga
Copy link
Member

So if someone who can reproduce the issue can also compile Godot from source, the most useful extra info here for debugging would be to pinpoint which commit introduced the regression.

That might inform us on what may be triggering a bug in the Intel drivers, and maybe give some hints on how we could work it around.

Here's our guide on how to bisect regressions: https://docs.godotengine.org/en/latest/contributing/workflow/bisecting_regressions.html
And that implies knowing how to compile Godot for Windows: https://docs.godotengine.org/en/latest/contributing/development/compiling/compiling_for_windows.html

The bisection needs to be done between 4.3.rc1 (should be the good commit, e343dbb) and 4.3.rc2 (bad commit, 3978628).

@Snowlette
Copy link

OK so I've performed an initial attempt to install that version of the graphics driver (win64_15.40.5171) and I'm getting the following error:

The driver being installed is not validated for this computer. Please obtain the appropriate driver from the computer manufacturer. Setup will exit. Would you like more information? Click Yes to be directed to the Intel support website.

Clicking 'Yes' takes you to the following web site:

https://www.intel.com/content/www/us/en/support/articles/000005469/graphics.html

Which advises you to identify your Intel Processor and its Generation:

Processor: Intel(R) Core(TM) i3-5157U CPU @ 2.50GHz, 2494 Mhz, 2 Core(s), 4 Logical Processor(s)
Generation: 5th

Whilst for sixth generation and later, installation of a generic driver seems fine, for fifth generation processors and earlier, the web page gives the following caveat:

We advise you to always get the latest driver from your computer manufacturer. However, if your computer manufacturer no longer provides new drivers or you prefer to install a newer Intel generic driver, you can perform a clean installation of a generic Intel® Graphics Driver. Caution: Be aware that you risk system instability, losing functionality, or causing other technical issues that OEM drivers seek to resolve or enable.

Whilst I'll attempt to install the driver once I've done a full backup, advice to install generic drivers may may not be for the best for everyone.

@akien-mga
Copy link
Member

@Snowlette That's fair. I've used that procedure myself without issue in the past on Intel HD 4000 (3rd gen), but I can't guarantee that it works, so indeed - disclaimer, attempt that update at your own risk, as Intel disclaims themselves.

@Alex2782
Copy link
Contributor

Intel(R) Core(TM) i3-5157U CPU launched in January 2015

Does Angle driver have disadvantages? I have deactivated the graphics card on my old PC. Then Godot switches to Angle, the fallback list currently contains 66 devices. I could not reproduce any crashes.

Intel(R) Core(TM) i7-3770 CPU : launched in April 2012

Screenshot: Fallback to Angle

image

@akien-mga
Copy link
Member

Yeah that's a good point, we could consider enabling ANGLE by default on those known buggy drivers for old Intel gen.

@alvinhochun
Copy link
Contributor

alvinhochun commented Aug 14, 2024

 # Child-SP          RetAddr               Call Site
00 00000035`f7ffe430 00007ffc`2ca014af     ig8icd64!DrvSetLayerPaletteEntries+0x1eb06
01 00000035`f7ffe460 00007ffc`2c9aa5ee     ig8icd64!DrvSetLayerPaletteEntries+0x7d5ff
02 00000035`f7ffe6b0 00007ffc`2c8113b2     ig8icd64!DrvSetLayerPaletteEntries+0x2673e
03 00000035`f7ffe790 00007ff6`0cc0bf8a     ig8icd64!RegisterProcTableCallback+0xc2c2
04 00000035`f7ffe800 00007ff6`0cc0c998     godot_windows_editor_dev_x86_64!RasterizerGLES3::_blit_render_target_to_screen+0x4ea [D:\Develop\github-godot\drivers\gles3\rasterizer_gles3.cpp @ 418] 

glBlitFramebuffer(0, 0, rt->size.x, rt->size.y,

It may be interesting to see what's being passed to glBlitFramebuffer when it crashes, though I suspect that wouldn't really give any insight to the real issue.

According to this the regression would have been introduced in 4.3.rc2, so one of these commits: https://godotengine.github.io/godot-interactive-changelog/#4.3-rc2

I skimmed through the commit messages but didn't notice anything suspicious: Seems like a bisect will be needed to get to the bottom of it.

I don't have a usable Windows installation on my Haswell laptop (or is it Broadwell?), that may or may not even reproduce show the issue, so I don't think I will try to test it.

The Intel graphics driver version 4279 is really quite old though (2015?), and from my experience with Krita, Intel OpenGL drivers before and around that era can be quite broken in weird ways (for instance between versions 4636 and 4729 exclusive there was a bug with window client area sizing that plagued all Qt applications using OpenGL). I would suggest to force any Intel drivers older than a certain version to use ANGLE by default. Just be careful with parsing the build number correctly: https://www.intel.com/content/www/us/en/support/articles/000005654/graphics.html

@akien-mga
Copy link
Member

Since the 4.3 release is imminent, I think we shouldn't rush a solution, so let's take the time to evaluate the best approach (bisecting to identify the exact commit, testing some logic to enable ANGLE either for these GPU unconditionally or only for older drivers, etc.) and backport the fix to 4.3.x.

@akien-mga akien-mga modified the milestones: 4.3, 4.4 Aug 14, 2024
@Alex2782
Copy link
Contributor

@alvinhochun

It may be interesting to see what's being passed to glBlitFramebuffer when it crashes, though I suspect that wouldn't really give any insight to the real issue.

godot.windows.editor.dev.x86_64.debugout.zip 48 MB Download

++++++++++++++ glBlitFramebuffer +++++++++++++++
flip_xy_workaround:  false
flip_x: false flip_y:  true
rt->size.x: 1536 rt->size.y:  900
p_screen_rect.position.x | y:  0  |  0
screen_rect_end.x | y:  1536  |  900
------------------------------------------------

@akien-mga
Copy link
Member

Could affected users try that build from #95520 and see if it works properly?
https://github.com/godotengine/godot/actions/runs/10388351045/artifacts/1811483038

@ahopness
Copy link

just tested, working perfectly on my machine
my specs #95068 (comment)

@Snowlette
Copy link

Snowlette commented Aug 14, 2024

Bisect done between 4.3.rc1 (should be the good commit, e343dbb) and 4.3.rc2 (bad commit, 3978628).

Bisecting: 67 revisions left to test after this (roughly 6 steps)
[4f2d818] Merge pull request #94875 from Chaosus/vs_fix_expanded_port_updating -> BAD

Bisecting: 33 revisions left to test after this (roughly 5 steps)
[1322fd3] Merge pull request #94745 from anniryynanen/shortcut-input-too -> BAD

Bisecting: 16 revisions left to test after this (roughly 4 steps)
[b2facc0] Merge pull request #94730 from dalexeev/gds-fix-while-locals-clearing --> BAD

Bisecting: 6 revisions left to test after this (roughly 3 steps)
[6a1ac99] Merge pull request #94387 from mihe/fix-3d-selection-list --> GOOD

Bisecting: 3 revisions left to test after this (roughly 2 steps)
[13c6c0c] Merge pull request #94706 from alvinhochun/window-set-transient-parent-on-create --> BAD

Bisecting: 0 revisions left to test after this (roughly 1 step)
[24e02d5] Remove unneeded call in DisplayServerX11 --> BAD

Bisecting: 0 revisions left to test after this (roughly 0 steps)
[97aa278] Pass window exclusive and transient properties for subwindow creation --> BAD

@Snowlette
Copy link

Performed a very limited test on the build from #95520 and it does not crash when minimising Godot.

@alvinhochun
Copy link
Contributor

Bisecting: 0 revisions left to test after this (roughly 0 steps)
[97aa278] Pass window exclusive and transient properties for subwindow creation --> BAD

Thanks. I think I found a problem in the change, but I am not entirely sure if it is the cause. I'll try to make a PR in a bit.

@alvinhochun
Copy link
Contributor

Can anyone of you try with #95526?

@akien-mga
Copy link
Member

Can anyone of you try with #95526?

You can test with the CI build here: https://github.com/godotengine/godot/actions/runs/10394414706/artifacts/1813320527

@ahopness
Copy link

just tested on my pc, its working fine

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants