Hey Jasper, Richard,
We're doing making a JavaFX prototype on ARM together with the University of Antwerp and are running into a technical problem. Would you or any of your colleagues have any idea what's going wrong her? Or any pointers who could help us with this question?
Thanks in advance,
Stephan
-----------------------------------------------------------------------------------------
As discussed earlier today i hereby send you the details of the issue we are having running a JavaFX application on a ARM board running Linux. We are using JDK8 Build b119.
The specific board we are using is this one:
https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO-4GB/open-source-hardware
We want to run the application directly on the framebuffer using OpenGL ES2.0, not using X.
The board is using a Mali GPU and we are using this driver: https://github.com/linux-sunxi/sunxi-mali
We verified the GPU and drivers are working, by compiling and running a test program included with the driver ( https://github.com/linux-sunxi/sunxi-mali/blob/master/test/test.c),
which uses libEGL directly.
When running the JavaFX application using eglb we get a EGL_BAD_NATIVE_WINDOW error when executing eglCreateWindowSurface().
The test program of the driver uses the same call though.
I assume JavaFX uses libEGL as well behind the scenes?
I think this code is not opensource though, so i could not see how it uses libEGL to debug this further.
We are not sure how to continue with this, so any hints are very much appreciated.
Below you can find the output when running the application.
root@A20:~/Downloads/jdk1.8.0/bin# JAVAFX_DEBUG=1 ./java -Djavafx.platform=eglfb -Dprism.verbose=true -jar ~/JavaFXApp.jar
Prism pipeline init order: es2
Using platform text rasterizer
Using native-based Pisces rasterizer
Using dirty region optimizations
Using system sized mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2_eglfb
succeeded.
GLFactory using com.sun.prism.es2.EGLFBGLFactory
eglCreateWindowSurface failed! eglGetError 12299
eglMakeCurrent failed - 12297
Failed to create EGLContext(X) Got class = class com.sun.prism.es2.ES2Pipeline
GraphicsPipeline.createPipeline: error initializing pipeline com.sun.prism.es2.ES2Pipeline
Graphics Device initialization failed for : es2
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:300)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:179)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:210)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:300)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:98)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:128)
at java.lang.Thread.run(Thread.java:744)
Exception while launching application
We're doing making a JavaFX prototype on ARM together with the University of Antwerp and are running into a technical problem. Would you or any of your colleagues have any idea what's going wrong her? Or any pointers who could help us with this question?
Thanks in advance,
Stephan
-----------------------------------------------------------------------------------------
As discussed earlier today i hereby send you the details of the issue we are having running a JavaFX application on a ARM board running Linux. We are using JDK8 Build b119.
The specific board we are using is this one:
https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO-4GB/open-source-hardware
We want to run the application directly on the framebuffer using OpenGL ES2.0, not using X.
The board is using a Mali GPU and we are using this driver: https://github.com/linux-sunxi/sunxi-mali
We verified the GPU and drivers are working, by compiling and running a test program included with the driver ( https://github.com/linux-sunxi/sunxi-mali/blob/master/test/test.c),
which uses libEGL directly.
When running the JavaFX application using eglb we get a EGL_BAD_NATIVE_WINDOW error when executing eglCreateWindowSurface().
The test program of the driver uses the same call though.
I assume JavaFX uses libEGL as well behind the scenes?
I think this code is not opensource though, so i could not see how it uses libEGL to debug this further.
We are not sure how to continue with this, so any hints are very much appreciated.
Below you can find the output when running the application.
root@A20:~/Downloads/jdk1.8.0/bin# JAVAFX_DEBUG=1 ./java -Djavafx.platform=eglfb -Dprism.verbose=true -jar ~/JavaFXApp.jar
Prism pipeline init order: es2
Using platform text rasterizer
Using native-based Pisces rasterizer
Using dirty region optimizations
Using system sized mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2_eglfb
succeeded.
GLFactory using com.sun.prism.es2.EGLFBGLFactory
eglCreateWindowSurface failed! eglGetError 12299
eglMakeCurrent failed - 12297
Failed to create EGLContext(X) Got class = class com.sun.prism.es2.ES2Pipeline
GraphicsPipeline.createPipeline: error initializing pipeline com.sun.prism.es2.ES2Pipeline
Graphics Device initialization failed for : es2
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:300)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:179)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:210)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:300)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:98)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:128)
at java.lang.Thread.run(Thread.java:744)
Exception while launching application
- relates to
-
JDK-8087552 [EGLFB] JavaFX does not work on CubieBoard
-
- Closed
-