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