mesa: rework texture size error checking
authorBrian Paul <brianp@vmware.com>
Sat, 15 Sep 2012 16:30:20 +0000 (10:30 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 18 Sep 2012 01:49:26 +0000 (19:49 -0600)
commite6eaa85a43616ba6f431276ab94a3b19dd524986
tree5a8c908cb96f741092efc60e9a6a0e96665de1e7
parentce2ae3c3a2e4bef78047a28723f2d06264d6e4b6
mesa: rework texture size error checking

There are two aspects to texture image size checking:
1. Are the width, height, depth legal values (not negative, not larger
   than the max size for the mipmap level, etc)?
2. Is the texture just too large to handle?  For example, we might not be
   able to really allocate memory for a 3D texture of maxSize x maxSize x
   maxSize.

Previously, we did (1) via the ctx->Driver.TestProxyTextureImage() hook
but those tests are really device-independent.  Now we do (2) via that
hook since the max texture memory and texture shape are device-dependent.

Also, (1) is now done outside the general texture parameter error checking
functions because of the special interaction with proxy textures.  The
recently introduced PROXY_ERROR token is removed.

The teximage() and copyteximage() functions are bit simpler now (less
if-then nesting, etc.)

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/mesa/main/dd.h
src/mesa/main/teximage.c
src/mesa/main/teximage.h
src/mesa/main/texstorage.c