I've rewritten the texture download paths.  The code is much
cleaner now, less memory is used, and it's faster.  Yeah!

A 2x speedup is typical but in some cases I measured more than
4x improvement in texture download speed.  On my PIII-500 I
saw peak download rates of 28M texels/second.  All tests were done
using the software X11 driver.

The effected functions are:
glTexImage1D
glTexImage2D
glTexImage3D
glTexSubImage1D
glTexSubImage2D
glTexSubImage3D
glCopyTexImage1D
glCopyTexImage2D
glCopyTexImage3D
glCopyTexSubImage1D
glCopyTexSubImage2D
glCopyTexSubImage3D

Several bugs were fixed along the way.  For example, proxy
texture calls should not be compiled into display lists - they
were previously.  Also, glCopyTex*Image didn't go through pixel
scale/bias and table lookup - they do now.

The optimized glTex(Sub)Image[123]D cases are:

no scale/bias/lookup enabled
type==GL_UNSIGNED_BYTE
(format==internalFormat ||
 format==GL_RGBA && internalFormat==GL_RGB ||
 format==GL_RGB && internalFormat==GL_RGBA)

This was long-overdue work.  I was hesitant to make these big
changes for Mesa 3.1 but John C. pushed a bit.  I've done
enough testing that I feel good about putting this code in 3.1.
Of course, let me know asap if you find a new texture download
bug.

For Mesa 3.3 (the new development) I'll extend the new imaging
code (in image.[ch]) into glDrawPixels, glCopyPixels and
glColorTable.  Those functions might not get much faster but
the code will be a lot cleaner.

-Brian


_______________________________________________
Mesa-dev maillist  -  [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-dev

Reply via email to