Пример #1
0
static void r300_texture_destroy(struct pipe_screen *screen,
				 struct pipe_resource* texture)
{
    struct r300_texture* tex = (struct r300_texture*)texture;
    struct r300_winsys_screen *rws = (struct r300_winsys_screen *)texture->screen->winsys;
    int i;

    rws->buffer_reference(rws, &tex->buffer, NULL);
    for (i = 0; i < R300_MAX_TEXTURE_LEVELS; i++) {
        if (tex->hiz_mem[i])
            u_mmFreeMem(tex->hiz_mem[i]);
        if (tex->zmask_mem[i])
            u_mmFreeMem(tex->zmask_mem[i]);
    }

    FREE(tex);
}
Пример #2
0
static void
mm_buffer_destroy(struct pb_buffer *buf)
{
   struct mm_buffer *mm_buf = mm_buffer(buf);
   struct mm_pb_manager *mm = mm_buf->mgr;
   
   assert(!pipe_is_referenced(&mm_buf->base.reference));
   
   mtx_lock(&mm->mutex);
   u_mmFreeMem(mm_buf->block);
   FREE(mm_buf);
   mtx_unlock(&mm->mutex);
}
Пример #3
0
void 
rtasm_exec_free(void *addr)
{
   pipe_mutex_lock(exec_mutex);

   if (exec_heap) {
      struct mem_block *block = u_mmFindBlock(exec_heap, (unsigned char *)addr - exec_mem);
   
      if (block)
	 u_mmFreeMem(block);
   }

   pipe_mutex_unlock(exec_mutex);
}