rc_destroy_regalloc_state(&r300->fs_regalloc_state);
/* XXX: No way to tell if this was initialized or not? */
- slab_destroy(&r300->pool_transfers);
+ slab_destroy_child(&r300->pool_transfers);
/* Free the structs allocated in r300_setup_atoms() */
if (r300->aa_state.state) {
r300->context.destroy = r300_destroy_context;
- slab_create(&r300->pool_transfers,
- sizeof(struct pipe_transfer), 64);
+ slab_create_child(&r300->pool_transfers, &r300screen->pool_transfers);
r300->ctx = rws->ctx_create(rws);
if (!r300->ctx)
unsigned nr_vertex_buffers;
struct u_upload_mgr *uploader;
- struct slab_mempool pool_transfers;
+ struct slab_child_pool pool_transfers;
/* Stat counter. */
uint64_t flush_counter;
return;
pipe_mutex_destroy(r300screen->cmask_mutex);
+ slab_destroy_parent(&r300screen->pool_transfers);
if (rws)
rws->destroy(rws);
r300_init_screen_resource_functions(r300screen);
+ slab_create_parent(&r300screen->pool_transfers, sizeof(struct pipe_transfer), 64);
+
util_format_s3tc_init();
pipe_mutex_init(r300screen->cmask_mutex);
/** Combination of DBG_xxx flags */
unsigned debug;
+ struct slab_parent_pool pool_transfers;
+
/* The MSAA texture with CMASK access; */
struct pipe_resource *cmask_resource;
pipe_mutex cmask_mutex;
struct pipe_transfer *transfer;
uint8_t *map;
- transfer = slab_alloc_st(&r300->pool_transfers);
+ transfer = slab_alloc(&r300->pool_transfers);
transfer->resource = resource;
transfer->level = level;
transfer->usage = usage;
map = rws->buffer_map(rbuf->buf, r300->cs, usage);
if (!map) {
- slab_free_st(&r300->pool_transfers, transfer);
+ slab_free(&r300->pool_transfers, transfer);
return NULL;
}
{
struct r300_context *r300 = r300_context(pipe);
- slab_free_st(&r300->pool_transfers, transfer);
+ slab_free(&r300->pool_transfers, transfer);
}
static const struct u_resource_vtbl r300_buffer_vtbl =