Module: Mesa
Branch: master
Commit: ea414e331802e49d59eb2ddd2466d58a383bc931
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea414e331802e49d59eb2ddd2466d58a383bc931

Author: Brian Paul <[email protected]>
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)) {

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to