[cogl] glx do not use multisample visual config for front or pixmap



commit 93b7b4c850dd928bf21ee168a95641a8d631f713
Author: Jerome Glisse <jglisse redhat com>
Date:   Tue Jan 29 18:37:41 2013 -0500

    glx do not use multisample visual config for front or pixmap
    
    There is no guaranty that glXGetFBConfigs will return fbconfig ordered
    with non msaa config first. This patch make sure that non msaa config
    get choose.
    
    Signed-off-by: Jerome Glisse <jglisse redhat com>
    Reviewed-by: Robert Bragg <robert linux intel com>

 cogl/winsys/cogl-winsys-glx.c |   29 +++++++++++++++++++++++------
 1 files changed, 23 insertions(+), 6 deletions(-)
---
diff --git a/cogl/winsys/cogl-winsys-glx.c b/cogl/winsys/cogl-winsys-glx.c
index f559f15..6015196 100644
--- a/cogl/winsys/cogl-winsys-glx.c
+++ b/cogl/winsys/cogl-winsys-glx.c
@@ -768,13 +768,20 @@ glx_attributes_from_framebuffer_config (CoglDisplay *display,
   attributes[i++] = GLX_STENCIL_SIZE;
   attributes[i++] = config->need_stencil ? 1: GLX_DONT_CARE;
 
-  if (glx_renderer->glx_major == 1 && glx_renderer->glx_minor >= 4 &&
-      config->samples_per_pixel)
-    {
-       attributes[i++] = GLX_SAMPLE_BUFFERS;
-       attributes[i++] = 1;
-       attributes[i++] = GLX_SAMPLES;
-       attributes[i++] = config->samples_per_pixel;
+  if (glx_renderer->glx_major == 1 && glx_renderer->glx_minor >= 4)
+    {
+       if (config->samples_per_pixel)
+         {
+            attributes[i++] = GLX_SAMPLE_BUFFERS;
+            attributes[i++] = 1;
+            attributes[i++] = GLX_SAMPLES;
+            attributes[i++] = config->samples_per_pixel;
+         }
+       else
+         {
+            attributes[i++] = GLX_SAMPLE_BUFFERS;
+            attributes[i++] = 0;
+         }
     }
 
   attributes[i++] = None;
@@ -2016,6 +2023,16 @@ get_fbconfig_for_depth (CoglContext *context,
       if (value != depth && (value - alpha) != depth)
         continue;
 
+      if (glx_renderer->glx_major == 1 && glx_renderer->glx_minor >= 4)
+        {
+          glx_renderer->glXGetFBConfigAttrib (dpy,
+                                              fbconfigs[i],
+                                              GLX_SAMPLES,
+                                              &value);
+          if (value > 1)
+            continue;
+        }
+
       value = 0;
       if (depth == 32)
         {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]