Actually, several years ago (maybe 3), I decided not to commit a small part of my fix because I found it dirty but it has become necessary.
You have to replace in GLProfile.java:
} else if(GL2 == profile && hasAnyGL234Impl && ( desktopCtxUndef || GLContext.isGL2Available(device, isHardwareRasterizer))) {
return desktopCtxUndef ? GL2 : GLContext.getAvailableGLProfileName(device, 2, GLContext.CTX_PROFILE_COMPAT);
by:
} else if(GL2 == profile && hasAnyGL234Impl && ( desktopCtxUndef || GLContext.isGL2Available(device, isHardwareRasterizer))) {
return desktopCtxUndef || (GL3bc == GLContext.getAvailableGLProfileName(device, 2, GLContext.CTX_PROFILE_COMPAT) && !GLContext.isGL3bcAvailable(device, isHardwareRasterizer)) ? GL2 : GLContext.getAvailableGLProfileName(device, 2, GLContext.CTX_PROFILE_COMPAT);
Martin, please can you provide a build with this fix?