freedreno: swap ->valid when shadowing resources.
authorEmma Anholt <emma@anholt.net>
Tue, 22 Jun 2021 21:55:37 +0000 (14:55 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 30 Jun 2021 21:39:11 +0000 (21:39 +0000)
The valid flag indicates whether the bo has had any data written to it.
Failure to swap it meant that if for some reason we fell back to SW
mappings during the blit from shadow, the PIPE_MAP_READ staging blit would
get dropped.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11544>

src/gallium/drivers/freedreno/freedreno_resource.c

index 56df34f..95c5195 100644 (file)
@@ -442,6 +442,7 @@ fd_try_shadow_resource(struct fd_context *ctx, struct fd_resource *rsc,
        rsc->track, shadow, shadow->b.b.reference.count, shadow->track);
 
    swap(rsc->bo, shadow->bo);
+   swap(rsc->valid, shadow->valid);
    swap(rsc->layout, shadow->layout);
    rsc->seqno = p_atomic_inc_return(&ctx->screen->rsc_seqno);