From 3ed74abaddb90cb537897b9928e923be50f7f99f Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Fri, 1 Nov 2013 12:40:35 +0100
Subject: GLRendererQuirks: Add GLSharedContextBuggy ('Mesa Intel 9.2.1' and
'Hisilicon Immersion.16')
Note: Even though Mesa Intel driver crashes w/ heavy multithreading (Bug 873),
it works well w/ our multithreaded GLMediaPlayer.
---
.../com/jogamp/opengl/GLRendererQuirks.java | 43 ++++++++++++++++++++--
1 file changed, 40 insertions(+), 3 deletions(-)
(limited to 'src/jogl/classes/com/jogamp')
diff --git a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
index 4a720a4f9..95f87be29 100644
--- a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
+++ b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
@@ -192,21 +192,58 @@ public class GLRendererQuirks {
public static final int GLSLNonCompliant = 12;
/**
- * GL4 context needs to be requested via GL3
+ * GL4 context needs to be requested via GL3 profile attribute
*
* - OSX >= 10.9.0 - kCGLOGLPVersion_GL4_Core may not produce hw-accel context. Bug 867 @ https://jogamp.org/bugzilla/.
*
*/
public static final int GL4NeedsGL3Request = 13;
+ /**
+ * Buggy shared OpenGL context support within a multithreaded use-case, not suitable for stable usage.
+ *
+ * X11 Mesa DRI Intel(R) driver >= 9.2.1 cannot handle multithreaded shared GLContext usage
+ * with non-blocking exclusive X11 display connections.
+ * References:
+ *
+ * - Bug 873: https://jogamp.org/bugzilla/show_bug.cgi?id=873
+ * - https://bugs.freedesktop.org/show_bug.cgi?id=41736#c8
+ *
+ *
+ * However, not all multithreaded use-cases are broken, e.g. our GLMediaPlayer does work.
+ *
+ * The above has been confirmed for the following Mesa 9.* strings:
+ *
+ * - GL_VENDOR Intel Open Source Technology Center
+ * - GL_RENDERER Mesa DRI Intel(R) Sandybridge Desktop
+ * - GL_RENDERER Mesa DRI Intel(R) Ivybridge Mobile
+ * - GL_VERSION 3.1 (Core Profile) Mesa 9.2.1
+ *
+ *
+ *
+ * On Android 4.*, Huawei's Ascend G615 w/ Immersion.16 could not make a shared context
+ * current, which uses a pbuffer drawable:
+ *
+ * - Android 4.*
+ * - GL_VENDOR Hisilicon Technologies
+ * - GL_RENDERER Immersion.16
+ * - GL_VERSION OpenGL ES 2.0
+ *
+ *
+ *
+ *
+ */
+ public static final int GLSharedContextBuggy = 14;
+
/** Number of quirks known. */
- public static final int COUNT = 14;
+ public static final int COUNT = 15;
private static final String[] _names = new String[] { "NoDoubleBufferedPBuffer", "NoDoubleBufferedBitmap", "NoSetSwapInterval",
"NoOffscreenBitmap", "NoSetSwapIntervalPostRetarget", "GLSLBuggyDiscard",
"GLNonCompliant", "GLFlushBeforeRelease", "DontCloseX11Display",
"NeedCurrCtx4ARBPixFmtQueries", "NeedCurrCtx4ARBCreateContext",
- "NoFullFBOSupport", "GLSLNonCompliant", "GL4NeedsGL3Request"
+ "NoFullFBOSupport", "GLSLNonCompliant", "GL4NeedsGL3Request",
+ "GLSharedContextBuggy"
};
private static final IdentityHashMap stickyDeviceQuirks = new IdentityHashMap();
--
cgit v1.2.3