Open Ombarus opened 4 years ago
This is very concerning, it looks like the graphics driver is crashing during drawing. Can you provide more info about the mesh you create?
Also does this crash when you use similar nodes like Polygon2D?
I packaged the scene I use to generate the mesh in the array_geom_crash.zip (everything is in FoW.gd). I'm basically making a 80x80 square tilemap. Each tile is 128x128 pixel and for each square I assign UVs based on some data I pass to the method.
I haven't tried different nodes. Sadly it takes me 2-3 days to make a new build, upload it to testflight and have some people I know test it and report to me so I can't really say. I do know that updating to 3.2.3 and switching to gles3 seem to prevent the crash. I'm not sure if it's the update to 3.2.3 or gles3 that fixed it since I changed both at the same time. I've seen other iOS issues mentioning problem with gles2 so maybe it's related (https://github.com/godotengine/godot/issues/39764)
I did browse the issues and internet. I saw mentions of problem when accessing data from other threads which is why I tried to do the surface creation in a call_deferred but it didn't fix the crash.
Just to be clear, the crash is occurring with 3.2 stable GLES2? Have you tried 3.2.3 GLES2?
There have been a number of changes since 3.2. Notably there were some changes to reading back geometry on GLES2, which I have an inkling feeling may have been involved in the add_surface_from_arrays function historically.
See this PR : #34794
Edit: Ah maybe it's not that PR, it looks like it may have been committed just before 3.2 stable. Still worth trying a latest 3.2.3 build though.
Yes 3.2 stable and GLES2 crashes. 3.2.3 stable GLES3 doesn't crash. I have not tried GLES2 with 3.2.3.
Tested reproduction project in 3.2.3
with GLES2, which also results in crash.
2020-10-16 03:10:16.352563+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11)
2020-10-16 03:10:16.352646+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11)
2020-10-16 03:10:16.353679+0300 iOS_Touch[6366:2971248] GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=3 "Caused GPU Address Fault Error (IOAF code 11)" UserInfo={NSLocalizedDescription=Caused GPU Address Fault Error (IOAF code 11)}
2020-10-16 03:10:16.353734+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11)
2020-10-16 03:10:16.353759+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11)
2020-10-16 03:10:16.353808+0300 iOS_Touch[6366:2971248] GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=3 "Caused GPU Address Fault Error (IOAF code 11)" UserInfo={NSLocalizedDescription=Caused GPU Address Fault Error (IOAF code 11)}
2020-10-16 03:10:16.390961+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4)
2020-10-16 03:10:16.391015+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4)
2020-10-16 03:10:16.391039+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4)
2020-10-16 03:10:16.391059+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4)
2020-10-16 03:10:16.391110+0300 iOS_Touch[6366:2971248] GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=4 "Ignored (for causing prior/excessive GPU errors) (IOAF code 4)" UserInfo={NSLocalizedDescription=Ignored (for causing prior/excessive GPU errors) (IOAF code 4)}
2020-10-16 03:10:16.391533+0300 iOS_Touch[6366:2971041] Terminating due to blacklisting by kernel driver
Also seeing this crash on 3.2.3 GLES2
Tested reproduction project in
3.2.3
with GLES2, which also results in crash.2020-10-16 03:10:16.352563+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11) 2020-10-16 03:10:16.352646+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11) 2020-10-16 03:10:16.353679+0300 iOS_Touch[6366:2971248] GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=3 "Caused GPU Address Fault Error (IOAF code 11)" UserInfo={NSLocalizedDescription=Caused GPU Address Fault Error (IOAF code 11)} 2020-10-16 03:10:16.353734+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11) 2020-10-16 03:10:16.353759+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Caused GPU Address Fault Error (IOAF code 11) 2020-10-16 03:10:16.353808+0300 iOS_Touch[6366:2971248] GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=3 "Caused GPU Address Fault Error (IOAF code 11)" UserInfo={NSLocalizedDescription=Caused GPU Address Fault Error (IOAF code 11)} 2020-10-16 03:10:16.390961+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4) 2020-10-16 03:10:16.391015+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4) 2020-10-16 03:10:16.391039+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4) 2020-10-16 03:10:16.391059+0300 iOS_Touch[6366:2971248] Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (IOAF code 4) 2020-10-16 03:10:16.391110+0300 iOS_Touch[6366:2971248] GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=4 "Ignored (for causing prior/excessive GPU errors) (IOAF code 4)" UserInfo={NSLocalizedDescription=Ignored (for causing prior/excessive GPU errors) (IOAF code 4)} 2020-10-16 03:10:16.391533+0300 iOS_Touch[6366:2971041] Terminating due to blacklisting by kernel driver
I have also run into this issue "GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=3 "Caused GPU Address Fault Error (IOAF code 11)" in my iOS app, but switching to GLES3 doesn't fix it.
Some advice?
I am also running into this now and I am not even using anything fancy. just some static meshes in the scene (Godot 3.2.3)
Godot version: 3.2
OS/device including version: iPhone X with iOS 13.5.1 and 14.0.1 with GLES2
The crash doesn't happen with 3.2.3 running on GLES3
Issue description: I generate an ArrayMesh to set the mesh in an MeshInstance2D.
This work without any problem on Windows, Linux and even running directly in the editor on MacOS but the iOS build is crashing with this log :
Steps to reproduce: Run the sample project on any iPhone and click the "crash?" button.
I have very limited access to Apple Hardware so I haven't been able to debug it much more than this. I sent a test project to a friend with an iPhone and it seems to have the same crash problem so I've attached the minimal reproduction project.
the scene actually generating the crash is FoW.tscn and it crashes as soon as it's loaded.
Minimal reproduction project: array_geom_crash.zip