aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorphil <[email protected]>2016-11-01 12:11:56 +1300
committerphil <[email protected]>2016-11-01 12:11:56 +1300
commit706ba43dbfd528fea7a1bc1eeafdacfee39899a5 (patch)
tree7a2387474001e53be900ecaa0445feb758ed4e99 /src/main/java
parent0c363e3cbeb216713e586968e3d6b5132b25e4ae (diff)
Bug 1333 - Warning notice in cases where Jogl bug 1278 is in effect
The pipeline inspect the environment, and issue solutions for noddraw and the HD2000/3000 driver. Though they are simple System.err so not a real solution.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java43
-rw-r--r--src/main/java/org/jogamp/java3d/JoglPipeline.java40
2 files changed, 79 insertions, 4 deletions
diff --git a/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java b/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java
index f39d5e6..b105cdc 100644
--- a/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java
+++ b/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java
@@ -59,6 +59,7 @@ import org.jogamp.vecmath.SingularMatrixException;
import org.jogamp.vecmath.Vector4f;
import com.jogamp.common.nio.Buffers;
+import com.jogamp.common.os.Platform;
import com.jogamp.nativewindow.AbstractGraphicsDevice;
import com.jogamp.nativewindow.AbstractGraphicsScreen;
import com.jogamp.nativewindow.CapabilitiesChooser;
@@ -5152,10 +5153,6 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline
joglesctx.renderingData.alphaTestValue = 0;
joglesctx.renderingData.ignoreVertexColors = false;
- // RAISE_BUG: yep only called on a null RenderingAttributes
- // FIXME: this call does not set stencil test, so possibly this is why the rendering attributes
- // caused such a mess when not present??
-
if (joglesctx.gl_state.glEnableGL_STENCIL_TEST == true)
{
gl.glDisable(GL2ES2.GL_STENCIL_TEST);
@@ -6932,6 +6929,44 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline
if (major < 1 || (major == 1 && minor < 2))
{
+ // In some double createNewContext uses or getPerferredConfiguration called before a Frame is constructed
+ // the disabling of D3D can cause this issue
+ // see Bug 1201 - Crash with option "sun.java2d.d3d=false"
+ // https://jogamp.org/bugzilla/show_bug.cgi?id=1201
+
+ // In the case of Java > 1.8u51 Win10 and an Intel HD2000/3000 driver, the driver will not load because
+ // the java.exe manifest has a "supportedOS Id" that the drivers don't like (the drivers are too old)
+ // see Bug 1278 - Windows 10 returns software Profile
+ // https://jogamp.org/bugzilla/show_bug.cgi?id=1278
+ // So we will detect Win10/Oracle Jre u > 51 and offer advice to down grade jre
+
+ if (glVendor.equalsIgnoreCase("Microsoft Corporation") && //
+ glRenderer.equalsIgnoreCase("GDI Generic") && //
+ glVersion.equalsIgnoreCase("1.1.0"))
+ {
+ System.err.println("Java3D - GDI Generic Driver use detected.");
+ System.err.println("This may be caused by any of the following issues.");
+
+ if (System.getProperty("sun.java2d.noddraw", "false").equals("true") || System.getProperty("sun.java2d.d3d", "true").equals("false"))
+ {
+ System.err.println("Issue: Use of System.setProperty(\"sun.java2d.noddraw\", \"true\");");
+ System.err.println("or System.setProperty(\"sun.java2d.d3d\", \"false\");");
+ System.err.println("If either of these are being used please try reversing or removing them.");
+ }
+
+ if (Platform.getOSName().equalsIgnoreCase("Windows 10") && //win10
+ (Platform.JAVA_VERSION_NUMBER.compareTo(Platform.Version19) >= 0) || // 1.9 or 1.8 > 51
+ (Platform.JAVA_VERSION_NUMBER.compareTo(Platform.Version18) >= 0 && Platform.JAVA_VERSION_UPDATE > 51) && //
+ Platform.getJavaVMName().toLowerCase().startsWith("java hotspot(tm)"))// e.g. Java HotSpot(TM) 64-Bit Server VM ; OpenJDK would give OpenJDK 64-Bit Server VM
+ {
+ System.err.println("Issue: The use of an Intel HD2000/3000 driver in combination with Windows 10 and");
+ System.err.println("a JRE greater than 1.8 update 51. Please downgrade the JRE in use to JRE 1.8u51 or lower.");
+ System.err.println("For more information please see https://jogamp.org/bugzilla/show_bug.cgi?id=1278.");
+ }
+ System.err.println("If this software has been supplied to you and you are unable to modify it's configuration");
+ System.err.println("please contact the suppler of this software with this entire message.");
+ }
+
throw new IllegalRenderingStateException(
"Java 3D ERROR : OpenGL 1.2 or better is required (GL_VERSION=" + major + "." + minor + ")");
}
diff --git a/src/main/java/org/jogamp/java3d/JoglPipeline.java b/src/main/java/org/jogamp/java3d/JoglPipeline.java
index d9cd032..29e9164 100644
--- a/src/main/java/org/jogamp/java3d/JoglPipeline.java
+++ b/src/main/java/org/jogamp/java3d/JoglPipeline.java
@@ -78,6 +78,7 @@ import com.jogamp.opengl.GLProfile;
import com.jogamp.opengl.Threading;
import com.jogamp.common.nio.Buffers;
+import com.jogamp.common.os.Platform;
import com.jogamp.nativewindow.awt.AWTGraphicsConfiguration;
import com.jogamp.nativewindow.awt.AWTGraphicsDevice;
import com.jogamp.nativewindow.awt.AWTGraphicsScreen;
@@ -8091,6 +8092,45 @@ static boolean hasFBObjectSizeChanged(JoglDrawable jdraw, int width, int height)
// and cube map textures.
if (major < 1 || (major == 1 && minor < 2)) {
+
+ // In some double createNewContext uses or getPerferredConfiguration called before a Frame is constructed
+ // the disabling of D3D can cause this issue
+ // see Bug 1201 - Crash with option "sun.java2d.d3d=false"
+ // https://jogamp.org/bugzilla/show_bug.cgi?id=1201
+
+ // In the case of Java > 1.8u51 Win10 and an Intel HD2000/3000 driver, the driver will not load because
+ // the java.exe manifest has a "supportedOS Id" that the drivers don't like (the drivers are too old)
+ // see Bug 1278 - Windows 10 returns software Profile
+ // https://jogamp.org/bugzilla/show_bug.cgi?id=1278
+ // So we will detect Win10/Oracle Jre u > 51 and offer advice to down grade jre
+
+ if (glVendor.equalsIgnoreCase("Microsoft Corporation") && //
+ glRenderer.equalsIgnoreCase("GDI Generic") && //
+ glVersion.equalsIgnoreCase("1.1.0"))
+ {
+ System.err.println("Java3D - GDI Generic Driver use detected.");
+ System.err.println("This may be caused by any of the following issues.");
+
+ if (System.getProperty("sun.java2d.noddraw", "false").equals("true") || System.getProperty("sun.java2d.d3d", "true").equals("false"))
+ {
+ System.err.println("Issue: Use of System.setProperty(\"sun.java2d.noddraw\", \"true\");");
+ System.err.println("or System.setProperty(\"sun.java2d.d3d\", \"false\");");
+ System.err.println("If either of these are being used please try reversing or removing them.");
+ }
+
+ if (Platform.getOSName().equalsIgnoreCase("Windows 10") && //win10
+ (Platform.JAVA_VERSION_NUMBER.compareTo(Platform.Version19) >= 0) || // 1.9 or 1.8 > 51
+ (Platform.JAVA_VERSION_NUMBER.compareTo(Platform.Version18) >= 0 && Platform.JAVA_VERSION_UPDATE > 51) && //
+ Platform.getJavaVMName().toLowerCase().startsWith("java hotspot(tm)"))// e.g. Java HotSpot(TM) 64-Bit Server VM ; OpenJDK would give OpenJDK 64-Bit Server VM
+ {
+ System.err.println("Issue: The use of an Intel HD2000/3000 driver in combination with Windows 10 and");
+ System.err.println("a JRE greater than 1.8 update 51. Please downgrade the JRE in use to JRE 1.8u51 or lower.");
+ System.err.println("For more information please see https://jogamp.org/bugzilla/show_bug.cgi?id=1278.");
+ }
+ System.err.println("If this software has been supplied to you and you are unable to modify it's configuration");
+ System.err.println("please contact the suppler of this software with this entire message.");
+ }
+
throw new IllegalRenderingStateException(
"Java 3D ERROR : OpenGL 1.2 or better is required (GL_VERSION=" +
major + "." + minor + ")");