Blame SOURCES/cogl-1.14.0-swrast-copy-sub-buffer.patch

21ac67
diff -up cogl-1.14.0/cogl/winsys/cogl-winsys-glx.c.jx cogl-1.14.0/cogl/winsys/cogl-winsys-glx.c
21ac67
--- cogl-1.14.0/cogl/winsys/cogl-winsys-glx.c.jx	2013-02-21 10:41:08.000000000 -0500
21ac67
+++ cogl-1.14.0/cogl/winsys/cogl-winsys-glx.c	2014-01-29 16:16:00.501264635 -0500
21ac67
@@ -698,30 +698,18 @@ update_winsys_features (CoglContext *con
21ac67
   COGL_FLAGS_SET (context->features,
21ac67
                   COGL_FEATURE_ID_ONSCREEN_MULTIPLE, TRUE);
21ac67
 
21ac67
-  if (glx_renderer->glXCopySubBuffer || context->glBlitFramebuffer)
21ac67
+  /* our swrast has working CopySubBuffer, but not BlitFramebuffer */
21ac67
+  if (context->gpu.architecture == COGL_GPU_INFO_ARCHITECTURE_LLVMPIPE ||
21ac67
+      context->gpu.architecture == COGL_GPU_INFO_ARCHITECTURE_SOFTPIPE ||
21ac67
+      context->gpu.architecture == COGL_GPU_INFO_ARCHITECTURE_SWRAST)
21ac67
     {
21ac67
-      CoglGpuInfoArchitecture arch;
21ac67
+      context->glBlitFramebuffer = NULL;
21ac67
+    }
21ac67
 
21ac67
-      /* XXX: ONGOING BUG:
21ac67
-       * (Don't change the line above since we use this to grep for
21ac67
-       * un-resolved bug workarounds as part of the release process.)
21ac67
-       *
21ac67
-       * "The "drisw" binding in Mesa for loading sofware renderers is
21ac67
-       * broken, and neither glBlitFramebuffer nor glXCopySubBuffer
21ac67
-       * work correctly."
21ac67
-       * - ajax
21ac67
-       * - https://bugzilla.gnome.org/show_bug.cgi?id=674208
21ac67
-       *
21ac67
-       * This is broken in software Mesa at least as of 7.10
21ac67
-       */
21ac67
-      arch = context->gpu.architecture;
21ac67
-      if (arch != COGL_GPU_INFO_ARCHITECTURE_LLVMPIPE &&
21ac67
-          arch != COGL_GPU_INFO_ARCHITECTURE_SOFTPIPE &&
21ac67
-          arch != COGL_GPU_INFO_ARCHITECTURE_SWRAST)
21ac67
-	{
21ac67
-	  COGL_FLAGS_SET (context->winsys_features,
21ac67
-			  COGL_WINSYS_FEATURE_SWAP_REGION, TRUE);
21ac67
-	}
21ac67
+  if (glx_renderer->glXCopySubBuffer || context->glBlitFramebuffer)
21ac67
+    {
21ac67
+      COGL_FLAGS_SET (context->winsys_features,
21ac67
+		      COGL_WINSYS_FEATURE_SWAP_REGION, TRUE);
21ac67
     }
21ac67
 
21ac67
   /* Note: glXCopySubBuffer and glBlitFramebuffer won't be throttled