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 * */ 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: + *

+ *

+ * 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: + * + *

+ *

+ * On Android 4.*, Huawei's Ascend G615 w/ Immersion.16 could not make a shared context + * current, which uses a pbuffer drawable: + *

+ *

+ *

+ *

+ */ + 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