From 36dc4f5ab6957a4078842c488afb51df2fdc0630 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Fri, 26 Apr 2013 05:38:24 +0200
Subject: Simplify GLDrawableFactory's SharedResource Query Methods; Move
WindowsWGLDrawableFactory Quirks to GLRendererQuirks
(NeedCurrCtx4ARBPixFmtQueries, NeedCurrCtx4ARBCreateContext); Bug 706:
Confine NeedCurrCtx4ARBCreateContext to [Windows, ATI, driver < 12.102.3);
Avoid possible NPE @ GLContext.getGLVendorVersionNumber()
- Simplify GLDrawableFactory's SharedResource Query Methods
- Moving common methods to GLDrawableFactory/GLDrawableFactoryImpl
while reusing common methods to SharedResourceRunner.Resource.
- All factories SharedResources impl. SharedResourceRunner.Resource.
- Move WindowsWGLDrawableFactory Quirks to GLRendererQuirks (NeedCurrCtx4ARBPixFmtQueries, NeedCurrCtx4ARBCreateContext)
- For better maintenance, move the mentioned quirks from the windows factory to our common place,
being detected within GLContextImpl after each context creation.
- Bug 706: Confine NeedCurrCtx4ARBCreateContext to [Windows, ATI, driver < 12.102.3)
- Before we added this quirk if [Windows, ATI],
however, we have hopes that the new drivers will suffice for all
as tested successful on my test machine (AMD Radeon HD 6300M Series, amd_catalyst_13.5_mobility_beta2).
- Avoid possible NPE @ GLContext.getGLVendorVersionNumber()
- GLContext.getGLVendorVersionNumber() never returns 'null' but a zero version instance instead!
- Add API doc.
- Use mixed case names in GLContextImpl.setRendererQuirks(..).
---
.../com/jogamp/opengl/GLRendererQuirks.java | 48 ++++++++++++++++++++--
1 file changed, 45 insertions(+), 3 deletions(-)
(limited to 'src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java')
diff --git a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
index 4c068414c..01d2b30a0 100644
--- a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
+++ b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
@@ -34,6 +34,10 @@ package com.jogamp.opengl;
* Using centralized quirk identifier enables us to
* locate code dealing w/ it and hence eases it's maintenance.
*
+ *
+ * Some GL_VENDOR
and GL_RENDERER
strings are
+ * listed here .
+ *
*/
public class GLRendererQuirks {
/**
@@ -92,7 +96,7 @@ public class GLRendererQuirks {
* Drivers known exposing such bug:
*
* - Mesa < 8.0 _with_ X11 software renderer
Mesa X11
, not with GLX/DRI renderer.
- * - ATI proprietary Catalyst X11 driver (RENDERER vendor version):
+ *
- ATI proprietary Catalyst X11 driver versions:
*
* - 8.78.6
* - 8.881
@@ -111,12 +115,50 @@ public class GLRendererQuirks {
*/
public static final int DontCloseX11Display = 8;
+ /**
+ * Need current GL Context when calling new ARB pixel format query functions,
+ * otherwise driver crashes the VM.
+ *
+ * Drivers known exposing such bug:
+ *
+ * - ATI proprietary Catalyst driver on Windows version ≤ XP.
+ * TODO: Validate if bug actually relates to 'old' ATI Windows drivers for old GPU's like X300
+ * regardless of the Windows version.
+ *
+ *
+ * See Bug 480 - https://jogamp.org/bugzilla/show_bug.cgi?id=480
+ *
+ */
+ public static final int NeedCurrCtx4ARBPixFmtQueries = 9;
+
+ /**
+ * Need current GL Context when calling new ARB CreateContext function,
+ * otherwise driver crashes the VM.
+ *
+ * Drivers known exposing such bug:
+ *
+ * - ATI proprietary Catalyst Windows driver on laptops with a driver version as reported in GL_VERSION:
+ *
+ * - null
+ * - <
12.102.3.0
( amd_catalyst_13.5_mobility_beta2 )
+ *
+ *
+ *
+ *
+ * See Bug 706 - https://jogamp.org/bugzilla/show_bug.cgi?id=706
+ * See Bug 520 - https://jogamp.org/bugzilla/show_bug.cgi?id=520
+ *
+ */
+ public static final int NeedCurrCtx4ARBCreateContext = 10;
+
+
/** Number of quirks known. */
- public static final int COUNT = 9;
+ public static final int COUNT = 11;
private static final String[] _names = new String[] { "NoDoubleBufferedPBuffer", "NoDoubleBufferedBitmap", "NoSetSwapInterval",
"NoOffscreenBitmap", "NoSetSwapIntervalPostRetarget", "GLSLBuggyDiscard",
- "GLNonCompliant", "GLFlushBeforeRelease", "DontCloseX11Display"
+ "GLNonCompliant", "GLFlushBeforeRelease", "DontCloseX11Display",
+ "NeedCurrCtx4ARBPixFmtQueries", "NeedCurrCtx4ARBCreateContext"
};
private final int _bitmask;
--
cgit v1.2.3