Please can you help me with an OpenGL version configuration issue, when running a Java API that uses JavaFX / OpenGL. I’m a complete OpenGL newbie and have very little understanding of the underlying architecture.
I would otherwise post this in “programming”, but seeing as its an API I have no control over that’s rendering the graphics, its a configuration issue, not a coding issue, so I’m posting it here.
I’m trying to run the ArcGIS SDK For Java on Ubuntu. ArcGIS is an API that uses OpenGL to render 3D views of the earth (not dissimilar to Google Earth). I seem to be having OpenGL / GLSL issues getting the 2 to play nicely together.
When I try and execute my program, I get the error:
Java version : 1.8.0_151 (Oracle Corporation) amd64
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: Error code: 18
Error message: Internal error exception
Additional error message: star_draw,GL_VERTEX_SHADER:0:3(10): error: GLSL 1.50 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, 3.10 ES, and 3.20 ES
at com.esri.arcgisruntime.internal.mapping.view.RenderingContext.nativeDrawMap(Native Method)
Very simple main program:
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("SkylaCTL");
stage.setWidth(800);
stage.setHeight(400);
StackPane stackPane = new StackPane();
Scene scene = new Scene(stackPane);
ArcGISScene arcGISScene = new ArcGISScene();
arcGISScene.setBasemap(Basemap.createImagery());
sceneView = new SceneView();
sceneView.setArcGISScene(arcGISScene);
stackPane.getChildren().addAll(sceneView);
stage.setScene(scene);
stage.show();
}
I have no idea where to start with this. I’m hoping that the versions of supported OpenGL are not fixed, depending on the support my graphics card offers. Running glxinfo results in:
mark@marks-computer:~$ glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 4.5
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.4.0-devel
OpenGL core profile shading language version string: 4.50
OpenGL version string: 3.0 Mesa 17.4.0-devel
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 17.4.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
Running lspci | grep VGA, I get:
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)
Hoping to find a way around this.