shader question

Johan Vos johan at lodgon.com
Thu Nov 27 21:13:32 UTC 2014


Hi,

I'm not sure this will ever work, but I started looking into JavaFX 3D on
Android.
This is the info from the GPU on my Nexus 5:
Graphics Vendor: Qualcomm
Renderer: Adreno (TM) 330
Version: OpenGL ES 3.0 V at 95.0 AU@  (GIT at I68fa98814b)

While that looks fine, running a simple JavaFX 3D sample crashes in the
render phase:
 java.lang.RuntimeException: Error creating shader program
     at com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:158)
     at com.sun.prism.es2.ES2PhongShader.getShader(ES2PhongShader.java:177)

I debugged the native code, and the native call to nCreateProgram in
native-prism-es2/GLContext.c fails in the line
ctxInfo->glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
(that is, success = GL_FALSE)

Good enough, the error messages are retrieved, and printed in the log:
Program link log: --From Vertex Shader:
Error: Symbol lights defined with different precision in vertex and
fragment shaders.
Error: Symbol lights defined with different precision in vertex and
fragment shaders.
 --From Fragment Shader:
Error: Symbol lights defined with different precision in vertex and
fragment shaders.
Error: Symbol lights defined with different precision in vertex and
fragment shaders.

Does anyone have an idea about this? Or is 3D on Android just over
ambitious?

Thanks,

- Johan


More information about the openjfx-dev mailing list