i965: Increase the number of array texture levels to the hardware limit.
authorEric Anholt <eric@anholt.net>
Mon, 9 Jan 2012 22:47:24 +0000 (14:47 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 11 Jan 2012 00:44:16 +0000 (16:44 -0800)
The EXT_texture_array required only 64, but GL 3.0 required 256.
Since we're already exposing values that can get us way beyond our
ability to map the single object directly, go ahead and expose all the
way to hardware limits.

Tested with new piglit EXT_texture_array/maxlayers on gen7.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_context.c

index 48c141c9c2e7a3d681b087aa5e3aeeb344148eab..087e5a283cf5aaf279d95a82b6c8bc78b7f30c34 100644 (file)
@@ -178,11 +178,12 @@ brwCreateContext(int api,
           ctx->Const.MaxTextureLevels = MAX_TEXTURE_LEVELS;
    ctx->Const.Max3DTextureLevels = 9;
    ctx->Const.MaxCubeTextureLevels = 12;
-   /* minimum maximum.  Users are likely to run into memory problems
-    * even at this size, since 64 * 2048 * 2048 * 4 = 1GB and we can't
-    * address that much.
-    */
-   ctx->Const.MaxArrayTextureLayers = 64;
+
+   if (intel->gen >= 7)
+      ctx->Const.MaxArrayTextureLayers = 2048;
+   else
+      ctx->Const.MaxArrayTextureLayers = 512;
+
    ctx->Const.MaxTextureRectSize = (1<<12);
    
    ctx->Const.MaxTextureMaxAnisotropy = 16.0;