aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-12-29 23:37:36 +0100
committerSven Gothel <[email protected]>2012-12-29 23:37:36 +0100
commit3ce0aa6e36d9474ac3105cab491a60327860757d (patch)
treef2dee4f862730a6fbc59881204525d6839df86b6 /src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
parent74d8e51e1cbb436eab6b90f78de90dacd10e60a5 (diff)
Fix Bug 658 (Mesa 9.0 3.1 Intel compat quirk, 3.1 core only) ; No PROFILE_ALIASING compat -> core ; Fix setGLFunctionAvailability(..) failure path @ profile query
- Add GLRendererQuirks.GLNonCompliant, marking a GL context/profile non compliant. Currently: 'Mesa DRI Intel(R) Sandybridge Desktop' && 3.1 compat profile - Fix Bug 658 (Mesa 9.0 3.1 Intel compat quirk, 3.1 core only) Detect case using new GLRendererQuirks.GLNonCompliant in setGLFunctionAvailability() and return 'false'. - No PROFILE_ALIASING compat -> core Use true core GL profiles / context if available to ensure proper API behavior across platforms due to different functionality. E.g. don't use GL3bc if GL3 is requested. - Fix setGLFunctionAvailability(..) failure path @ profile query Destroy temp context & zero result to cont. iterating through GL versions. This missing cleanup lead to returning the faulty GL context handle and it's mapping/usage.
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
index 2f453a497..9a13ff904 100644
--- a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
+++ b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
@@ -37,7 +37,7 @@ package com.jogamp.opengl;
*/
public class GLRendererQuirks {
/**
- * Crashes XServer when using double buffered PBuffer with:
+ * Crashes XServer when using double buffered PBuffer with GL_RENDERER:
* <ul>
* <li>Mesa DRI Intel(R) Sandybridge Desktop</li>
* <li>Mesa DRI Intel(R) Ivybridge Mobile - 3.0 Mesa 8.0.4</li>
@@ -62,11 +62,23 @@ public class GLRendererQuirks {
/** GLSL <code>discard</code> command leads to undefined behavior or won't get compiled if being used. Appears to happen on Nvidia Tegra2. FIXME: Constrain version. */
public static final int GLSLBuggyDiscard = 5;
+ /**
+ * Non compliant GL context, e.g. due to a buggy implementation rendering it not suitable for use.
+ * <p>
+ * Mesa >= 9.0 (?), Intel driver, OpenGL 3.1 compatibility context is not compliant:
+ * <pre>
+ * GL_RENDERER: Mesa DRI Intel(R) Sandybridge Desktop
+ * </pre>
+ * </p>
+ */
+ public static final int GLNonCompliant = 6;
+
/** Number of quirks known. */
- public static final int COUNT = 6;
+ public static final int COUNT = 7;
private static final String[] _names = new String[] { "NoDoubleBufferedPBuffer", "NoDoubleBufferedBitmap", "NoSetSwapInterval",
- "NoOffscreenBitmap", "NoSetSwapIntervalPostRetarget", "GLSLBuggyDiscard"
+ "NoOffscreenBitmap", "NoSetSwapIntervalPostRetarget", "GLSLBuggyDiscard",
+ "GLNonCompliant"
};
private final int _bitmask;