summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-08-01 17:04:29 +0200
committerMarek Olšák <[email protected]>2012-08-04 14:05:51 +0200
commite6dfc8c77bc00c06a35270a4e50aa52c738c8629 (patch)
tree993efee1797ddd0031e629e52ecf3ab73452bda0
parent581f7e3101980a4e1068bb75c2eca60bb2071229 (diff)
r600g: simplify create_surface
-rw-r--r--src/gallium/drivers/r600/r600_texture.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 81b5777c082..507dc16752b 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -64,15 +64,6 @@ unsigned r600_texture_get_offset(struct r600_resource_texture *rtex,
return rtex->offset[level] + layer * rtex->layer_size[level];
}
-static unsigned mip_minify(unsigned size, unsigned level)
-{
- unsigned val;
- val = u_minify(size, level);
- if (level > 0)
- val = util_next_power_of_two(val);
- return val;
-}
-
static int r600_init_surface(struct r600_screen *rscreen,
struct radeon_surface *surface,
const struct pipe_resource *ptex,
@@ -351,25 +342,22 @@ struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
static struct pipe_surface *r600_create_surface(struct pipe_context *pipe,
struct pipe_resource *texture,
- const struct pipe_surface *surf_tmpl)
+ const struct pipe_surface *templ)
{
struct r600_surface *surface = CALLOC_STRUCT(r600_surface);
- unsigned level = surf_tmpl->u.tex.level;
+ unsigned level = templ->u.tex.level;
- assert(surf_tmpl->u.tex.first_layer == surf_tmpl->u.tex.last_layer);
+ assert(templ->u.tex.first_layer == templ->u.tex.last_layer);
if (surface == NULL)
return NULL;
pipe_reference_init(&surface->base.reference, 1);
pipe_resource_reference(&surface->base.texture, texture);
surface->base.context = pipe;
- surface->base.format = surf_tmpl->format;
- surface->base.width = mip_minify(texture->width0, level);
- surface->base.height = mip_minify(texture->height0, level);
- surface->base.usage = surf_tmpl->usage;
- surface->base.texture = texture;
- surface->base.u.tex.first_layer = surf_tmpl->u.tex.first_layer;
- surface->base.u.tex.last_layer = surf_tmpl->u.tex.last_layer;
- surface->base.u.tex.level = level;
+ surface->base.format = templ->format;
+ surface->base.width = u_minify(texture->width0, level);
+ surface->base.height = u_minify(texture->height0, level);
+ surface->base.usage = templ->usage;
+ surface->base.u = templ->u;
return &surface->base;
}