godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.38k stars 21.26k forks source link

Simple GLES3 project can't run on android. #39886

Open MightyPrinny opened 4 years ago

MightyPrinny commented 4 years ago

Godot version: Godot 3.2.2 stable mono

OS/device including version: Android 6 arm64, Mali 450 Android 9 armv7 PowerVR GE8320

Issue description: On one device the MRP freezes and on the other one it freezes some times and some times the screen flashes and the app closes.

When the material on the mesh was simpler it worked on one device and on the other the game it still froze. I've also seen graphical glitches in 2D in another project.

I can't see any output with logcat.

Steps to reproduce: Run GLES3 project on android.

Minimal reproduction project: Gles3AndroidTest.zip

Zireael07 commented 4 years ago

There's a reason devs recommend using GLES2 for Android. Mali chipsets are especially bad with their GLES3 implementations.

MightyPrinny commented 4 years ago

This mali gpu sucks ass, it has terrible precision, but that's the one that was able to run the 3d scene when the material didn't have a detail texture, the device with android 9 and a powervr gpu didn't run that. I'm just reporting this because the engine doesn't warn you that GLES3 might be outright broken on android.

timothyparez commented 4 years ago

Getting similar results with PowerVR GPU's. For example on the Rockchip RK3368 with PowerVR SGX6110. Simply switched back to GLES2 and all was fine. Not sure this is something that can be fixed by Godot.

Calinou commented 4 years ago

I'm just reporting this because the engine doesn't warn you that GLES3 might be outright broken on android.

I'm not sure what would be the best way to handle this. We could have the Android export process print a warning message when exporting a project, but it will only be visible after exporting the project and may be missed by the user. On the other hand, if we add an export error, the user won't be able to export at all.

I guess we have to add a warning system to the Export dialog.