Opened 11 months ago
Closed 11 months ago
#14769 closed defect (fixed)
Scummvm android fails on Nexus 7 2012
Reported by: | eingrossfilou | Owned by: | lephilousophe |
---|---|---|---|
Priority: | normal | Component: | Port: Android |
Version: | Keywords: | GLSL | |
Cc: | eingrossfilou | Game: |
Description
I try to run ScummVM 2.7.x and 2.8 on a Nexus 7 2012 grouper running AOSP 7.1 (20231212): https://xdaforums.com/t/rom-nzh54d-2023-12-05-asus-nexus-7-2012-wifi-3g-f2fs-ext4-android-7-x-aosp.3467514/
ScummVM crash silently when starting. The 2.6.1 version is the last version that runs successfully on this device.
I use adb logcat to get the error message. Look like ScummVM is unable to get the Tegra 3 GLSL version since version 2.7.
Is there a way to force detection? Tegra 3 GPU is GL ES 2.0 and if I look at GL ES compatibility matrix GL ES 2.0 implies GLSL ES 1.00 https://stackoverflow.com/questions/27407774/get-supported-glsl-versions#27410925
12-26 14:59:06.477 8041 8063 D ScummVM : initializing 2D surface 12-26 14:59:06.493 8041 8063 I ScummVM : Using EGL 1.4 Android META-EGL (Android); GL OpenGL ES 2.0 14.01003/NVIDIA Tegra 3 (NVIDIA Corporation) 12-26 14:59:07.046 8041 8063 W ScummVM : WARNING: Could not parse GLSL version 'OpenGL ES GLSL 1.00'! 12-26 14:59:07.047 8041 8063 W ScummVM : WARNING: Shader: createCompatShader(): Required GLSL version 100 is not supported (0 maximum)! 12-26 14:59:07.047 8041 8063 E ScummVM : Required GLSL version 100 is not supported (0 maximum)! 12-26 14:59:07.624 510 4771 D GraphicsStats: Buffer count: 4 12-26 14:59:07.624 510 4771 I WindowManager: WIN DEATH: Window{283be87 u0 org.scummvm.scummvm/org.scummvm.scummvm.ScummVMActivity} 12-26 14:59:07.625 510 4771 W WindowManager: Force-removing child win Window{5d3bc23 u0 SurfaceView - org.scummvm.scummvm/org.scummvm.scummvm.ScummVMActivity} from container Window{283be87 u0 org.scummvm.scummvm/org.scummvm.scummvm.ScummVMActivity} 12-26 14:59:07.629 510 3215 I ActivityManager: Process org.scummvm.scummvm (pid 8041) has died 12-26 14:59:07.629 510 3215 D ActivityManager: cleanUpApplicationRecord -- 8041 12-26 14:59:07.630 510 3215 W ActivityManager: Force removing ActivityRecord{7654197 u0 org.scummvm.scummvm/.ScummVMActivity t444}: app died, no saved state 12-26 14:59:07.631 510 2246 I powerHAL::common: dealing with POWER_HINT_VSYNC -> boosting CPU for 100ms 12-26 14:59:07.641 510 4771 I powerHAL::common: dealing with POWER_HINT_INTERACTION -> boosting CPU for 100ms 12-26 14:59:07.787 189 189 I Zygote : Process 8041 exited cleanly (1) 12-26 14:59:08.027 510 5489 W WindowManager: Failed looking up window 12-26 14:59:08.027 510 5489 W WindowManager: java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@6000152 does not exist 12-26 14:59:08.027 510 5489 W WindowManager: at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9444) 12-26 14:59:08.027 510 5489 W WindowManager: at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:9435) 12-26 14:59:08.027 510 5489 W WindowManager: at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1807) 12-26 14:59:08.027 510 5489 W WindowManager: at android.os.BinderProxy.sendDeathNotice(Binder.java:690) 12-26 14:59:08.028 510 5489 I WindowManager: WIN DEATH: null
Change History (7)
comment:1 by , 11 months ago
comment:2 by , 11 months ago
You assume wrongly.
I used this build https://downloads.scummvm.org/frs/scummvm/2.8.0/scummvm-2.8.0-android-arm-v7a.apk, published on 2023-12-23 12:52, with following sha256: 69c971e8af8b31754e4efb7beee2fe97d54494fcc6710a5adad5593f529cc605
comment:3 by , 11 months ago
I think I see the issue in the code, but I'm probably not the person to fix it.
We expect a certain format for the "GL_SHADING_LANGUAGE_VERSION" string that your case is not conforming to. I think it's probably because of it being very early (1.00).
So we expect something like:
"OpenGL ES GLSL ES 3.20"
But your device provides:
"OpenGL ES GLSL 1.00"
Note the missing extra "ES" after "GLSL".
We could add a fallback format for catching this case, but I don't think I have a device to test for it, so it would be sort of a blind fix.
Someone more familiar with the opengl context code would have to confirm/verify whether this is a proper solution or not.
comment:4 by , 11 months ago
If there is a git branch for fixing this issue, I can build it following https://wiki.scummvm.org/index.php?title=Compiling_ScummVM/Android and test it on the device
comment:5 by , 11 months ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → pending |
Thanks for the report.
I believe this is now fixed by 03a53b1a1ece130d379a81dff614793b8fbc6719 and ac60a35a38b331a1cdb0d3684c1df71a0db9b4b7.
The next daily packages (in 24h or so) available at https://buildbot.scummvm.org/#/dailybuilds will have the fix.
Else, you can build from branches master (unstable) or branch-2-8 (future 2.8.1 version as 2.8.0 is already tagged).
comment:6 by , 11 months ago
I get the branch-2-8 branch and build a debug build.
It works now. Many thanks!
Regards.
comment:7 by , 11 months ago
Status: | pending → closed |
---|
Could you please clarify what the 2.8.0 build you've tried was? Assuming it was a development build, what was the date (the build string after 2.8.0git would be helpful).