summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/util/u_blit.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c
index ae779335dc0..c9e3abc88be 100644
--- a/src/gallium/auxiliary/util/u_blit.c
+++ b/src/gallium/auxiliary/util/u_blit.c
@@ -308,6 +308,16 @@ util_blit_pixels(struct blit_state *ctx,
}
assert(screen->is_format_supported(screen, src->format, PIPE_TEXTURE));
+ assert(screen->is_format_supported(screen, dst->format, PIPE_TEXTURE));
+
+ if(dst->format == src->format && (dstX1 - dstX0) == srcW && (dstY1 - dstY0) == srcH) {
+ pipe->surface_copy(pipe, FALSE,
+ dst, dstX0, dstY0, /* dest */
+ src, srcX0, srcY0, /* src */
+ srcW, srcH); /* size */
+ return;
+ }
+
assert(screen->is_format_supported(screen, dst->format, PIPE_SURFACE));
/*