diff options
author | Juan Camilo Prada <juankprada@gmail.com> | 2013-06-21 10:48:17 +0200 |
---|---|---|
committer | Sven Gothel <sgothel@jausoft.com> | 2013-06-21 10:48:17 +0200 |
commit | a053732720628d57d38bda401053833259bf1657 (patch) | |
tree | 94f36b20796c5077a43bfdac3dfcd837a19cfd47 | |
parent | 4b7833fab73166338a3a2f27920a7b28a3e5e30f (diff) |
Fix Bug 759: Add quirk GLNonCompliant for Mesa AMD GL >= 3.1 renderer.
-rw-r--r-- | src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java | 8 | ||||
-rw-r--r-- | src/jogl/classes/jogamp/opengl/GLContextImpl.java | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java index 36893f5ec..9fe74ee97 100644 --- a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java +++ b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java @@ -73,7 +73,13 @@ public class GLRendererQuirks { * <p> * Mesa >= 9.0 (?), Intel driver, OpenGL 3.1 compatibility context is not compliant: * <pre> - * GL_RENDERER: Mesa DRI Intel(R) Sandybridge Desktop + * GL_RENDERER: 'Mesa .* Intel(R) Sandybridge Desktop' + * </pre> + * </p> + * <p> + * Mesa >= 9.0 (?), AMD driver, OpenGL 3.1 core and compatibility context is not compliant: + * <pre> + * GL_RENDERER: 'Gallium 0.4 on AMD RS880' * </pre> * </p> */ diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java index 6254b6f44..d6f97662e 100644 --- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java +++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java @@ -1515,6 +1515,8 @@ public abstract class GLContextImpl extends GLContext { int i = 0; final String MesaSP = "Mesa "; + final String MesaRendererAMDsp = " AMD "; + final String MesaRendererIntelsp = "Intel(R)"; final boolean hwAccel = 0 == ( ctp & GLContext.CTX_IMPL_ACCEL_SOFT ); final boolean compatCtx = 0 != ( ctp & GLContext.CTX_PROFILE_COMPAT ); final boolean isDriverMesa = glRenderer.contains(MesaSP) || glRenderer.contains("Gallium "); @@ -1639,7 +1641,7 @@ public abstract class GLContextImpl extends GLContext { } quirks[i++] = quirk; } - if( hwAccel /* glRenderer.contains("Intel(R)") || glRenderer.contains("AMD ") */ ) + if( hwAccel /* glRenderer.contains( MesaRendererIntelsp ) || glRenderer.contains( MesaRendererAMDsp ) */ ) { final int quirk = GLRendererQuirks.NoDoubleBufferedPBuffer; if(DEBUG) { @@ -1647,7 +1649,9 @@ public abstract class GLContextImpl extends GLContext { } quirks[i++] = quirk; } - if( glRenderer.contains("Intel(R)") && compatCtx && ( major > 3 || major == 3 && minor >= 1 ) ) + if( ( (glRenderer.contains( MesaRendererIntelsp ) && compatCtx) || glRenderer.contains( MesaRendererAMDsp ) ) && + ( major > 3 || major == 3 && minor >= 1 ) + ) { // FIXME: Apply vendor version constraints! final int quirk = GLRendererQuirks.GLNonCompliant; |