Mesa (master): intel: check for single memcpy() in memcpy_get_tex_image()
Brian Paul
brianp at kemper.freedesktop.org
Thu Oct 29 17:04:57 UTC 2009
Module: Mesa
Branch: master
Commit: ea414e331802e49d59eb2ddd2466d58a383bc931
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea414e331802e49d59eb2ddd2466d58a383bc931
Author: Brian Paul <brianp at vmware.com>
Date: Thu Oct 29 11:04:11 2009 -0600
intel: check for single memcpy() in memcpy_get_tex_image()
---
src/mesa/drivers/dri/intel/intel_tex_image.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index c861fc5..6301444 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -696,11 +696,16 @@ memcpy_get_tex_image(GLcontext *ctx, GLenum target, GLint level,
const GLint srcRowStride = texImage->RowStride * bpp;
GLuint row;
- for (row = 0; row < texImage->Height; row++) {
- memcpy(dst, src, bytesPerRow);
- dst += dstRowStride;
- src += srcRowStride;
- }
+ if (bytesPerRow == dstRowStride && bytesPerRow == dstRowStride) {
+ memcpy(dst, src, bytesPerRow * texImage->Height);
+ }
+ else {
+ for (row = 0; row < texImage->Height; row++) {
+ memcpy(dst, src, bytesPerRow);
+ dst += dstRowStride;
+ src += srcRowStride;
+ }
+ }
}
if (_mesa_is_bufferobj(pack->BufferObj)) {
More information about the mesa-commit
mailing list