if ((trans->rsc && (etna_resource(trans->rsc)->status & ETNA_PENDING_WRITE)) ||
(!trans->rsc &&
(((usage & PIPE_TRANSFER_READ) && (rsc->status & ETNA_PENDING_WRITE)) ||
- ((usage & PIPE_TRANSFER_WRITE) && rsc->status))))
- pctx->flush(pctx, NULL, 0);
+ ((usage & PIPE_TRANSFER_WRITE) && rsc->status)))) {
+ set_foreach(rsc->pending_ctx, entry) {
+ struct etna_context *pend_ctx = (struct etna_context *)entry->key;
+ struct pipe_context *pend_pctx = &pend_ctx->base;
+
+ pend_pctx->flush(pend_pctx, NULL, 0);
+ }
+ }
mtx_unlock(&screen->lock);