From 6e628ee3f3cd250d58f1b49fc0b53db58cd8eeea Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Thu, 18 May 2017 16:30:02 +0200 Subject: [PATCH] etnaviv: don't read back resource if transfer discards contents Reduces bandwidth usage of transfers which discard the buffer contents, as well as skipping unnecessary command stream flushes and CPU/GPU synchronization. Signed-off-by: Lucas Stach Reviewed-by: Wladimir J. van der Laan --- src/gallium/drivers/etnaviv/etnaviv_transfer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_transfer.c b/src/gallium/drivers/etnaviv/etnaviv_transfer.c index 4ead6dff7f4..707029865a5 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_transfer.c +++ b/src/gallium/drivers/etnaviv/etnaviv_transfer.c @@ -197,7 +197,9 @@ etna_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc, return NULL; } - etna_copy_resource(pctx, trans->rsc, prsc, level, trans->rsc->last_level); + if (!(usage & PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE)) + etna_copy_resource(pctx, trans->rsc, prsc, level, + trans->rsc->last_level); /* Switch to using the temporary resource instead */ rsc = etna_resource(trans->rsc); -- 2.30.2