[Mesa-dev] [PATCH 1/4] radeonsi: use copy_buffer in buffer_do_flush_region directly
Marek Olšák
maraeo at gmail.com
Sun Oct 7 07:05:47 UTC 2018
From: Marek Olšák <marek.olsak at amd.com>
---
src/gallium/drivers/radeonsi/si_buffer.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_buffer.c b/src/gallium/drivers/radeonsi/si_buffer.c
index a03a94453a4..c7260e06ccf 100644
--- a/src/gallium/drivers/radeonsi/si_buffer.c
+++ b/src/gallium/drivers/radeonsi/si_buffer.c
@@ -514,32 +514,25 @@ static void *si_buffer_transfer_map(struct pipe_context *ctx,
}
static void si_buffer_do_flush_region(struct pipe_context *ctx,
struct pipe_transfer *transfer,
const struct pipe_box *box)
{
struct si_transfer *stransfer = (struct si_transfer*)transfer;
struct r600_resource *rbuffer = r600_resource(transfer->resource);
if (stransfer->staging) {
- struct pipe_resource *dst, *src;
- unsigned soffset;
- struct pipe_box dma_box;
-
- dst = transfer->resource;
- src = &stransfer->staging->b.b;
- soffset = stransfer->offset + box->x % SI_MAP_BUFFER_ALIGNMENT;
-
- u_box_1d(soffset, box->width, &dma_box);
-
/* Copy the staging buffer into the original one. */
- ctx->resource_copy_region(ctx, dst, 0, box->x, 0, 0, src, 0, &dma_box);
+ si_copy_buffer((struct si_context*)ctx, transfer->resource,
+ &stransfer->staging->b.b, box->x,
+ stransfer->offset + box->x % SI_MAP_BUFFER_ALIGNMENT,
+ box->width);
}
util_range_add(&rbuffer->valid_buffer_range, box->x,
box->x + box->width);
}
static void si_buffer_flush_region(struct pipe_context *ctx,
struct pipe_transfer *transfer,
const struct pipe_box *rel_box)
{
--
2.17.1
More information about the mesa-dev
mailing list