Mesa (master): intel: Drop TEXTURE_RECTANGLE check in miptree layout setup.

Eric Anholt anholt at kemper.freedesktop.org
Wed Jan 5 23:13:42 UTC 2011


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

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jan  5 14:12:34 2011 -0800

intel: Drop TEXTURE_RECTANGLE check in miptree layout setup.

It's already handled by our non-mipmapped MinFilter, since
TEXTURE_RECTANGLE is always NEAREST or LINEAR.

---

 src/mesa/drivers/dri/intel/intel_tex_validate.c |   61 +++++++++--------------
 1 files changed, 24 insertions(+), 37 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index 1fc7cd1..9465279 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -29,44 +29,31 @@ intel_calculate_first_last_level(struct intel_context *intel,
 
    /* Yes, this looks overly complicated, but it's all needed.
     */
-   switch (tObj->Target) {
-   case GL_TEXTURE_1D:
-   case GL_TEXTURE_2D:
-   case GL_TEXTURE_3D:
-   case GL_TEXTURE_CUBE_MAP:
-      if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) {
-         /* GL_NEAREST and GL_LINEAR only care about GL_TEXTURE_BASE_LEVEL.
-          */
-         lastLevel = tObj->BaseLevel;
-      }
-      else {
-	 if (intel->gen == 2) {
-	    firstLevel += (GLint) (tObj->MinLod + 0.5);
-	    firstLevel = MAX2(firstLevel, tObj->BaseLevel);
-	    firstLevel = MIN2(firstLevel, tObj->BaseLevel + baseImage->MaxLog2);
-	    lastLevel = tObj->BaseLevel + (GLint) (tObj->MaxLod + 0.5);
-	    lastLevel = MAX2(lastLevel, tObj->BaseLevel);
-	    lastLevel = MIN2(lastLevel, tObj->BaseLevel + baseImage->MaxLog2);
-	    lastLevel = MIN2(lastLevel, tObj->MaxLevel);
-	    lastLevel = MAX2(firstLevel, lastLevel);       /* need at least one level */
-	 } else {
-	    /* Min/max LOD are taken into account in sampler state.  We don't
-	     * want to re-layout textures just because clamping has been applied
-	     * since it means a bunch of blitting around and probably no memory
-	     * savings (since we have to keep the other levels around anyway).
-	     */
-	    lastLevel = MIN2(tObj->BaseLevel + baseImage->MaxLog2,
-			     tObj->MaxLevel);
-	    /* need at least one level */
-	    lastLevel = MAX2(firstLevel, lastLevel);
-	 }
+   if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) {
+      /* GL_NEAREST and GL_LINEAR only care about GL_TEXTURE_BASE_LEVEL.
+       */
+      lastLevel = tObj->BaseLevel;
+   } else {
+      if (intel->gen == 2) {
+	 firstLevel += (GLint) (tObj->MinLod + 0.5);
+	 firstLevel = MAX2(firstLevel, tObj->BaseLevel);
+	 firstLevel = MIN2(firstLevel, tObj->BaseLevel + baseImage->MaxLog2);
+	 lastLevel = tObj->BaseLevel + (GLint) (tObj->MaxLod + 0.5);
+	 lastLevel = MAX2(lastLevel, tObj->BaseLevel);
+	 lastLevel = MIN2(lastLevel, tObj->BaseLevel + baseImage->MaxLog2);
+	 lastLevel = MIN2(lastLevel, tObj->MaxLevel);
+	 lastLevel = MAX2(firstLevel, lastLevel);       /* need at least one level */
+      } else {
+	 /* Min/max LOD are taken into account in sampler state.  We don't
+	  * want to re-layout textures just because clamping has been applied
+	  * since it means a bunch of blitting around and probably no memory
+	  * savings (since we have to keep the other levels around anyway).
+	  */
+	 lastLevel = MIN2(tObj->BaseLevel + baseImage->MaxLog2,
+			  tObj->MaxLevel);
+	 /* need at least one level */
+	 lastLevel = MAX2(firstLevel, lastLevel);
       }
-      break;
-   case GL_TEXTURE_RECTANGLE_NV:
-      lastLevel = 0;
-      break;
-   default:
-      return;
    }
 
    /* save these values */




More information about the mesa-commit mailing list