
The issue pertains to MSYS2 adding a default manifest file (default-manifest.o) to the executable This fixes an OpenGL renderer issue for builds with MSYS2/Mingw64 or MSYS2/Mingw32 I'll investigate more tomorrow and keep you updated. As for JVM differences, what's interesting is the function Java_java_lang_ProcessEnvironment_environmentBlock which is only called in 8u60. It looks like that the Intel OpenGL driver tries to call D3DKMTOpenAdapterFromHdc, which probably fails, then it returns 0 to the OpenGL ICD. The 8u60 log ends with the DLL_PROCESS_ATTACH error. The logs, up to loading ig4icd64.dll and after removing all hex values for easier comparison: I then used Dependency Walker to profile the same LWJGL program running under Java8u51 and Javau60. This failed with ERROR_DLL_INIT_FAILED: A dynamic link library (DLL) initialization routine failed. In order to debug this, I changed the LoadLibrary("opengl32.dll") call (the ICD) to LoadLibrary("ig4icd64.dll") (the Intel driver). I went through the release notes and all changes that made it into the u60 release, but couldn't find anything relevant. So, there's something in Java 8u60 that the Intel driver doesn't like.


The latest LWJGL 2.9.4 nightly build behaves the same and so does LWJGL 3 (which uses GLFW for window/context creation). I'm certain that this is not an LWJGL bug. This works even with no monitor attached to the Nvidia GPU. Interestingly, when enabled with a secondary monitor attached to it, the ICD will again first try the Intel driver and when that fails it will load the Nvidia one successfully. The machine I'm testing on also has a discrete Nvidia GPU which I had disabled for the above. That driver works, but of course LWJGL fails with the infamous "Pixel format not accelerated" error.

That is the version minecraft "want" to use.
