diff options
| author | Brian Paul <brianp@vmware.com> | 2010-03-08 13:59:39 -0700 | 
|---|---|---|
| committer | Brian Paul <brianp@vmware.com> | 2010-03-08 16:26:44 -0700 | 
| commit | e0d4f3202e213ae790a272eba7e96a40f68a6822 (patch) | |
| tree | b8dfd59073c10f0bee4532ec9814972d6303a178 /src | |
| parent | e836f35369784fd90657252dcaf75e66f2369068 (diff) | |
i915g: define I915_MAX_TEXTURE_2D/3D_LEVELS
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/i915/i915_context.h | 7 | ||||
| -rw-r--r-- | src/gallium/drivers/i915/i915_screen.c | 6 | ||||
| -rw-r--r-- | src/gallium/drivers/i915/i915_texture.c | 4 | 
3 files changed, 10 insertions, 7 deletions
| diff --git a/src/gallium/drivers/i915/i915_context.h b/src/gallium/drivers/i915/i915_context.h index da769e7b29..499a727314 100644 --- a/src/gallium/drivers/i915/i915_context.h +++ b/src/gallium/drivers/i915/i915_context.h @@ -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:      */ diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c index 72bd263550..e5bf4a20bd 100644 --- a/src/gallium/drivers/i915/i915_screen.c +++ b/src/gallium/drivers/i915/i915_screen.c @@ -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; diff --git a/src/gallium/drivers/i915/i915_texture.c b/src/gallium/drivers/i915/i915_texture.c index 334959c46d..5b1f42313e 100644 --- a/src/gallium/drivers/i915/i915_texture.c +++ b/src/gallium/drivers/i915/i915_texture.c @@ -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]); | 
