cell: remove old code, clean-ups, etc.

This commit is contained in:
Brian Paul 2008-10-14 10:05:23 -06:00
parent 5d4f3b8417
commit b7609be0f1
4 changed files with 35 additions and 44 deletions

View file

@ -128,7 +128,6 @@ cell_create_context(struct pipe_screen *screen,
cell_init_state_functions(cell);
cell_init_shader_functions(cell);
cell_init_surface_functions(cell);
cell_init_texture_functions(cell);
cell_init_vertex_functions(cell);
cell->draw = cell_draw_create(cell);

View file

@ -258,7 +258,7 @@ cell_set_sampler_textures(struct pipe_context *pipe,
}
cell->num_textures = num;
cell_update_texture_mapping(cell);
cell_update_texture_mapping(cell); /* XXX temporary! */
cell->dirty |= CELL_NEW_TEXTURE;
}

View file

@ -52,15 +52,15 @@ static unsigned minify( unsigned d )
static void
cell_texture_layout(struct cell_texture * spt)
cell_texture_layout(struct cell_texture *ct)
{
struct pipe_texture *pt = &spt->base;
struct pipe_texture *pt = &ct->base;
unsigned level;
unsigned width = pt->width[0];
unsigned height = pt->height[0];
unsigned depth = pt->depth[0];
spt->buffer_size = 0;
ct->buffer_size = 0;
for ( level = 0 ; level <= pt->last_level ; level++ ) {
unsigned size;
@ -78,9 +78,9 @@ cell_texture_layout(struct cell_texture * spt)
pt->nblocksx[level] = pf_get_nblocksx(&pt->block, w_tile);
pt->nblocksy[level] = pf_get_nblocksy(&pt->block, h_tile);
spt->stride[level] = pt->nblocksx[level] * pt->block.size;
ct->stride[level] = pt->nblocksx[level] * pt->block.size;
spt->level_offset[level] = spt->buffer_size;
ct->level_offset[level] = ct->buffer_size;
size = pt->nblocksx[level] * pt->nblocksy[level] * pt->block.size;
if (pt->target == PIPE_TEXTURE_CUBE)
@ -88,7 +88,7 @@ cell_texture_layout(struct cell_texture * spt)
else
size *= depth;
spt->buffer_size += size;
ct->buffer_size += size;
width = minify(width);
height = minify(height);
@ -102,26 +102,25 @@ cell_texture_create(struct pipe_screen *screen,
const struct pipe_texture *templat)
{
struct pipe_winsys *ws = screen->winsys;
struct cell_texture *spt = CALLOC_STRUCT(cell_texture);
if (!spt)
struct cell_texture *ct = CALLOC_STRUCT(cell_texture);
if (!ct)
return NULL;
spt->base = *templat;
spt->base.refcount = 1;
spt->base.screen = screen;
ct->base = *templat;
ct->base.refcount = 1;
ct->base.screen = screen;
cell_texture_layout(spt);
cell_texture_layout(ct);
spt->buffer = ws->buffer_create(ws, 32,
PIPE_BUFFER_USAGE_PIXEL,
spt->buffer_size);
ct->buffer = ws->buffer_create(ws, 32, PIPE_BUFFER_USAGE_PIXEL,
ct->buffer_size);
if (!spt->buffer) {
FREE(spt);
if (!ct->buffer) {
FREE(ct);
return NULL;
}
return &spt->base;
return &ct->base;
}
@ -137,15 +136,15 @@ cell_texture_release(struct pipe_screen *screen,
__FUNCTION__, (void *) *pt, (*pt)->refcount - 1);
*/
if (--(*pt)->refcount <= 0) {
struct cell_texture *spt = cell_texture(*pt);
struct cell_texture *ct = cell_texture(*pt);
/*
DBG("%s deleting %p\n", __FUNCTION__, (void *) spt);
DBG("%s deleting %p\n", __FUNCTION__, (void *) ct);
*/
pipe_buffer_reference(screen, &spt->buffer, NULL);
pipe_buffer_reference(screen, &ct->buffer, NULL);
FREE(spt);
FREE(ct);
}
*pt = NULL;
}
@ -169,22 +168,22 @@ cell_get_tex_surface(struct pipe_screen *screen,
unsigned usage)
{
struct pipe_winsys *ws = screen->winsys;
struct cell_texture *spt = cell_texture(pt);
struct cell_texture *ct = cell_texture(pt);
struct pipe_surface *ps;
ps = ws->surface_alloc(ws);
if (ps) {
assert(ps->refcount);
assert(ps->winsys);
winsys_buffer_reference(ws, &ps->buffer, spt->buffer);
winsys_buffer_reference(ws, &ps->buffer, ct->buffer);
ps->format = pt->format;
ps->block = pt->block;
ps->width = pt->width[level];
ps->height = pt->height[level];
ps->nblocksx = pt->nblocksx[level];
ps->nblocksy = pt->nblocksy[level];
ps->stride = spt->stride[level];
ps->offset = spt->level_offset[level];
ps->stride = ct->stride[level];
ps->offset = ct->level_offset[level];
ps->usage = usage;
/* XXX may need to override usage flags (see sp_texture.c) */
@ -268,11 +267,13 @@ cell_tile_texture(struct cell_context *cell,
assert(w % TILE_SIZE == 0);
assert(h % TILE_SIZE == 0);
surf = screen->get_tex_surface(screen, &texture->base, face, level, zslice,
surf = screen->get_tex_surface(screen, &texture->base, face,
level, zslice,
PIPE_BUFFER_USAGE_CPU_WRITE);
ASSERT(surf);
src = (const uint *) pipe_surface_map(surf, PIPE_BUFFER_USAGE_CPU_WRITE);
src = (const uint *) pipe_surface_map(surf,
PIPE_BUFFER_USAGE_CPU_WRITE);
if (texture->tiled_data[level]) {
align_free(texture->tiled_data[level]);
@ -289,6 +290,7 @@ cell_tile_texture(struct cell_context *cell,
}
/** XXX temporary hack */
void
cell_update_texture_mapping(struct cell_context *cell)
{
@ -335,9 +337,9 @@ cell_tex_surface_release(struct pipe_screen *screen,
static void *
cell_surface_map( struct pipe_screen *screen,
struct pipe_surface *surface,
unsigned flags )
cell_surface_map(struct pipe_screen *screen,
struct pipe_surface *surface,
unsigned flags)
{
ubyte *map;
@ -364,7 +366,7 @@ cell_surface_map( struct pipe_screen *screen,
#endif
}
return map + surface->offset;
return (void *) (map + surface->offset);
}
@ -376,12 +378,6 @@ cell_surface_unmap(struct pipe_screen *screen,
}
void
cell_init_texture_functions(struct cell_context *cell)
{
/*cell->pipe.texture_update = cell_texture_update;*/
}
void
cell_init_screen_texture_funcs(struct pipe_screen *screen)

View file

@ -65,10 +65,6 @@ extern void
cell_update_texture_mapping(struct cell_context *cell);
extern void
cell_init_texture_functions(struct cell_context *cell);
extern void
cell_init_screen_texture_funcs(struct pipe_screen *screen);