meta: Fallback for glBlitFramebuffer from a multisample surface
authorIan Romanick <ian.d.romanick@intel.com>
Sat, 21 Jan 2012 00:08:01 +0000 (16:08 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 23 Jan 2012 23:17:45 +0000 (15:17 -0800)
NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44818

src/mesa/drivers/common/meta.c

index dca3613a610eb4f78bb3f44e834df11379761789..05cc712cfa482b400ae38eb381b3065042b1546d 100644 (file)
@@ -1451,7 +1451,12 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
    struct vertex verts[4];
    GLboolean newTex;
 
-   if (srcW > maxTexSize || srcH > maxTexSize) {
+   /* In addition to falling back if the blit size is larger than the maximum
+    * texture size, fallback if the source is multisampled.  This fallback can
+    * be removed once Mesa gets support ARB_texture_multisample.
+    */
+   if (srcW > maxTexSize || srcH > maxTexSize
+       || ctx->ReadBuffer->Visual.samples > 0) {
       /* XXX avoid this fallback */
       _swrast_BlitFramebuffer(ctx, srcX0, srcY0, srcX1, srcY1,
                               dstX0, dstY0, dstX1, dstY1, mask, filter);