I've been having great success with Godot on Linux and Windows, but so far I haven't been able to get the graphics on any of my Android builds to work. I'm working in 3d with Godot 3.1 stable although I have tried a recent nightly of 3.2 development and had the same problem.
The issue is that even with a new project OpenGLES 2, creating a 3d box with no material, that works and shows up in my android emulator (I have android studio installed). However once I assign a default spatial material to an object with a simple albedo colour, the glsl shader no longer compiles, and the object no longer shows up. :neutral:
I know this from looking at the adb logcat output, It is something like this:
04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: ERROR: SceneShaderGLES2: Program linking failed: Error: uniform m_albedo specified with different precision in different shaders. 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: At: drivers/gles2/shader_gles2.cpp:129:display_error_with_code() - SceneShaderGLES2: Program linking failed: Error: uniform m_albedo specified with different precision in different shaders. 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: ERROR: Method/Function Failed, returning: null 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: At: drivers/gles2/shader_gles2.cpp:414:get_current_version() - Method/Function Failed, returning: null 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: ERROR: Condition ' !version ' is true. returned: false 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: At: drivers/gles2/shader_gles2.cpp:88:bind() - Condition ' !version ' is true. returned: false 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: ERROR: Condition ' !version ' is true. returned: -1 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: At: drivers/gles2/shader_gles2.h:254:get_uniform() - Condition ' !version ' is true. returned: -1 04-19 10:00:24.802 3153-3169/com.lawnjelly.minimalandroidtest E/godot: ERROR: Condition ' !version ' is true. returned: -1
This is on linux mint 18.2, Intel i5-7500T, Intel HD graphics 630 The android emulator is API 21, but same thing happened on later API and also on my Nexus 7 2012 tablet.
I know from experience different devices can be very finicky about shaders particularly precision, but this is even on the stock emulator. Should this be happening? Or is there a way around this? Is anyone using spatial materials in 3d successfully in GLES 2 on android?