Posted by
Xerxes Rånby on
Sep 15, 2020; 8:50am
URL: https://forum.jogamp.org/JOGL-cannot-run-on-Intel-HD-Graphics-3000-tp4040802p4040813.html
https://github.com/pal1000/save-legacy-intel-graphicsThis repository is intended to be a catalog of fixes to get OpenGL working on Windows 10 in combination with the end of life intel GPUs.
JogAmp has not tested any of these fixes hence we do not know what fix work to enable a working OpenGL driver in combination with various unsupported intel GPU when using windows 10.
The save-legacy-intel-graphics repository mention that the non-windows-10-compatible intel OpenGL driver DLL is unloaded in case the application, java, is marked as windows 10 compatible.
The workarounds is to mark the "java" executable as not-windows-10-compatible in order for the old OpenGL driver to load.
Citation from the above inked page:
"Programs that advertise compatibility get current OS version when they ask for it, others get the old 6.3 format. When implementing this Microsoft forgot about dynamic link libraries or maybe was unable to do anything about them. There is no similar mechanism(s) for DLLs as far as I know, they always inherit Windows version received by the programs that loads them. As a result of this, things go south when a program advertising Windows 10 compatibility (java) loads a DLL that is not ready for current Windows 10 major version (the intel OpenGL driver). Anything can happen but most likely the DLL just unloads right away (Intel OpenGL driver refuses to load). Intel OpenGL driver for iGPU generations listed above is the perfect example and as a result it unloads immediately."
The reason the GPU-Z test tool work is because it is not marked as Windows 10 compatible.
Hence a solution is to use a java JRE that is not marked as windows 10 compatible. I do not know of any build of OpenJDK that is compiled in such a way that it is NOT marked as Windows 10 compatible.
The workaround is to instruct windows to treat the java executable as not windows 10 compatible by follow the tutorial mentioned earlier, it is important to specify the java executable when following the tutorial:
https://gist.github.com/rb-dahlb/26f316c5b6089807a139fc44ee69f0d1If the user have a working OpenGL driver setup then it will work with JogAmp JOGL as well.
This is the reason I asked for the JOGL debug log that is crucial to understand what drivers are detected:
http://forum.jogamp.org/JOGL-cannot-run-on-Intel-HD-Graphics-3000-tp4040802p4040807.htmlWhen windows 10 users are testing OpenGL inside a webbrowser such as chrome or edge then the webbrowser contains a compatibility layer called Angle
https://github.com/google/angleAngle allows the webbroser to use OpenGL ES by emulating it using Direct X
We have discussed inside the JogAmp project to build and ship Angle with JOGL as a fallback when the OpenGL driver is not working on Windows. This would require someone to sponsor the work.