godotengine / godot

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

GLES2 games crash after splash-screen on specific Android devices #26651

Closed MVPLades closed 5 years ago

MVPLades commented 5 years ago

Godot version:

Godot 3.1 Beta 10

OS/device including version:

Samsung "Galaxy S4" GT-I9505 Android 5.0.1 Exported on Ubuntu 18.04.1 LTS

Issue description:

Every 2D-game exported with GLES2 crashes on startup right after the splash-screen on my phone (specified above). The very same APK starts normally on other smartphones (tested on CLT-L29 Android 9 and SM-G800F Android 6.0.1). I'm not sure if the problem is related to the GT-I9505, the Android version or my phone specifically but I didn't notice any problems like that with other apps. When exported with GLES3 the game launches as expected!

Steps to reproduce:

1.) Create a new GLES2-Project 2.) Add and set main-scene 3.) Set export template and export for Android/One-Click-Deploy (with debug) 4.) Trying to launch app

Minimal reproduction project:

BugReport.zip Note: The exported APK is added to the project

Wallyzhuk commented 5 years ago

I have some problem on Bluboo xFire2 (Android 5.1), and Honor 5A play (Android 6.0). There was no such problem in the version beta 6.

akien-mga commented 5 years ago

There was no such problem in the version beta 6.

Could you try versions in between and see when it started failing?

akien-mga commented 5 years ago

And when it fails, could you get the relevant output from adb logcat? Search for your app identifier at the end of the logcat output and locate the messages starting with godot:.

MVPLades commented 5 years ago

This is the log created with adb logcat -v long godot:I GodotView:I WindowManager:I ActivityManager:I *:S during the crash. As godot:I has only 2 log entries ( Android modules: Nothing to load, aborting and OpenGL ES 2.0 Renderer: Adreno (TM) 320), I added some additional information.

[ 03-06 17:07:42.659   904: 2281 I/ActivityManager ]
START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=bug.report/org.godotengine.godot.Godot} from uid 10028 on display 0

[ 03-06 17:07:42.659   904: 2281 W/ActivityManager ]
mDVFSHelper.acquire()

[ 03-06 17:07:42.679   904: 2283 E/ActivityManager ]
checkUser: useridlist=null, currentuser=0

[ 03-06 17:07:42.679   904: 2283 E/ActivityManager ]
checkUser: useridlist=null, currentuser=0

[ 03-06 17:07:42.679   904: 2283 E/ActivityManager ]
checkUser: useridlist=null, currentuser=0

[ 03-06 17:07:42.679   904: 2283 E/ActivityManager ]
checkUser: useridlist=null, currentuser=0

[ 03-06 17:07:42.689   904: 2283 I/ActivityManager ]
Start proc bug.report for activity bug.report/org.godotengine.godot.Godot: pid=6348 uid=10309 gids={50309, 9997} abi=armeabi-v7a

[ 03-06 17:07:42.769   904:  919 I/ActivityManager ]
Config changes=480 {0 1.0 ?mcc?mnc en_GB ldltr sw360dp w640dp h335dp 480dpi nrml long land finger -keyb/v/h -nav/h s.150}

[ 03-06 17:07:43.050  6348: 6380 I/godot    ]
Android modules: Nothing to load, aborting

[ 03-06 17:07:43.150  6348: 6380 W/GodotView ]
creating OpenGL ES 2.0 context :

[ 03-06 17:07:43.190  6348: 6380 I/godot    ]
OpenGL ES 2.0 Renderer: Adreno (TM) 320

[ 03-06 17:07:43.240   904: 1028 I/ActivityManager ]
Displayed bug.report/org.godotengine.godot.Godot: +561ms

[ 03-06 17:07:43.240   904: 1028 W/ActivityManager ]
mDVFSHelper.release()

[ 03-06 17:07:43.370   904: 1028 I/WindowManager ]
Screen frozen for +648ms due to Window{2e4a3db6 u0 Starting bug.report}

[ 03-06 17:07:45.392   904: 2283 I/ActivityManager ]
Process bug.report (pid 6348)(adj 0) has died(51,567)

[ 03-06 17:07:45.422   904: 2283 W/ActivityManager ]
Force removing ActivityRecord{2c457cd5 u0 bug.report/org.godotengine.godot.Godot t1059}: app died, no saved state

[ 03-06 17:07:45.422   904: 1769 W/WindowManager ]
Force-removing child win Window{398d1c54 u0 SurfaceView} from container Window{107979af u0 bug.report/org.godotengine.godot.Godot}

[ 03-06 17:07:45.432   904: 2870 W/WindowManager ]
Failed looking up window
java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@132651bc does not exist
    at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:10471)
    at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:10462)
    at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1592)
    at android.os.BinderProxy.sendDeathNotice(Binder.java:551)

[ 03-06 17:07:45.442   904: 2283 W/ActivityManager ]
mDVFSHelper.acquire()

[ 03-06 17:07:45.482   904: 2283 I/ActivityManager ]
Config changes=480 {0 1.0 ?mcc?mnc en_GB ldltr sw360dp w360dp h615dp 480dpi nrml long port finger -keyb/v/h -nav/h s.151}

[ 03-06 17:07:45.732   904: 1028 W/ActivityManager ]
mDVFSHelper.release()

While exploring the unfiltered log, i noticed this error: [ 03-06 17:07:42.599 278: 278 E/SurfaceFlinger ] rejecting buffer: bufWidth=1920, bufHeight=1080, front.active.{w=1080, h=1920}

As SurfaceFlinger spams the log with FPS-counts, I excluded it from the log above, but I believe the message could be related.

Wallyzhuk commented 5 years ago

There was no such problem in the version beta 6.

Could you try versions in between and see when it started failing?

Form Beta 1 to Beta 6 - application worked, On Beta 7 application started, music is playing but nothing on screen (it's black). From Beta 8 to Beta 11 - application crashed after splash-screen.

akien-mga commented 5 years ago

Thanks for the tests @Wallyzhuk. It sounds pretty similar to #26500, hopefully it's the same bug and will be fixed at the same time.

akien-mga commented 5 years ago

26500 seems to have been fixed by 7141c73, could you both test if it fixes the issue for you on Android?

Here's a debug APK built from 7141c73 which you can use to test (zipped, you'll have to unzip it): android_debug.apk.zip

To use it, you'll need to compile the editor from the same commit for your platform. Then you can specify this APK as "Custom Debug Template" in the Android export preset for your project.

MVPLades commented 5 years ago

I tested beta6 and 7141c73, both crash with GLES2 and launch normally with GLES3. As a side note: If I forget to set the main-scene, the black-screen stays and the app doesn't crash.

akien-mga commented 5 years ago

@MVPLades Does it work if you remove default_env.tres?

MVPLades commented 5 years ago

Yes it does! After deleting default_env.tres the app seems to launch normally. (tested on 7141c73)

Wallyzhuk commented 5 years ago

26500 seems to have been fixed by 7141c73, could you both test if it fixes the issue for you on Android?

Here's a debug APK built from 7141c73 which you can use to test (zipped, you'll have to unzip it): android_debug.apk.zip

To use it, you'll need to compile the editor from the same commit for your platform. Then you can specify this APK as "Custom Debug Template" in the Android export preset for your project.

Amazing!!! My project started with this apk!

akien-mga commented 5 years ago

@MVPLades Alright, so it seems to a resurgence of #21551 affecting your specific drivers.

@Wallyzhuk Awesome! To confirm, does it work even with the default_env.tres?

Wallyzhuk commented 5 years ago

@Wallyzhuk Awesome! To confirm, does it work even with the default_env.tres?

Wow! After removing this file my project started without android_debug.apk.zip! I tested on Beta 10 and Beta 11. Thank you very mutch!


If this file enabled in project, it started only with android_debug.apk.zip.

akien-mga commented 5 years ago

Ok, so the issue is fully fixed (by 7141c73) for @Wallyzhuk but not yet for @MVPLades.

@MVPLades Could you open a new issue specific to GLES2 not working with the default Environment on your Samsung Galaxy S4? You might want to wait for 3.1 RC1 to be released within a few hours to re-test and confirm that the bug still happens there.

MVPLades commented 5 years ago

The app correctly launches on RC1, even with default_env.tres. It seems like my issue is fully fixed too! If any other problems occur, i will open a new issue. Thank you very much, my game-testing can continue now!

akien-mga commented 5 years ago

Awesome!

Fixed by 7141c73.