aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-08-28 11:05:14 +0200
committerMarek Olšák <[email protected]>2016-09-06 14:24:04 +0200
commite7a73b75a0dbd599187b8980b2e1e1cb5dfdaf6d (patch)
tree4be0121e5c819988b8dbba24eebf8e6c8cdf1e55 /src/gallium/drivers
parent761ff403024e31aacb345efaa527377894724fad (diff)
gallium: switch drivers to the slab allocator in src/util
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_context.c6
-rw-r--r--src/gallium/drivers/freedreno/freedreno_context.h8
-rw-r--r--src/gallium/drivers/freedreno/freedreno_query_hw.c24
-rw-r--r--src/gallium/drivers/freedreno/freedreno_resource.c6
-rw-r--r--src/gallium/drivers/i915/i915_context.c8
-rw-r--r--src/gallium/drivers/i915/i915_context.h6
-rw-r--r--src/gallium/drivers/i915/i915_resource_buffer.c4
-rw-r--r--src/gallium/drivers/i915/i915_resource_texture.c4
-rw-r--r--src/gallium/drivers/ilo/ilo_context.c6
-rw-r--r--src/gallium/drivers/ilo/ilo_context.h4
-rw-r--r--src/gallium/drivers/ilo/ilo_transfer.c6
-rw-r--r--src/gallium/drivers/ilo/shader/toy_compiler.c8
-rw-r--r--src/gallium/drivers/ilo/shader/toy_compiler.h8
-rw-r--r--src/gallium/drivers/r300/r300_context.c7
-rw-r--r--src/gallium/drivers/r300/r300_context.h2
-rw-r--r--src/gallium/drivers/r300/r300_screen.h2
-rw-r--r--src/gallium/drivers/r300/r300_screen_buffer.c6
-rw-r--r--src/gallium/drivers/radeon/r600_buffer_common.c4
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.c7
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.h4
-rw-r--r--src/gallium/drivers/vc4/vc4_context.c6
-rw-r--r--src/gallium/drivers/vc4/vc4_context.h4
-rw-r--r--src/gallium/drivers/vc4/vc4_resource.c6
-rw-r--r--src/gallium/drivers/virgl/virgl_buffer.c4
-rw-r--r--src/gallium/drivers/virgl/virgl_context.c8
-rw-r--r--src/gallium/drivers/virgl/virgl_context.h4
-rw-r--r--src/gallium/drivers/virgl/virgl_texture.c4
27 files changed, 82 insertions, 84 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_context.c b/src/gallium/drivers/freedreno/freedreno_context.c
index ad62fd605dd..f8604f132ad 100644
--- a/src/gallium/drivers/freedreno/freedreno_context.c
+++ b/src/gallium/drivers/freedreno/freedreno_context.c
@@ -121,7 +121,7 @@ fd_context_destroy(struct pipe_context *pctx)
if (ctx->primconvert)
util_primconvert_destroy(ctx->primconvert);
- util_slab_destroy(&ctx->transfer_pool);
+ slab_destroy(&ctx->transfer_pool);
for (i = 0; i < ARRAY_SIZE(ctx->pipe); i++) {
struct fd_vsc_pipe *pipe = &ctx->pipe[i];
@@ -265,8 +265,8 @@ fd_context_init(struct fd_context *ctx, struct pipe_screen *pscreen,
ctx->batch = fd_bc_alloc_batch(&screen->batch_cache, ctx);
}
- util_slab_create(&ctx->transfer_pool, sizeof(struct fd_transfer),
- 16, UTIL_SLAB_SINGLETHREADED);
+ slab_create(&ctx->transfer_pool, sizeof(struct fd_transfer),
+ 16);
fd_draw_init(pctx);
fd_resource_context_init(pctx);
diff --git a/src/gallium/drivers/freedreno/freedreno_context.h b/src/gallium/drivers/freedreno/freedreno_context.h
index 037c199c245..e1b7b237ad3 100644
--- a/src/gallium/drivers/freedreno/freedreno_context.h
+++ b/src/gallium/drivers/freedreno/freedreno_context.h
@@ -33,7 +33,7 @@
#include "indices/u_primconvert.h"
#include "util/u_blitter.h"
#include "util/list.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "util/u_string.h"
#include "freedreno_batch.h"
@@ -121,11 +121,11 @@ struct fd_context {
struct primconvert_context *primconvert;
/* slab for pipe_transfer allocations: */
- struct util_slab_mempool transfer_pool;
+ struct slab_mempool transfer_pool;
/* slabs for fd_hw_sample and fd_hw_sample_period allocations: */
- struct util_slab_mempool sample_pool;
- struct util_slab_mempool sample_period_pool;
+ struct slab_mempool sample_pool;
+ struct slab_mempool sample_period_pool;
/* sample-providers for hw queries: */
const struct fd_hw_sample_provider *sample_providers[MAX_HW_SAMPLE_PROVIDERS];
diff --git a/src/gallium/drivers/freedreno/freedreno_query_hw.c b/src/gallium/drivers/freedreno/freedreno_query_hw.c
index e5ef51a0b98..470826a94c8 100644
--- a/src/gallium/drivers/freedreno/freedreno_query_hw.c
+++ b/src/gallium/drivers/freedreno/freedreno_query_hw.c
@@ -108,10 +108,10 @@ resume_query(struct fd_batch *batch, struct fd_hw_query *hq,
assert(idx >= 0); /* query never would have been created otherwise */
assert(!hq->period);
batch->active_providers |= (1 << idx);
- hq->period = util_slab_alloc(&batch->ctx->sample_period_pool);
+ hq->period = slab_alloc_st(&batch->ctx->sample_period_pool);
list_inithead(&hq->period->list);
hq->period->start = get_sample(batch, ring, hq->base.type);
- /* NOTE: util_slab_alloc() does not zero out the buffer: */
+ /* NOTE: slab_alloc_st() does not zero out the buffer: */
hq->period->end = NULL;
}
@@ -137,7 +137,7 @@ destroy_periods(struct fd_context *ctx, struct fd_hw_query *hq)
fd_hw_sample_reference(ctx, &period->start, NULL);
fd_hw_sample_reference(ctx, &period->end, NULL);
list_del(&period->list);
- util_slab_free(&ctx->sample_period_pool, period);
+ slab_free_st(&ctx->sample_period_pool, period);
}
}
@@ -339,13 +339,13 @@ fd_hw_create_query(struct fd_context *ctx, unsigned query_type)
struct fd_hw_sample *
fd_hw_sample_init(struct fd_batch *batch, uint32_t size)
{
- struct fd_hw_sample *samp = util_slab_alloc(&batch->ctx->sample_pool);
+ struct fd_hw_sample *samp = slab_alloc_st(&batch->ctx->sample_pool);
pipe_reference_init(&samp->reference, 1);
samp->size = size;
debug_assert(util_is_power_of_two(size));
batch->next_sample_offset = align(batch->next_sample_offset, size);
samp->offset = batch->next_sample_offset;
- /* NOTE: util_slab_alloc() does not zero out the buffer: */
+ /* NOTE: slab_alloc_st() does not zero out the buffer: */
samp->prsc = NULL;
samp->num_tiles = 0;
samp->tile_stride = 0;
@@ -376,7 +376,7 @@ void
__fd_hw_sample_destroy(struct fd_context *ctx, struct fd_hw_sample *samp)
{
pipe_resource_reference(&samp->prsc, NULL);
- util_slab_free(&ctx->sample_pool, samp);
+ slab_free_st(&ctx->sample_pool, samp);
}
/* called from gmem code once total storage requirements are known (ie.
@@ -486,10 +486,10 @@ fd_hw_query_init(struct pipe_context *pctx)
{
struct fd_context *ctx = fd_context(pctx);
- util_slab_create(&ctx->sample_pool, sizeof(struct fd_hw_sample),
- 16, UTIL_SLAB_SINGLETHREADED);
- util_slab_create(&ctx->sample_period_pool, sizeof(struct fd_hw_sample_period),
- 16, UTIL_SLAB_SINGLETHREADED);
+ slab_create(&ctx->sample_pool, sizeof(struct fd_hw_sample),
+ 16);
+ slab_create(&ctx->sample_period_pool, sizeof(struct fd_hw_sample_period),
+ 16);
list_inithead(&ctx->active_queries);
}
@@ -498,6 +498,6 @@ fd_hw_query_fini(struct pipe_context *pctx)
{
struct fd_context *ctx = fd_context(pctx);
- util_slab_destroy(&ctx->sample_pool);
- util_slab_destroy(&ctx->sample_period_pool);
+ slab_destroy(&ctx->sample_pool);
+ slab_destroy(&ctx->sample_period_pool);
}
diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c
index 2a4fd7442c8..3cc6654b740 100644
--- a/src/gallium/drivers/freedreno/freedreno_resource.c
+++ b/src/gallium/drivers/freedreno/freedreno_resource.c
@@ -425,7 +425,7 @@ fd_resource_transfer_unmap(struct pipe_context *pctx,
ptrans->box.x + ptrans->box.width);
pipe_resource_reference(&ptrans->resource, NULL);
- util_slab_free(&ctx->transfer_pool, ptrans);
+ slab_free_st(&ctx->transfer_pool, ptrans);
free(trans->staging);
}
@@ -451,11 +451,11 @@ fd_resource_transfer_map(struct pipe_context *pctx,
DBG("prsc=%p, level=%u, usage=%x, box=%dx%d+%d,%d", prsc, level, usage,
box->width, box->height, box->x, box->y);
- ptrans = util_slab_alloc(&ctx->transfer_pool);
+ ptrans = slab_alloc_st(&ctx->transfer_pool);
if (!ptrans)
return NULL;
- /* util_slab_alloc() doesn't zero: */
+ /* slab_alloc_st() doesn't zero: */
trans = fd_transfer(ptrans);
memset(trans, 0, sizeof(*trans));
diff --git a/src/gallium/drivers/i915/i915_context.c b/src/gallium/drivers/i915/i915_context.c
index 82798bbb543..f3324dbc229 100644
--- a/src/gallium/drivers/i915/i915_context.c
+++ b/src/gallium/drivers/i915/i915_context.c
@@ -177,10 +177,10 @@ i915_create_context(struct pipe_screen *screen, void *priv, unsigned flags)
i915->base.draw_vbo = i915_draw_vbo;
/* init this before draw */
- util_slab_create(&i915->transfer_pool, sizeof(struct pipe_transfer),
- 16, UTIL_SLAB_SINGLETHREADED);
- util_slab_create(&i915->texture_transfer_pool, sizeof(struct i915_transfer),
- 16, UTIL_SLAB_SINGLETHREADED);
+ slab_create(&i915->transfer_pool, sizeof(struct pipe_transfer),
+ 16);
+ slab_create(&i915->texture_transfer_pool, sizeof(struct i915_transfer),
+ 16);
/* Batch stream debugging is a bit hacked up at the moment:
*/
diff --git a/src/gallium/drivers/i915/i915_context.h b/src/gallium/drivers/i915/i915_context.h
index 2adaee30fb9..ea13834c15a 100644
--- a/src/gallium/drivers/i915/i915_context.h
+++ b/src/gallium/drivers/i915/i915_context.h
@@ -37,7 +37,7 @@
#include "tgsi/tgsi_scan.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "util/u_blitter.h"
@@ -278,8 +278,8 @@ struct i915_context {
struct i915_winsys_buffer *validation_buffers[2 + 1 + I915_TEX_UNITS];
int num_validation_buffers;
- struct util_slab_mempool transfer_pool;
- struct util_slab_mempool texture_transfer_pool;
+ struct slab_mempool transfer_pool;
+ struct slab_mempool texture_transfer_pool;
/* state for tracking flushes */
int last_fired_vertices;
diff --git a/src/gallium/drivers/i915/i915_resource_buffer.c b/src/gallium/drivers/i915/i915_resource_buffer.c
index 24c954cae34..2572fc40b2c 100644
--- a/src/gallium/drivers/i915/i915_resource_buffer.c
+++ b/src/gallium/drivers/i915/i915_resource_buffer.c
@@ -70,7 +70,7 @@ i915_buffer_transfer_map(struct pipe_context *pipe,
{
struct i915_context *i915 = i915_context(pipe);
struct i915_buffer *buffer = i915_buffer(resource);
- struct pipe_transfer *transfer = util_slab_alloc(&i915->transfer_pool);
+ struct pipe_transfer *transfer = slab_alloc_st(&i915->transfer_pool);
if (!transfer)
return NULL;
@@ -89,7 +89,7 @@ i915_buffer_transfer_unmap(struct pipe_context *pipe,
struct pipe_transfer *transfer)
{
struct i915_context *i915 = i915_context(pipe);
- util_slab_free(&i915->transfer_pool, transfer);
+ slab_free_st(&i915->transfer_pool, transfer);
}
void
diff --git a/src/gallium/drivers/i915/i915_resource_texture.c b/src/gallium/drivers/i915/i915_resource_texture.c
index f77bbfde181..4ade04f223c 100644
--- a/src/gallium/drivers/i915/i915_resource_texture.c
+++ b/src/gallium/drivers/i915/i915_resource_texture.c
@@ -721,7 +721,7 @@ i915_texture_transfer_map(struct pipe_context *pipe,
{
struct i915_context *i915 = i915_context(pipe);
struct i915_texture *tex = i915_texture(resource);
- struct i915_transfer *transfer = util_slab_alloc(&i915->texture_transfer_pool);
+ struct i915_transfer *transfer = slab_alloc_st(&i915->texture_transfer_pool);
boolean use_staging_texture = FALSE;
struct i915_winsys *iws = i915_screen(pipe->screen)->iws;
enum pipe_format format = resource->format;
@@ -814,7 +814,7 @@ i915_texture_transfer_unmap(struct pipe_context *pipe,
pipe_resource_reference(&itransfer->staging_texture, NULL);
}
- util_slab_free(&i915->texture_transfer_pool, itransfer);
+ slab_free_st(&i915->texture_transfer_pool, itransfer);
}
#if 0
diff --git a/src/gallium/drivers/ilo/ilo_context.c b/src/gallium/drivers/ilo/ilo_context.c
index 6bcd0bcb8f5..ad9120290af 100644
--- a/src/gallium/drivers/ilo/ilo_context.c
+++ b/src/gallium/drivers/ilo/ilo_context.c
@@ -129,7 +129,7 @@ ilo_context_destroy(struct pipe_context *pipe)
if (ilo->cp)
ilo_cp_destroy(ilo->cp);
- util_slab_destroy(&ilo->transfer_mempool);
+ slab_destroy(&ilo->transfer_mempool);
FREE(ilo);
}
@@ -151,8 +151,8 @@ ilo_context_create(struct pipe_screen *screen, void *priv, unsigned flags)
* initialize first, otherwise it may not be safe to call
* ilo_context_destroy() on errors
*/
- util_slab_create(&ilo->transfer_mempool,
- sizeof(struct ilo_transfer), 64, UTIL_SLAB_SINGLETHREADED);
+ slab_create(&ilo->transfer_mempool,
+ sizeof(struct ilo_transfer), 64);
ilo->shader_cache = ilo_shader_cache_create();
ilo->cp = ilo_cp_create(ilo->dev, ilo->winsys, ilo->shader_cache);
diff --git a/src/gallium/drivers/ilo/ilo_context.h b/src/gallium/drivers/ilo/ilo_context.h
index 1610358ecd3..25d338ade18 100644
--- a/src/gallium/drivers/ilo/ilo_context.h
+++ b/src/gallium/drivers/ilo/ilo_context.h
@@ -29,7 +29,7 @@
#define ILO_CONTEXT_H
#include "pipe/p_context.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "ilo_common.h"
#include "ilo_cp.h"
@@ -50,7 +50,7 @@ struct ilo_context {
struct intel_winsys *winsys;
struct ilo_dev *dev;
- struct util_slab_mempool transfer_mempool;
+ struct slab_mempool transfer_mempool;
struct ilo_cp *cp;
diff --git a/src/gallium/drivers/ilo/ilo_transfer.c b/src/gallium/drivers/ilo/ilo_transfer.c
index d243e38fbe2..87607ebe80d 100644
--- a/src/gallium/drivers/ilo/ilo_transfer.c
+++ b/src/gallium/drivers/ilo/ilo_transfer.c
@@ -1184,7 +1184,7 @@ ilo_transfer_unmap(struct pipe_context *pipe,
pipe_resource_reference(&xfer->base.resource, NULL);
- util_slab_free(&ilo->transfer_mempool, xfer);
+ slab_free_st(&ilo->transfer_mempool, xfer);
}
static void *
@@ -1200,7 +1200,7 @@ ilo_transfer_map(struct pipe_context *pipe,
void *ptr;
/* note that xfer is not zero'd */
- xfer = util_slab_alloc(&ilo->transfer_mempool);
+ xfer = slab_alloc_st(&ilo->transfer_mempool);
if (!xfer) {
*transfer = NULL;
return NULL;
@@ -1226,7 +1226,7 @@ ilo_transfer_map(struct pipe_context *pipe,
if (!ptr) {
pipe_resource_reference(&xfer->base.resource, NULL);
- util_slab_free(&ilo->transfer_mempool, xfer);
+ slab_free_st(&ilo->transfer_mempool, xfer);
*transfer = NULL;
return NULL;
}
diff --git a/src/gallium/drivers/ilo/shader/toy_compiler.c b/src/gallium/drivers/ilo/shader/toy_compiler.c
index 99f1ad1505f..4651c836b90 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler.c
+++ b/src/gallium/drivers/ilo/shader/toy_compiler.c
@@ -491,9 +491,9 @@ toy_compiler_cleanup(struct toy_compiler *tc)
struct toy_inst *inst, *next;
LIST_FOR_EACH_ENTRY_SAFE(inst, next, &tc->instructions, list)
- util_slab_free(&tc->mempool, inst);
+ slab_free_st(&tc->mempool, inst);
- util_slab_destroy(&tc->mempool);
+ slab_destroy(&tc->mempool);
}
/**
@@ -543,8 +543,8 @@ toy_compiler_init(struct toy_compiler *tc, const struct ilo_dev *dev)
tc_init_inst_templ(tc);
- util_slab_create(&tc->mempool, sizeof(struct toy_inst),
- 64, UTIL_SLAB_SINGLETHREADED);
+ slab_create(&tc->mempool, sizeof(struct toy_inst),
+ 64);
list_inithead(&tc->instructions);
/* instructions are added to the tail */
diff --git a/src/gallium/drivers/ilo/shader/toy_compiler.h b/src/gallium/drivers/ilo/shader/toy_compiler.h
index d9b56174baf..71f9deaa726 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler.h
+++ b/src/gallium/drivers/ilo/shader/toy_compiler.h
@@ -29,7 +29,7 @@
#define TOY_COMPILER_H
#include "genhw/genhw.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "ilo_common.h"
#include "toy_compiler_reg.h"
@@ -153,7 +153,7 @@ struct toy_compiler {
const struct ilo_dev *dev;
struct toy_inst templ;
- struct util_slab_mempool mempool;
+ struct slab_mempool mempool;
struct list_head instructions;
struct list_head *iter, *iter_next;
@@ -209,7 +209,7 @@ tc_duplicate_inst(struct toy_compiler *tc, const struct toy_inst *inst)
{
struct toy_inst *new_inst;
- new_inst = util_slab_alloc(&tc->mempool);
+ new_inst = slab_alloc_st(&tc->mempool);
if (!new_inst)
return NULL;
@@ -236,7 +236,7 @@ static inline void
tc_discard_inst(struct toy_compiler *tc, struct toy_inst *inst)
{
list_del(&inst->list);
- util_slab_free(&tc->mempool, inst);
+ slab_free_st(&tc->mempool, inst);
}
/**
diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c
index d100a9df55b..24d07f0b865 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -100,7 +100,7 @@ static void r300_destroy_context(struct pipe_context* context)
rc_destroy_regalloc_state(&r300->fs_regalloc_state);
/* XXX: No way to tell if this was initialized or not? */
- util_slab_destroy(&r300->pool_transfers);
+ slab_destroy(&r300->pool_transfers);
/* Free the structs allocated in r300_setup_atoms() */
if (r300->aa_state.state) {
@@ -377,9 +377,8 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen,
r300->context.destroy = r300_destroy_context;
- util_slab_create(&r300->pool_transfers,
- sizeof(struct pipe_transfer), 64,
- UTIL_SLAB_SINGLETHREADED);
+ slab_create(&r300->pool_transfers,
+ sizeof(struct pipe_transfer), 64);
r300->ctx = rws->ctx_create(rws);
if (!r300->ctx)
diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h
index a4783f396e1..592479a05a9 100644
--- a/src/gallium/drivers/r300/r300_context.h
+++ b/src/gallium/drivers/r300/r300_context.h
@@ -596,7 +596,7 @@ struct r300_context {
unsigned nr_vertex_buffers;
struct u_upload_mgr *uploader;
- struct util_slab_mempool pool_transfers;
+ struct slab_mempool pool_transfers;
/* Stat counter. */
uint64_t flush_counter;
diff --git a/src/gallium/drivers/r300/r300_screen.h b/src/gallium/drivers/r300/r300_screen.h
index e15c3c7de0c..5cd5a4005c3 100644
--- a/src/gallium/drivers/r300/r300_screen.h
+++ b/src/gallium/drivers/r300/r300_screen.h
@@ -27,7 +27,7 @@
#include "r300_chipset.h"
#include "radeon/radeon_winsys.h"
#include "pipe/p_screen.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "os/os_thread.h"
#include <stdio.h>
diff --git a/src/gallium/drivers/r300/r300_screen_buffer.c b/src/gallium/drivers/r300/r300_screen_buffer.c
index 069e9fdc6b0..4747058286e 100644
--- a/src/gallium/drivers/r300/r300_screen_buffer.c
+++ b/src/gallium/drivers/r300/r300_screen_buffer.c
@@ -77,7 +77,7 @@ r300_buffer_transfer_map( struct pipe_context *context,
struct pipe_transfer *transfer;
uint8_t *map;
- transfer = util_slab_alloc(&r300->pool_transfers);
+ transfer = slab_alloc_st(&r300->pool_transfers);
transfer->resource = resource;
transfer->level = level;
transfer->usage = usage;
@@ -129,7 +129,7 @@ r300_buffer_transfer_map( struct pipe_context *context,
map = rws->buffer_map(rbuf->buf, r300->cs, usage);
if (!map) {
- util_slab_free(&r300->pool_transfers, transfer);
+ slab_free_st(&r300->pool_transfers, transfer);
return NULL;
}
@@ -142,7 +142,7 @@ static void r300_buffer_transfer_unmap( struct pipe_context *pipe,
{
struct r300_context *r300 = r300_context(pipe);
- util_slab_free(&r300->pool_transfers, transfer);
+ slab_free_st(&r300->pool_transfers, transfer);
}
static const struct u_resource_vtbl r300_buffer_vtbl =
diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c
index 6a55de1fe29..a600793e3e6 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -283,7 +283,7 @@ static void *r600_buffer_get_transfer(struct pipe_context *ctx,
unsigned offset)
{
struct r600_common_context *rctx = (struct r600_common_context*)ctx;
- struct r600_transfer *transfer = util_slab_alloc(&rctx->pool_transfers);
+ struct r600_transfer *transfer = slab_alloc_st(&rctx->pool_transfers);
transfer->transfer.resource = resource;
transfer->transfer.level = level;
@@ -468,7 +468,7 @@ static void r600_buffer_transfer_unmap(struct pipe_context *ctx,
if (rtransfer->staging)
r600_resource_reference(&rtransfer->staging, NULL);
- util_slab_free(&rctx->pool_transfers, transfer);
+ slab_free_st(&rctx->pool_transfers, transfer);
}
void r600_buffer_subdata(struct pipe_context *ctx,
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 825e4e98658..6d7cc1b5d3c 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -431,9 +431,8 @@ bool r600_common_context_init(struct r600_common_context *rctx,
struct r600_common_screen *rscreen,
unsigned context_flags)
{
- util_slab_create(&rctx->pool_transfers,
- sizeof(struct r600_transfer), 64,
- UTIL_SLAB_SINGLETHREADED);
+ slab_create(&rctx->pool_transfers,
+ sizeof(struct r600_transfer), 64);
rctx->screen = rscreen;
rctx->ws = rscreen->ws;
@@ -533,7 +532,7 @@ void r600_common_context_cleanup(struct r600_common_context *rctx)
u_upload_destroy(rctx->uploader);
}
- util_slab_destroy(&rctx->pool_transfers);
+ slab_destroy(&rctx->pool_transfers);
if (rctx->allocator_zeroed_memory) {
u_suballocator_destroy(rctx->allocator_zeroed_memory);
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h
index aa40a54f43d..d9f22e49889 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -39,7 +39,7 @@
#include "util/u_blitter.h"
#include "util/list.h"
#include "util/u_range.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "util/u_suballoc.h"
#include "util/u_transfer.h"
@@ -527,7 +527,7 @@ struct r600_common_context {
struct u_upload_mgr *uploader;
struct u_suballocator *allocator_zeroed_memory;
- struct util_slab_mempool pool_transfers;
+ struct slab_mempool pool_transfers;
/* Current unaccounted memory usage. */
uint64_t vram;
diff --git a/src/gallium/drivers/vc4/vc4_context.c b/src/gallium/drivers/vc4/vc4_context.c
index eeadea0b1db..a85554a43dd 100644
--- a/src/gallium/drivers/vc4/vc4_context.c
+++ b/src/gallium/drivers/vc4/vc4_context.c
@@ -200,7 +200,7 @@ vc4_context_destroy(struct pipe_context *pctx)
if (vc4->uploader)
u_upload_destroy(vc4->uploader);
- util_slab_destroy(&vc4->transfer_pool);
+ slab_destroy(&vc4->transfer_pool);
pipe_surface_reference(&vc4->framebuffer.cbufs[0], NULL);
pipe_surface_reference(&vc4->framebuffer.zsbuf, NULL);
@@ -246,8 +246,8 @@ vc4_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
vc4->fd = screen->fd;
- util_slab_create(&vc4->transfer_pool, sizeof(struct vc4_transfer),
- 16, UTIL_SLAB_SINGLETHREADED);
+ slab_create(&vc4->transfer_pool, sizeof(struct vc4_transfer),
+ 16);
vc4->blitter = util_blitter_create(pctx);
if (!vc4->blitter)
goto fail;
diff --git a/src/gallium/drivers/vc4/vc4_context.h b/src/gallium/drivers/vc4/vc4_context.h
index 63a1dfbb15a..ce2c6d4e68e 100644
--- a/src/gallium/drivers/vc4/vc4_context.h
+++ b/src/gallium/drivers/vc4/vc4_context.h
@@ -29,7 +29,7 @@
#include "pipe/p_context.h"
#include "pipe/p_state.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#define __user
#include "vc4_drm.h"
@@ -238,7 +238,7 @@ struct vc4_context {
bool msaa;
/** @} */
- struct util_slab_mempool transfer_pool;
+ struct slab_mempool transfer_pool;
struct blitter_context *blitter;
/** bitfield of VC4_DIRTY_* */
diff --git a/src/gallium/drivers/vc4/vc4_resource.c b/src/gallium/drivers/vc4/vc4_resource.c
index 398aa8181df..0d4bb6477d6 100644
--- a/src/gallium/drivers/vc4/vc4_resource.c
+++ b/src/gallium/drivers/vc4/vc4_resource.c
@@ -121,7 +121,7 @@ vc4_resource_transfer_unmap(struct pipe_context *pctx,
}
pipe_resource_reference(&ptrans->resource, NULL);
- util_slab_free(&vc4->transfer_pool, ptrans);
+ slab_free_st(&vc4->transfer_pool, ptrans);
}
static struct pipe_resource *
@@ -194,13 +194,13 @@ vc4_resource_transfer_map(struct pipe_context *pctx,
if (usage & PIPE_TRANSFER_WRITE)
rsc->writes++;
- trans = util_slab_alloc(&vc4->transfer_pool);
+ trans = slab_alloc_st(&vc4->transfer_pool);
if (!trans)
return NULL;
/* XXX: Handle DONTBLOCK, DISCARD_RANGE, PERSISTENT, COHERENT. */
- /* util_slab_alloc() doesn't zero: */
+ /* slab_alloc_st() doesn't zero: */
memset(trans, 0, sizeof(*trans));
ptrans = &trans->base;
diff --git a/src/gallium/drivers/virgl/virgl_buffer.c b/src/gallium/drivers/virgl/virgl_buffer.c
index 153df8dd0c9..de997962845 100644
--- a/src/gallium/drivers/virgl/virgl_buffer.c
+++ b/src/gallium/drivers/virgl/virgl_buffer.c
@@ -62,7 +62,7 @@ static void *virgl_buffer_transfer_map(struct pipe_context *ctx,
if (doflushwait)
ctx->flush(ctx, NULL, 0);
- trans = util_slab_alloc(&vctx->texture_transfer_pool);
+ trans = slab_alloc_st(&vctx->texture_transfer_pool);
if (!trans)
return NULL;
@@ -114,7 +114,7 @@ static void virgl_buffer_transfer_unmap(struct pipe_context *ctx,
}
}
- util_slab_free(&vctx->texture_transfer_pool, trans);
+ slab_free_st(&vctx->texture_transfer_pool, trans);
}
static void virgl_buffer_transfer_flush_region(struct pipe_context *ctx,
diff --git a/src/gallium/drivers/virgl/virgl_context.c b/src/gallium/drivers/virgl/virgl_context.c
index 1bd7f3b6b52..a6c05975986 100644
--- a/src/gallium/drivers/virgl/virgl_context.c
+++ b/src/gallium/drivers/virgl/virgl_context.c
@@ -32,7 +32,7 @@
#include "util/u_format.h"
#include "util/u_transfer.h"
#include "util/u_helpers.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "util/u_upload_mgr.h"
#include "util/u_blitter.h"
#include "tgsi/tgsi_text.h"
@@ -862,7 +862,7 @@ virgl_context_destroy( struct pipe_context *ctx )
u_upload_destroy(vctx->uploader);
util_primconvert_destroy(vctx->primconvert);
- util_slab_destroy(&vctx->texture_transfer_pool);
+ slab_destroy(&vctx->texture_transfer_pool);
FREE(vctx);
}
@@ -943,8 +943,8 @@ struct pipe_context *virgl_context_create(struct pipe_screen *pscreen,
virgl_init_so_functions(vctx);
list_inithead(&vctx->to_flush_bufs);
- util_slab_create(&vctx->texture_transfer_pool, sizeof(struct virgl_transfer),
- 16, UTIL_SLAB_SINGLETHREADED);
+ slab_create(&vctx->texture_transfer_pool, sizeof(struct virgl_transfer),
+ 16);
vctx->primconvert = util_primconvert_create(&vctx->base, rs->caps.caps.v1.prim_mask);
vctx->uploader = u_upload_create(&vctx->base, 1024 * 1024,
diff --git a/src/gallium/drivers/virgl/virgl_context.h b/src/gallium/drivers/virgl/virgl_context.h
index adb8adef33c..3b9901f7e11 100644
--- a/src/gallium/drivers/virgl/virgl_context.h
+++ b/src/gallium/drivers/virgl/virgl_context.h
@@ -25,7 +25,7 @@
#include "pipe/p_state.h"
#include "pipe/p_context.h"
-#include "util/u_slab.h"
+#include "util/slab.h"
#include "util/list.h"
struct pipe_screen;
@@ -56,7 +56,7 @@ struct virgl_context {
struct pipe_framebuffer_state framebuffer;
- struct util_slab_mempool texture_transfer_pool;
+ struct slab_mempool texture_transfer_pool;
struct pipe_index_buffer index_buffer;
struct u_upload_mgr *uploader;
diff --git a/src/gallium/drivers/virgl/virgl_texture.c b/src/gallium/drivers/virgl/virgl_texture.c
index 64b6744462d..24bbc3ce60b 100644
--- a/src/gallium/drivers/virgl/virgl_texture.c
+++ b/src/gallium/drivers/virgl/virgl_texture.c
@@ -145,7 +145,7 @@ static void *virgl_texture_transfer_map(struct pipe_context *ctx,
if (doflushwait)
ctx->flush(ctx, NULL, 0);
- trans = util_slab_alloc(&vctx->texture_transfer_pool);
+ trans = slab_alloc_st(&vctx->texture_transfer_pool);
if (!trans)
return NULL;
@@ -235,7 +235,7 @@ static void virgl_texture_transfer_unmap(struct pipe_context *ctx,
if (trans->resolve_tmp)
pipe_resource_reference((struct pipe_resource **)&trans->resolve_tmp, NULL);
- util_slab_free(&vctx->texture_transfer_pool, trans);
+ slab_free_st(&vctx->texture_transfer_pool, trans);
}