Sign in to follow this  
Followers 0
bog_dan_ro

Can I help with Android port?

69 posts in this topic

The crash happens because your devices don't have glMapBufferOES extensions needed by 16241 changeset (on my Nexus 10 I don't have that problem, but I've seen it on my ASUS Padfone Infinity). Anyway tonight I'm going to try revert that path locally to see if I can make it work without glMapBufferOES, if it works I'll publish a new version tonight.

I think Philip needs to check if there is a better way to fix the problem.

1 person likes this

Share this post


Link to post
Share on other sites

Here is my logcat.

[...]

E/libEGL (11890): called unimplemented OpenGL ES API

--------- beginning of crash

F/libc (11890): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xefdcbd55 in tid 11937 (SDLThread)

I/libc (11890): Suppressing debuggerd output because prctl(PR_GET_DUMPABLE)==0

[...]

Thanks!

Sadly, I was right, your device doesn't have glMapBufferOES :(.

1 person likes this

Share this post


Link to post
Share on other sites

Still doesn't work for me. The icon glows and then nothing. If I press it enough, it will change to landscape really quick and then change back. I found a logcat file, but it was mostly unreadable do to the encoding? I did see an error in the 0ad logs though relating to GUI pages:

0 A.D. Main log

Cannot find config file "config/default.cfg" - ignoring

Cannot find config file "config/local.cfg" - ignoring

Loading config file "config/user.cfg"

Loaded config string "userreport.id" = "cdafbaaf94426422"

ERROR: CVFSFile: file hwdetect/hwdetect.js couldn't be opened (vfs_load: -110100)

ERROR: Failed to load hardware detection script

ERROR: CVFSFile: file shaders/program.rng couldn't be opened (vfs_load: -110100)

ERROR: Failed to read grammar shaders/program.rng

CRenderer::Open: depth bits 24

CRenderer::Open: stencil bits 8

CRenderer::Open: alpha bits 0

ERROR: Failed to open font file fonts/mono-10.fnt

ERROR: Failed to open font file fonts/sans-10.fnt

ERROR: CCacheLoader failed to find archived or source file for: "gui/page_pregame.xml"

ERROR: Failed to open font file fonts/mono-stroke-10.fnt

ERROR: CCacheLoader failed to find archived or source file for: "shaders/effects/gui_text.xml"

ERROR: Failed to load effect 'gui_text'

0 A.D. Main log (warnings and errors only)

ERROR: CVFSFile: file hwdetect/hwdetect.js couldn't be opened (vfs_load: -110100)

ERROR: Failed to load hardware detection script

ERROR: CVFSFile: file shaders/program.rng couldn't be opened (vfs_load: -110100)

ERROR: Failed to read grammar shaders/program.rng

ERROR: Failed to open font file fonts/mono-10.fnt

ERROR: Failed to open font file fonts/sans-10.fnt

ERROR: CCacheLoader failed to find archived or source file for: "gui/page_pregame.xml"

ERROR: Failed to open font file fonts/mono-stroke-10.fnt

ERROR: CCacheLoader failed to find archived or source file for: "shaders/effects/gui_text.xml"

ERROR: Failed to load effect 'gui_text'

Share this post


Link to post
Share on other sites

Still doesn't work for me. The icon glows and then nothing. If I press it enough, it will change to landscape really quick and then change back. I found a logcat file, but it was mostly unreadable do to the encoding? I did see an error in the 0ad logs though relating to GUI pages:

0 A.D. Main log

Cannot find config file "config/default.cfg" - ignoring

Cannot find config file "config/local.cfg" - ignoring

[...]

ERROR: CCacheLoader failed to find archived or source file for: "shaders/effects/gui_text.xml"

ERROR: Failed to load effect 'gui_text'

[...]

It seems you don't use the latest version. Please make sure you are installing *0.4 alpha* version not 0.3 !

Share this post


Link to post
Share on other sites

How can I verify that? I noticed that there was an update so I installed it, but it seemed to be a very small update because it didn't take long. When I visit the page, it just says "open" not update, I didn't see any mention of the version on the page.

Hmm, the page Google Play page says updated on March 8. So maybe it's old?

Edited by WhiteTreePaladin

Share this post


Link to post
Share on other sites

Open configuration panel -> App -> 0 A.D.: it will says the installed version.

Share this post


Link to post
Share on other sites

It says "version alpha 0.4"

I cleared data app data in the settings, but it didn't do anytihng.

Share this post


Link to post
Share on other sites

If you've update it, the you should have the last one. Don't forget that if your card doesn't have OES_mapbuffer extension the application will crash just before you'll start the game! You can use this application to check if your graphics card has it.

Edited by bog_dan_ro

Share this post


Link to post
Share on other sites

You can try to reinstall it (uninstall the install again).

It should work on Nexus 10.

Edited by bog_dan_ro

Share this post


Link to post
Share on other sites

Only the latter has OpenGL ES 3.0 and is able to run 0 A.D..

What changed, wasn't GLES 2.0 enough previously? (It ran on a Raspberry Pi which I thought was GLES 2.0)

Share this post


Link to post
Share on other sites

Using that app, it doesn't appear that my nexus 7 (2013) has OES_mapbuffer. So I guess 0AD can't run on any nexus 7? It running Android 5.0.2.

Share this post


Link to post
Share on other sites

bog_dan_to added etc2 texture compression, it requires GL ES 3.0, it's available on nexus 7 2013 but not on 2012. I suppose eventually GL ES 2.0 + etc2 should be enough (supposing there is hardware doing it), but GL ES 2.0 chipset are probably too slow to run 0ad (according to bog_dan_do it's slow on GL ES 3.0 chipset also).

Share this post


Link to post
Share on other sites

What changed, wasn't GLES 2.0 enough previously? (It ran on a Raspberry Pi which I thought was GLES 2.0)

As fabio said, I had to add ETC2 texture compression, because 0 A.D.s uncompressed textures are way too big and they don't fit in memory (my devices have 2gb of ram). GLES 3 is mandatory only for Android (because ETC2 is mandatory in GLES3), but if you use Android you can still use GLES2. Actually if you are using KTX (check my repo, ktx branch) instead of DDS you can compress the textures using any compression your device supports. You just need to provide a simple script that compress the textures and put them in a KTX container. The beauty of using KTX is that the KTX header contains everything the engine needs to use textures, so you don't need to change a single line in the engine ;).

Using that app, it doesn't appear that my nexus 7 (2013) has OES_mapbuffer. So I guess 0AD can't run on any nexus 7? It running Android 5.0.2.

It can, but somebody needs to find a workaround for OES_mapbuffer

I hope after alpha 18 will be shipped, developers will have more time to focus on GLES/Android.

Edited by bog_dan_ro
1 person likes this

Share this post


Link to post
Share on other sites

GL ES 2.0 chipset are probably too slow to run 0ad (according to bog_dan_do it's slow on GL ES 3.0 chipset also).

I don't know if that's a limitation of those devices, or that 0 A.D.'s performance problems affecting all platforms are simply more noticeable. Of course it's not optimized for Android mobile devices and never will be, but there are things to do which will help (reduce memory usage, add quality settings for lower end hardware).

I hope after alpha 18 will be shipped, developers will have more time to focus on GLES/Android.

This is quite unlikely and IMO wouldn't be a good use of our time. There are just too many higher priority things to work on.
1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0