summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon/r600_pipe_common.c
diff options
context:
space:
mode:
authorNicolai Hähnle <nicolai.haehnle@amd.com>2016-09-27 18:53:45 +0200
committerNicolai Hähnle <nicolai.haehnle@amd.com>2016-10-05 15:42:07 +0200
commite56e1f8119f28eebbe6fbe7040c80a6dd884f5fd (patch)
treeea14662302bf6e4fff76680124a380191b01811a /src/gallium/drivers/radeon/r600_pipe_common.c
parentd8cff811dfb0172684fe3ec01c98fc847b0c17a7 (diff)
downloadexternal_mesa3d-e56e1f8119f28eebbe6fbe7040c80a6dd884f5fd.zip
external_mesa3d-e56e1f8119f28eebbe6fbe7040c80a6dd884f5fd.tar.gz
external_mesa3d-e56e1f8119f28eebbe6fbe7040c80a6dd884f5fd.tar.bz2
gallium/radeon: use the new parent/child pools for transfers
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97894 Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeon/r600_pipe_common.c')
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 9e03aaa..3a5a854 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -488,8 +488,7 @@ bool r600_common_context_init(struct r600_common_context *rctx,
struct r600_common_screen *rscreen,
unsigned context_flags)
{
- slab_create(&rctx->pool_transfers,
- sizeof(struct r600_transfer), 64);
+ slab_create_child(&rctx->pool_transfers, &rscreen->pool_transfers);
rctx->screen = rscreen;
rctx->ws = rscreen->ws;
@@ -590,7 +589,7 @@ void r600_common_context_cleanup(struct r600_common_context *rctx)
u_upload_destroy(rctx->uploader);
}
- slab_destroy(&rctx->pool_transfers);
+ slab_destroy_child(&rctx->pool_transfers);
if (rctx->allocator_zeroed_memory) {
u_suballocator_destroy(rctx->allocator_zeroed_memory);
@@ -1183,6 +1182,8 @@ bool r600_common_screen_init(struct r600_common_screen *rscreen,
rscreen->chip_class = rscreen->info.chip_class;
rscreen->debug_flags = debug_get_flags_option("R600_DEBUG", common_debug_options, 0);
+ slab_create_parent(&rscreen->pool_transfers, sizeof(struct r600_transfer), 64);
+
rscreen->force_aniso = MIN2(16, debug_get_num_option("R600_TEX_ANISO", -1));
if (rscreen->force_aniso >= 0) {
printf("radeon: Forcing anisotropy filter to %ix\n",
@@ -1242,6 +1243,8 @@ void r600_destroy_common_screen(struct r600_common_screen *rscreen)
pipe_mutex_destroy(rscreen->aux_context_lock);
rscreen->aux_context->destroy(rscreen->aux_context);
+ slab_destroy_parent(&rscreen->pool_transfers);
+
rscreen->ws->destroy(rscreen->ws);
FREE(rscreen);
}