diff options
author | Marek Olšák <[email protected]> | 2017-02-15 19:50:15 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-02-18 01:22:08 +0100 |
commit | ac6007460adaf4bb21028a3281ec622d1e43df49 (patch) | |
tree | 01ee6b099afebfdbb3b784d2404517f067745d30 /src/gallium/drivers/radeon/r600_pipe_common.c | |
parent | a550fbb510c998a0e484e9bf996e2d884ce3230e (diff) |
radeonsi: upload constants into VRAM instead of GTT
This lowers lgkm wait cycles by 30% on VI and normal conditions.
The might be a measurable improvement when CE is disabled (radeon)
or under L2 thrashing.
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeon/r600_pipe_common.c')
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index d573b39d7c0..1781584f5ff 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -607,7 +607,11 @@ bool r600_common_context_init(struct r600_common_context *rctx, 0, PIPE_USAGE_STREAM); if (!rctx->b.stream_uploader) return false; - rctx->b.const_uploader = rctx->b.stream_uploader; + + rctx->b.const_uploader = u_upload_create(&rctx->b, 128 * 1024, + 0, PIPE_USAGE_DEFAULT); + if (!rctx->b.const_uploader) + return false; rctx->ctx = rctx->ws->ctx_create(rctx->ws); if (!rctx->ctx) @@ -649,9 +653,10 @@ void r600_common_context_cleanup(struct r600_common_context *rctx) if (rctx->ctx) rctx->ws->ctx_destroy(rctx->ctx); - if (rctx->b.stream_uploader) { + if (rctx->b.stream_uploader) u_upload_destroy(rctx->b.stream_uploader); - } + if (rctx->b.const_uploader) + u_upload_destroy(rctx->b.const_uploader); slab_destroy_child(&rctx->pool_transfers); |