From 523d1dae2431fdd56d39d3ea06220cfed412a0b5 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Wed, 19 Mar 2014 22:35:52 +0100
Subject: GLRendererQuirks.NoMultiSamplingBuffers: Prelim detection of this
 quirk due to Gallium/Nouveau Driver (TODO: Handle it in GLCapabilities
 Selection)

---
 src/jogl/classes/jogamp/opengl/GLContextImpl.java | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

(limited to 'src/jogl/classes/jogamp/opengl')

diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
index 9ccd78589..04ecba262 100644
--- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
@@ -1869,13 +1869,26 @@ public abstract class GLContextImpl extends GLContext {
           quirks[i++] = quirk;
         }
         if( glRenderer.contains( MesaRendererIntelsp ) &&
-            vendorVersion.compareTo(mesaIntelBuggySharedCtx921) >= 0 && isX11 ) {
+            vendorVersion.compareTo(mesaIntelBuggySharedCtx921) >= 0 && isX11 ) { // FIXME: When is it fixed ?
           final int quirk = GLRendererQuirks.GLSharedContextBuggy;
           if(DEBUG) {
               System.err.println("Quirk: "+GLRendererQuirks.toString(quirk)+": cause: X11 / Renderer " + glRenderer + " / Mesa-Version "+vendorVersion);
           }
           quirks[i++] = quirk;
         }
+        if( glVendor.contains( "nouveau" )
+            // FIXME: && vendorVersion.compareTo(nouveauBuggyMSAAFixed) < 0
+          ) {
+          final int quirk = GLRendererQuirks.NoMultiSamplingBuffers;
+          if(DEBUG) {
+              System.err.println("Quirk: "+GLRendererQuirks.toString(quirk)+": cause: X11 / Renderer " + glRenderer + " / Vendor "+glVendor);
+          }
+          quirks[i++] = quirk;
+          if( withinGLVersionsMapping ) {
+              // Thread safe due to single threaded initialization!
+              GLRendererQuirks.addStickyDeviceQuirks(adevice, quirks, i-1, 1);
+          }
+        }
         if( isWindows && glRenderer.contains("SVGA3D") ) {
             final VersionNumber mesaSafeFBOVersion = new VersionNumber(8, 0, 0);
             if ( vendorVersion.compareTo(mesaSafeFBOVersion) < 0 ) { // includes: vendorVersion.isZero()
-- 
cgit v1.2.3