summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/etnaviv/etnaviv_transfer.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2019-09-05 20:02:58 +0200
committerLucas Stach <dev@lynxeye.de>2019-10-18 17:03:25 +0000
commite5cc66dfad0a811338ef088b9b4be17cadc01dea (patch)
tree381502ae0af23bcaa046bdc5e7fa9da55469d5dc /src/gallium/drivers/etnaviv/etnaviv_transfer.c
parent0c38c5454b34af6746b63210f9eb43a40316333e (diff)
etnaviv: Rework locking
Replace the per-screen locking of flushing with per-context one and add per-context lock around command stream buffer accesses, to prevent cross-context flushing from corrupting these command stream buffers. Signed-off-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'src/gallium/drivers/etnaviv/etnaviv_transfer.c')
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_transfer.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_transfer.c b/src/gallium/drivers/etnaviv/etnaviv_transfer.c
index b203b1aadfb..8b6466d5269 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_transfer.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_transfer.c
@@ -355,7 +355,7 @@ etna_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc,
* current GPU usage (reads must wait for GPU writes, writes must have
* exclusive access to the buffer).
*/
- mtx_lock(&screen->lock);
+ mtx_lock(&ctx->lock);
if ((trans->rsc && (etna_resource(trans->rsc)->status & ETNA_PENDING_WRITE)) ||
(!trans->rsc &&
@@ -369,7 +369,7 @@ etna_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc,
}
}
- mtx_unlock(&screen->lock);
+ mtx_unlock(&ctx->lock);
if (usage & PIPE_TRANSFER_READ)
prep_flags |= DRM_ETNA_PREP_READ;