etnaviv: move buffer range tracking into the PIPE_MAP_WRITE clause
authorLucas Stach <l.stach@pengutronix.de>
Fri, 14 Jul 2023 16:50:46 +0000 (18:50 +0200)
committerMarge Bot <emma+marge@anholt.net>
Mon, 17 Jul 2023 09:27:13 +0000 (09:27 +0000)
Move the valid buffer range tracking next to all the other things we
do on write mapping.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

src/gallium/drivers/etnaviv/etnaviv_transfer.c

index d6b9e25..2d0054e 100644 (file)
@@ -167,6 +167,10 @@ etna_transfer_unmap(struct pipe_context *pctx, struct pipe_transfer *ptrans)
          FREE(trans->staging);
       }
 
+      if (ptrans->resource->target == PIPE_BUFFER)
+         util_range_add(&rsc->base, &rsc->valid_buffer_range,
+                        ptrans->box.x, ptrans->box.x + ptrans->box.width);
+
       etna_resource_level_ts_mark_invalid(res_level);
       etna_resource_level_mark_changed(res_level);
 
@@ -186,14 +190,6 @@ etna_transfer_unmap(struct pipe_context *pctx, struct pipe_transfer *ptrans)
    if (!trans->rsc && !(ptrans->usage & PIPE_MAP_UNSYNCHRONIZED))
       etna_bo_cpu_fini(rsc->bo);
 
-   if ((ptrans->resource->target == PIPE_BUFFER) &&
-       (ptrans->usage & PIPE_MAP_WRITE)) {
-      util_range_add(&rsc->base,
-                     &rsc->valid_buffer_range,
-                     ptrans->box.x,
-                     ptrans->box.x + ptrans->box.width);
-      }
-
    pipe_resource_reference(&trans->rsc, NULL);
    pipe_resource_reference(&ptrans->resource, NULL);
    slab_free(&ctx->transfer_pool, trans);