Bug 1179 - Provide fallback OpenGL ES 2 & 3 implementation using lib ANGLE on Windows
Summary: Provide fallback OpenGL ES 2 & 3 implementation using lib ANGLE on Windows
Alias: None
Product: Jogl
Classification: JogAmp
Component: windows (show other bugs)
Version: tbd
Hardware: All all
: --- enhancement
Assignee: Sven Gothel
Depends on:
Reported: 2015-07-21 17:11 CEST by Xerxes Rånby
Modified: 2015-10-09 06:31 CEST (History)
1 user (show)

See Also:
SCM Refs:
Workaround: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Xerxes Rånby 2015-07-21 17:11:27 CEST
Microsoft ships windows with an old OpenGL 1.1 driver.

many web-browsers have started to depend on lib ANGLE to provide opengl es -> d3d in order to implement webgl.

JOGL may use lib ANGLE in order to provide a fallback for OpenGL ES 2 & 3 on Windows.

lib ANGLE sources is available from:

Microsoft has cloned the chromium angle opengl -> d3d project and tease Windows developers to use it for all their opengl es needs.

Comment 1 Sven Gothel 2015-07-28 14:41:15 CEST
Problem w/ ANGLE implementation as provided by many web browsers
(for example) is that it crashes w/ JOGL.
Hence it seems the provided ANGLE stuff is somewhat hacked
for browser purposes only.

A standalone test w/ ANGLE I once performed in 2013/2014?
was successful though.

However, b/c of above browser crash, we currently explicitly
avoid using ANGLE for ES profiles per default,
see GLProfile.enableANGLE 'jogl.enable.ANGLE'.

Providing a fallback ANGLE might solve the browser issue,
however - it also complicates initialization:
  - usually we prefer system-wide GLES libs
  - when to chose fallback ANGLE GLES?
Comment 2 Julien Gouesse 2015-08-07 12:04:07 CEST
The Microsoft fork of ANGLE uses VisualStudio, we would have to adapt the build scripts to our needs.

The existence of ANGLE mustn't discourage the GPU manufacturers to provide better OpenGL and OpenGL ES drivers, i.e a true OpenGL driver is still preferable.

In my humble opinion, as Sven reminded, the ANGLE native libraries provided by some web browsers can cause some crashes, I wouldn't use them. ANGLE causes a crash in TUER, I had to skip it to make it work on some old laptops under Windows XP 32-bit.

ANGLE should be loaded when there is only the Microsoft GDI renderer available or when there is no other solution to access to OpenGL under Windows.

Keep in mind that we should still find a solution to provide a feedback to the end user when there is no way to initialize JOGL as I suggested:

I should write another bug report for this enhancement.
Comment 3 Julien Gouesse 2015-08-13 15:14:56 CEST
Just as a reminder for Java3D users, I'm particularly reluctant to spend a lot of time in modifying Java3D to make it work with OpenGL ES 2.0 which would be necessary to benefit of ANGLE. The JOGL renderer of Java3D was written with the fixed pipeline in mind. JOGL is able to emulate the fixed pipeline in OpenGL ES 2 but such a big change goes beyond our plan, Java3D is actively maintained. It's already difficult to make something similar work in JogAmp's Ardor3D Continuation which has a "better" design, I don't imagine the headaches to do the same in Java3D.