i915g: define I915_MAX_TEXTURE_2D/3D_LEVELS
authorBrian Paul <brianp@vmware.com>
Mon, 8 Mar 2010 20:59:39 +0000 (13:59 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 8 Mar 2010 23:26:44 +0000 (16:26 -0700)
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i915/i915_screen.c
src/gallium/drivers/i915/i915_texture.c

index da769e7b290a5453e201cef05829abcbb2312ec8..499a727314d9746d347305c07a8d17257f4d4d25 100644 (file)
@@ -187,6 +187,9 @@ struct i915_sampler_state {
    unsigned maxlod;
 };
 
+#define I915_MAX_TEXTURE_2D_LEVELS 11  /* max 1024x1024 */
+#define I915_MAX_TEXTURE_3D_LEVELS  8  /* max 128x128x128 */
+
 struct i915_texture {
    struct pipe_texture base;
 
@@ -199,7 +202,7 @@ struct i915_texture {
    unsigned sw_tiled; /**< tiled with software flags */
    unsigned hw_tiled; /**< tiled with hardware fences */
 
-   unsigned nr_images[PIPE_MAX_TEXTURE_LEVELS];
+   unsigned nr_images[I915_MAX_TEXTURE_2D_LEVELS];
 
    /* Explicitly store the offset of each image for each cube face or
     * depth value.  Pretty much have to accept that hardware formats
@@ -207,7 +210,7 @@ struct i915_texture {
     * compute the offsets of depth/cube images within a mipmap level,
     * so have to store them as a lookup table:
     */
-   unsigned *image_offset[PIPE_MAX_TEXTURE_LEVELS];   /**< array [depth] of offsets */
+   unsigned *image_offset[I915_MAX_TEXTURE_2D_LEVELS];   /**< array [depth] of offsets */
 
    /* The data is held here:
     */
index 72bd2635506d4851d22686ba2eb1f60d3cb9f30d..e5bf4a20bd0e97f7b0f1c996371fae52fb63ac2d 100644 (file)
@@ -116,11 +116,11 @@ i915_get_param(struct pipe_screen *screen, int param)
    case PIPE_CAP_TEXTURE_SHADOW_MAP:
       return 1;
    case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
-      return 11; /* max 1024x1024 */
+      return I915_MAX_TEXTURE_2D_LEVELS;
    case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
-      return 8;  /* max 128x128x128 */
+      return I915_MAX_TEXTURE_3D_LEVELS;
    case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
-      return 11; /* max 1024x1024 */
+      return I915_MAX_TEXTURE_2D_LEVELS;
    case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
    case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
       return 1;
index 334959c46da378f8f0e1dd71d5d449b9b36cd9ff..5b1f42313ef6156c6517fad0e60d2d9f19f23fa5 100644 (file)
@@ -96,7 +96,7 @@ i915_miptree_set_level_info(struct i915_texture *tex,
                              unsigned nr_images,
                              unsigned w, unsigned h, unsigned d)
 {
-   assert(level < PIPE_MAX_TEXTURE_LEVELS);
+   assert(level < Elements(tex->nr_images));
 
    tex->nr_images[level] = nr_images;
 
@@ -775,7 +775,7 @@ i915_texture_destroy(struct pipe_texture *pt)
 
    iws->buffer_destroy(iws, tex->buffer);
 
-   for (i = 0; i < PIPE_MAX_TEXTURE_LEVELS; i++)
+   for (i = 0; i < Elements(tex->image_offset); i++)
       if (tex->image_offset[i])
          FREE(tex->image_offset[i]);