aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2015-01-23 01:43:28 +0100
committerSven Gothel <[email protected]>2015-01-23 01:43:28 +0100
commitcbdd310351f2eda837e707ba7fa9ac18ff9473e4 (patch)
treeb65121432c2f0a4724a7d09bae933255ef59efcb /src/jogl
parent57dab52159394c2d7d48fe69417561e2f881b7a8 (diff)
parent55a5a2ccaf3a6a3ad220bef997343793d0f58756 (diff)
Resolve merge conflict GLRendererQuirks
Diffstat (limited to 'src/jogl')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java30
-rw-r--r--src/jogl/classes/jogamp/opengl/GLContextImpl.java11
-rw-r--r--src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java2
3 files changed, 39 insertions, 4 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
index 335bffb80..9b973c626 100644
--- a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
+++ b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java
@@ -393,6 +393,30 @@ public class GLRendererQuirks {
* </p>
*/
public static final int NeedSharedObjectSync = 20;
+
+ /**
+ * No reliable ARB_create_context implementation,
+ * even if driver claims otherwise.
+ * <p>
+ * Some drivers wrongly claim to support ARB_create_context.
+ * However, the creation of such context fails:
+ * <pre>
+ * javax.media.opengl.GLException: AWT-EventQueue-0: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2
+ * requested (OpenGL >= 3.0.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 2.1 (Compat profile, FBO, hardware)
+ * - 2.1.8787
+ * </pre>
+ * </p>
+ * <p>
+ * Appears on:
+ * <ul>
+ * <li>GL_VENDOR ATI Technologies Inc.</li>
+ * <li>GL_RENDERER ATI Radeon 3100 Graphics</li>
+ * <li>GL_VERSION 2.1.8787</li>
+ * <li>Platform Windows</li>
+ * </ul>
+ * </p>
+ */
+ public static final int NoARBCreateContext = 21;
/**
* No support for ES or desktop GL >= 3.0 current context without surface,
@@ -420,10 +444,10 @@ public class GLRendererQuirks {
* </ul>
* </p>
*/
- public static final int NoSurfacelessCtx = 21;
+ public static final int NoSurfacelessCtx = 22;
/** Return the number of known quirks. */
- public static final int getCount() { return 22; }
+ public static final int getCount() { return 23; }
private static final String[] _names = new String[] { "NoDoubleBufferedPBuffer", "NoDoubleBufferedBitmap", "NoSetSwapInterval",
"NoOffscreenBitmap", "NoSetSwapIntervalPostRetarget", "GLSLBuggyDiscard",
@@ -432,7 +456,7 @@ public class GLRendererQuirks {
"NoFullFBOSupport", "GLSLNonCompliant", "GL4NeedsGL3Request",
"GLSharedContextBuggy", "GLES3ViaEGLES2Config", "SingletonEGLDisplayOnly",
"NoMultiSamplingBuffers", "BuggyColorRenderbuffer", "NoPBufferWithAccum",
- "NeedSharedObjectSync", "NoSurfacelessCtx"
+ "NeedSharedObjectSync", "NoARBCreateContext", "NoSurfacelessCtx"
};
private static final IdentityHashMap<String, GLRendererQuirks> stickyDeviceQuirks = new IdentityHashMap<String, GLRendererQuirks>();
diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
index 44987bdec..b6db1813f 100644
--- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
@@ -1942,6 +1942,17 @@ public abstract class GLContextImpl extends GLContext {
}
quirks.addQuirk( quirk );
}
+
+ if ( vendorVersion.compareTo(VersionNumberString.zeroVersion) == 0 ) {
+ final VersionNumber glVersionNumber = new VersionNumber(glVersion);
+ if ( glVersionNumber.getSub() <= 8787 && glRenderer.equals("ATI Radeon 3100 Graphics") ) { // "old" driver -> sub-minor = vendor version
+ final int quirk = GLRendererQuirks.NoARBCreateContext;
+ if(DEBUG) {
+ System.err.println("Quirk: "+GLRendererQuirks.toString(quirk)+": cause: OS "+Platform.getOSType()+", [Vendor "+glVendor+", Renderer "+glRenderer+" and Version "+glVersion+"]");
+ }
+ quirks.addQuirk( quirk );
+ }
+ }
} else if( isDriverIntel && glRenderer.equals("Intel Bear Lake B") ) {
final int quirk = GLRendererQuirks.NoPBufferWithAccum;
if(DEBUG) {
diff --git a/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java b/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java
index 6b21c81be..6cc29dddb 100644
--- a/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java
+++ b/src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java
@@ -333,7 +333,7 @@ public class WindowsWGLContext extends GLContextImpl {
isProcCreateContextAttribsARBAvailable = false;
isExtARBCreateContextAvailable = false;
}
- if ( isProcCreateContextAttribsARBAvailable && isExtARBCreateContextAvailable && !GLProfile.disableOpenGLARBContext ) {
+ if ( isProcCreateContextAttribsARBAvailable && isExtARBCreateContextAvailable && !GLProfile.disableOpenGLARBContext && !getRendererQuirks().exist( GLRendererQuirks.NoARBCreateContext ) ) {
// initial ARB context creation
contextHandle = createContextARB(shareWithHandle, true);
createContextARBTried=true;