Godot 4.4beta3 crashes on Chrome OS' Linux subsystem (virgl driver)
Tested versions
Version : Godot_v4.4-beta3_linux.zip
System information
OpenGL API OpenGL ES 3.1 Mesa 24.3.4 (git-769e51468b) - Compatibility - Using Device: Mesa - virgl (Mali-G72) Chomebook OS 64 bits linux 8GB ram, Aarch
Issue description
Hello, can anyone help me please? Godot version 4.4 keeps crashing and has a lot of bugs, especially when I switch scenes or make changes like adding a light, removing shading mode, etc. It's really urgent that these bugs get fixed as soon as possible, I absolutely need to use version 4.4. It's a shame because version 4.3 worked perfectly without any issues. ("Godot_v4.4-beta3_linux.arm64.zip")
https://youtu.be/67M4bBi5-QE https://youtu.be/dsZ0TWvfImM https://youtu.be/gZvFhazP91k https://youtu.be/xicT9AL3jJU
Steps to reproduce
Minimal reproduction project (MRP)
Please provide more details, this crash log doesn't provide any useful information
I've been talking to @Friteabc on Discord about the crash. The only interesting bit I've found is that, in the first video, it appears to crash when enabling the "Environment Preview", and 2 others it crashes with it enabled on launch.
It's a bit disappointing though that the stack trace is only one element deep. This isn't very useful at all. The best way I could think of to track this down would be to produce a build that provides a better crash log, or run it in debug mode and breakpoint the CowData crash site.
Veuillez fournir plus de détails, ce journal de crash ne fournit aucune information utile
Okay I want to clarify that the bug can happen by doing several things, like changing scenes, adding a light etc. What kind of log did you want? because I tried lots of commands but I can't get more information from the crash logs it's very unbearable
Can you test earlier 4.4 dev and beta snapshots and pinpoint the first one that triggers these crashes reliably?
Running Godot on the Linux virtual subsystem on Chromebook is sadly bound to have problems, as it's using a virtual GPU (virgl) which isn't very powerful, might not be fully spec compliant and might crash when the VRAM requirements are too high.
I'll try to test on my Lenovo Chromebook too.
Pouvez-vous tester les snapshots de développement et de version bêta 4.4 antérieurs et identifier le premier qui déclenche ces plantages de manière fiable ?
L'exécution de Godot sur le sous-système virtuel Linux sur Chromebook est malheureusement vouée à poser des problèmes, car il utilise un GPU virtuel (virgl) qui n'est pas très puissant, peut ne pas être entièrement conforme aux spécifications et peut planter lorsque les exigences VRAM sont trop élevées.
Je vais essayer de tester sur mon Chromebook Lenovo aussi.
I think it's all versions 4.4, but the problem if it would be that why when I launch the game it works? and with versions 4.3 I never crash even using a lot of resources
Tested versions
Version : Godot_v4.4-beta3_linux.zip
System information
OpenGL API OpenGL ES 3.1 Mesa 24.3.4 (git-769e51468b) - Compatibility - Using Device: Mesa - virgl (Mali-G72) Chomebook OS 64 bits linux 8GB ram, Aarch
Issue description
Hello, can anyone help me please? Godot version 4.4 keeps crashing and has a lot of bugs, especially when I switch scenes or make changes like adding a light, removing shading mode, etc. It's really urgent that these bugs get fixed as soon as possible, I absolutely need to use version 4.4. It's a shame because version 4.3 worked perfectly without any issues. ("Godot_v4.4-beta3_linux.arm64.zip")
https://youtu.be/67M4bBi5-QE https://youtu.be/dsZ0TWvfImM https://youtu.be/gZvFhazP91k https://youtu.be/xicT9AL3jJU
Steps to reproduce
Minimal reproduction project (MRP)
by the way do you think the bug will be fixed quickly? because I have to use this version as soon as possible could you let me know when it will be fixed please?
There's no estimate for when or whether this bug will be fixed. As I mentioned above, the system you're trying to run Godot on is not officially supported, and while we do our best to make it work, it's not the main purpose of Godot to be run on Linux subsystems in Chromebooks with virtual drivers.
I suggest you stick to using Godot 4.3 if you urgently need a solution. Godot is provided "AS IS" with no guarantee of fitness for purpose.
For the record, here's what the Crostini Linux subsystem on my Chromebook tells me since recent updates:
NOTICE:
To provide a more stable graphical user experience in Crostini,
the GPU-based rendering driver (virgl) has been disabled by default
for existing and new environments in ChromeOS version 131 and newer.
OpenGL and OpenGLES applications will continue to function using a
CPU-based rendering driver (swrast).
If you would like to re-enable GPU-based rendering in an unsupported
capacity, you may visit: chrome://flags#crostini-gpu-support
in your Chrome browser and set the flag to "Enabled", then restart
your device.
So even Google confirms that virgl isn't providing a stable user experience, and they fallback to full software rendering with swrast/llvmpipe (which is super slow). This confirms that the Linux subsystem on Chromebook can't really be well supported by Godot.
Note that on a Chromebook you should be able to use the Android version of the editor, which might be more stable and have proper access to the Android Mali driver.
Pour mémoire, voici ce que le sous-système Crostini Linux sur mon Chromebook me dit depuis les récentes mises à jour :
NOTICE: To provide a more stable graphical user experience in Crostini, the GPU-based rendering driver (virgl) has been disabled by default for existing and new environments in ChromeOS version 131 and newer. OpenGL and OpenGLES applications will continue to function using a CPU-based rendering driver (swrast). If you would like to re-enable GPU-based rendering in an unsupported capacity, you may visit: chrome://flags#crostini-gpu-support in your Chrome browser and set the flag to "Enabled", then restart your device.Ainsi, même Google confirme que virgl ne fournit pas une expérience utilisateur stable, et ils se rabattent sur un rendu logiciel complet avec swrast/llvmpipe (qui est super lent). Cela confirme que le sous-système Linux sur Chromebook ne peut pas vraiment être bien pris en charge par Godot.
Notez que sur un Chromebook, vous devriez pouvoir utiliser la version Android de l'éditeur, qui pourrait être plus stable et avoir un accès approprié au pilote Android Mali.
Oh ok but the problem is the android version does not support mouse capture when launching the game
Oh ok but the problem is the android version does not support mouse capture when launching the game
Indeed I seem to reproduce this bug. It's likely a ChromeOS bug, but a bug report I found was closed as wontfix: https://www.reddit.com/r/chromeos/comments/aykuge/pointer_capture_not_working_for_android_apps_bug/
From a quick look Godot's code for mouse capture seems correct, it might be ChromeOS that's not properly supporting the Android methods used to capture/release pointer. Might warrant further investigation though @m4gr3d.
I see your log has:
OpenGL API OpenGL ES 3.1 Mesa 22.3.6 - Compatibility - Using Device: Mesa/X.org - virgl (Mali-G72)
But the original report mentions:
OpenGL API OpenGL ES 3.1 Mesa 24.3.4 (git-769e51468b) - Compatibility - Using Device: Mesa - virgl (Mali-G72) Chomebook OS 64 bits linux 8GB ram, Aarch
That's a different version of Mesa. Did you upgrade it between two tests? How did you upgrade it?
I also seem to have old Mesa 22.3.6 on my Chromebook.
It's also not clear from the logs whether your project is actually using OpenGL (Compatibiliy) or Vulkan (Forward Plus, Mobile). If using Vulkan, it's actually not using virgl but llvmpipe, which is a software rasterizer for Vulkan which is both extremely slow and (at least in old versions like Mesa 22.3.6) very buggy. On my system it crashes outright if I try to open a project like Kenney's FPS Starter Kit with Forward Plus.
Oh ok but the problem is the android version does not support mouse capture when launching the game
Indeed I seem to reproduce this bug. It's likely a ChromeOS bug, but a bug report I found was closed as wontfix: https://www.reddit.com/r/chromeos/comments/aykuge/pointer_capture_not_working_for_android_apps_bug/
From a quick look Godot's code for mouse capture seems correct, it might be ChromeOS that's not properly supporting the Android methods used to capture/release pointer. Might warrant further investigation though @m4gr3d.
I see your log has:
OpenGL API OpenGL ES 3.1 Mesa 22.3.6 - Compatibility - Using Device: Mesa/X.org - virgl (Mali-G72)
But the original report mentions:
OpenGL API OpenGL ES 3.1 Mesa 24.3.4 (git-769e51468b) - Compatibility - Using Device: Mesa - virgl (Mali-G72) Chomebook OS 64 bits linux 8GB ram, Aarch
That's a different version of Mesa. Did you upgrade it between two tests? How did you upgrade it?
I also seem to have old Mesa 22.3.6 on my Chromebook.
It's also not clear from the logs whether your project is actually using OpenGL (Compatibiliy) or Vulkan (Forward Plus, Mobile). If using Vulkan, it's actually not using virgl but llvmpipe, which is a software rasterizer for Vulkan which is both extremely slow and (at least in old versions like Mesa 22.3.6) very buggy. On my system it crashes outright if I try to open a project like Kenney's FPS Starter Kit with Forward Plus.
For mouse capture, should I reach out to ChromeOS/Google to have them fix the bug themselves? Regarding my tests, I haven’t updated anything, I haven’t changed anything, and I’m only using compatibility rendering, not Forward+ (which works in Godot 4.3 but crashes in Godot 4.4). This isn't really a problem for me since I'm only using compatibility rendering. However, why is my project crashing? Did you change anything like OpenGL or rendering? Because in version 4.3, there were no rendering issues; everything worked fine. Why is version 4.4 causing this bug when everything seems to work fine in 4.3? I hope this will be fixed in the stable version of Godot 4.4, or at least there will be a way to convert projects from Godot 4.4 to Godot 4.3 without errors in the scenes or scripts.
Oh ok but the problem is the android version does not support mouse capture when launching the game
Mouse capture on Android was implemented in 4.0 by https://github.com/godotengine/godot/pull/43249. However, there's a bug report about it: https://github.com/godotengine/godot/issues/86900
For mouse capture, should I reach out to ChromeOS/Google to have them fix the bug themselves?
We need to test a bit more to confirm whether the bug is on ChromeOS' side or in Godot, I'm not 100% sure.
For mouse capture, should I reach out to ChromeOS/Google to have them fix the bug themselves?
We need to test a bit more to confirm whether the bug is on ChromeOS' side or in Godot, I'm not 100% sure.
Any news since all the bugs etc of what I announced?
No, we're focused on release 4.4-stable and mouse mode not working on ChromeOS isn't a critical release blockers. There's a new issue that hints that it might also not work properly on Android in general: #103196. This will be looked at eventually but everybody working on Android support are volunteers, so it will happen when contributors have time for it.