diff options
author | José Fonseca <[email protected]> | 2008-07-03 15:02:56 +0900 |
---|---|---|
committer | José Fonseca <[email protected]> | 2008-07-03 15:06:24 +0900 |
commit | 8ccab313561d8cca3caf8d76504119bf5eb2e9ae (patch) | |
tree | c67d0038ccebfcf5a7ae146babe6c2a21cdaabd0 /src/gallium/auxiliary | |
parent | 27d8d6f44faa61a61c330d032111eee64dd8b8c7 (diff) |
gallium: Use surface_copy for 1:1 blits.
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/util/u_blit.c | 10 |
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)); /* |