Ver código fonte

fix leak, fix refcount error

tags/mesa_20090313
Brian 18 anos atrás
pai
commit
6656864135
1 arquivos alterados com 11 adições e 6 exclusões
  1. 11
    6
      src/mesa/pipe/softpipe/sp_tile_cache.c

+ 11
- 6
src/mesa/pipe/softpipe/sp_tile_cache.c Ver arquivo

@@ -126,9 +126,17 @@ void
sp_destroy_tile_cache(struct softpipe_tile_cache *tc)
{
uint pos;

for (pos = 0; pos < NUM_ENTRIES; pos++) {
assert(tc->entries[pos].x < 0);
//assert(tc->entries[pos].x < 0);
}
if (tc->surface) {
pipe_surface_reference(&tc->surface, NULL);
}
if (tc->tex_surf) {
pipe_surface_reference(&tc->tex_surf, NULL);
}

FREE( tc );
}

@@ -466,15 +474,12 @@ sp_get_cached_tile_tex(struct pipe_context *pipe,
tc->tex_level != level ||
tc->tex_z != z) {
/* get new surface (view into texture) */
struct pipe_surface *ps;

if (tc->tex_surf && tc->tex_surf->map)
pipe_surface_unmap(tc->tex_surf);

ps = pipe->get_tex_surface(pipe, tc->texture, face, level, z);
pipe_surface_reference(&tc->tex_surf, ps);

pipe_surface_map(ps);
tc->tex_surf = pipe->get_tex_surface(pipe, tc->texture, face, level, z);
pipe_surface_map(tc->tex_surf);

tc->tex_face = face;
tc->tex_level = level;

Carregando…
Cancelar
Salvar