meta: Avoid _swrast_BlitFramebuffer in the meta CopyTexSubImage code.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 19 May 2014 05:26:59 +0000 (22:26 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 20 May 2014 00:18:55 +0000 (17:18 -0700)
This is a replacement for bd44ac8b5ca08016bb064b37edaec95eccfdbcd5
that should actually work.

Fixes Piglit's copyteximage-border on swrast, as well as one of
es3conform's packed_pixels_pixelstore test.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78546
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77705
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
src/mesa/drivers/common/meta.c

index f90d5bd424e1ac111a65f2c3f46f339862d126ed..b194b6e71d5cec7fdaff766a4497aa6b0cb550e3 100644 (file)
@@ -2860,13 +2860,13 @@ copytexsubimage_using_blit_framebuffer(struct gl_context *ctx, GLuint dims,
     * are too strict for CopyTexImage.  We know meta will be fine with format
     * changes.
     */
-   _mesa_meta_and_swrast_BlitFramebuffer(ctx, x, y,
-                                         x + width, y + height,
-                                         xoffset, yoffset,
-                                         xoffset + width, yoffset + height,
-                                         mask, GL_NEAREST);
+   mask = _mesa_meta_BlitFramebuffer(ctx, x, y,
+                                     x + width, y + height,
+                                     xoffset, yoffset,
+                                     xoffset + width, yoffset + height,
+                                     mask, GL_NEAREST);
    ctx->Meta->Blit.no_ctsi_fallback = false;
-   success = true;
+   success = mask == 0x0;
 
  out:
    _mesa_lock_texture(ctx, texObj);