diff options
| author | Jakob Bornecrantz <wallbraker@gmail.com> | 2011-02-20 12:52:11 +0100 | 
|---|---|---|
| committer | Jakob Bornecrantz <wallbraker@gmail.com> | 2011-02-21 23:42:53 +0000 | 
| commit | 3c74ecf687a7b23d7fcb5436722a3f4892034e0a (patch) | |
| tree | 7b446c44f7671fad97209452a2fb069e94dbb4f8 | |
| parent | e7e1fd057e8cc78e7039637d045ac922bb82b8d8 (diff) | |
i915g: Rework texture tiling a bit
| -rw-r--r-- | src/gallium/drivers/i915/i915_resource_texture.c | 22 | 
1 files changed, 8 insertions, 14 deletions
diff --git a/src/gallium/drivers/i915/i915_resource_texture.c b/src/gallium/drivers/i915/i915_resource_texture.c index e793d126ad..12790a3d78 100644 --- a/src/gallium/drivers/i915/i915_resource_texture.c +++ b/src/gallium/drivers/i915/i915_resource_texture.c @@ -172,15 +172,15 @@ i915_texture_set_image_offset(struct i915_texture *tex,  }  static enum i915_winsys_buffer_tile -i915_texture_tiling(struct pipe_resource *pt) +i915_texture_tiling(struct i915_screen *is, struct i915_texture *tex)  {     if (!i915_tiling)        return I915_TILE_NONE; -   if (pt->target == PIPE_TEXTURE_1D) +   if (tex->b.b.target == PIPE_TEXTURE_1D)        return I915_TILE_NONE; -   if (util_format_is_s3tc(pt->format)) +   if (util_format_is_s3tc(tex->b.b.format))        /* XXX X-tiling might make sense */        return I915_TILE_NONE; @@ -401,11 +401,7 @@ i915_texture_layout_3d(struct i915_texture *tex)  static boolean  i915_texture_layout(struct i915_texture * tex)  { -   struct pipe_resource *pt = &tex->b.b; - -   tex->tiling = i915_texture_tiling(pt); - -   switch (pt->target) { +   switch (tex->b.b.target) {     case PIPE_TEXTURE_1D:     case PIPE_TEXTURE_2D:     case PIPE_TEXTURE_RECT: @@ -649,11 +645,7 @@ i945_texture_layout_cube(struct i915_texture *tex)  static boolean  i945_texture_layout(struct i915_texture * tex)  { -   struct pipe_resource *pt = &tex->b.b; - -   tex->tiling = i915_texture_tiling(pt); - -   switch (pt->target) { +   switch (tex->b.b.target) {     case PIPE_TEXTURE_1D:     case PIPE_TEXTURE_2D:     case PIPE_TEXTURE_RECT: @@ -664,7 +656,7 @@ i945_texture_layout(struct i915_texture * tex)        i945_texture_layout_3d(tex);        break;     case PIPE_TEXTURE_CUBE: -      if (!util_format_is_s3tc(pt->format)) +      if (!util_format_is_s3tc(tex->b.b.format))           i9x5_texture_layout_cube(tex);        else           i945_texture_layout_cube(tex); @@ -818,6 +810,8 @@ i915_texture_create(struct pipe_screen *screen,     pipe_reference_init(&tex->b.b.reference, 1);     tex->b.b.screen = screen; +   tex->tiling = i915_texture_tiling(is, tex); +     if (is->is_i945) {        if (!i945_texture_layout(tex))           goto fail;  | 
