freedreno: Allow resource shadowing for TC
authorRob Clark <robdclark@chromium.org>
Mon, 19 Apr 2021 18:07:15 +0000 (11:07 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 28 Apr 2021 15:36:42 +0000 (15:36 +0000)
TC_TRANSFER_MAP_NO_INVALIDATE just means we can't invalidate.  It
doesn't preclude the resource shadow path.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>

src/gallium/drivers/freedreno/freedreno_resource.c

index 41523a8..bac3e71 100644 (file)
@@ -814,7 +814,6 @@ resource_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc,
        */
       if (ctx->screen->reorder && busy && !(usage & PIPE_MAP_READ) &&
           (usage & PIPE_MAP_DISCARD_RANGE)) {
-         assert(!(usage & TC_TRANSFER_MAP_NO_INVALIDATE));
 
          /* try shadowing only if it avoids a flush, otherwise staging would
           * be better:
@@ -888,7 +887,6 @@ improve_transfer_map_usage(struct fd_context *ctx, struct fd_resource *rsc,
 {
    if (usage & TC_TRANSFER_MAP_NO_INVALIDATE) {
       usage &= ~PIPE_MAP_DISCARD_WHOLE_RESOURCE;
-      usage &= ~PIPE_MAP_DISCARD_RANGE;
    }
 
    if (usage & TC_TRANSFER_MAP_THREADED_UNSYNC)