freedreno: swap UBWC state in shadow path
authorRob Clark <robdclark@chromium.org>
Fri, 7 Jun 2019 16:29:53 +0000 (09:29 -0700)
committerRob Clark <robdclark@chromium.org>
Tue, 11 Jun 2019 17:55:27 +0000 (10:55 -0700)
It doesn't come up yet, as so far we only hit this path with linear
buffers.  But it will when we start re-using the shadow path for
uncompressing UBWC buffers.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
src/gallium/drivers/freedreno/freedreno_resource.c

index dc5d146315592759949dab3fa75182a8a766e69c..5cb04ea9bd817a366ac2e81a228c37a6c6e97b36 100644 (file)
@@ -200,6 +200,10 @@ fd_try_shadow_resource(struct fd_context *ctx, struct fd_resource *rsc,
        /* TODO valid_buffer_range?? */
        swap(rsc->bo,        shadow->bo);
        swap(rsc->write_batch,   shadow->write_batch);
+       swap(rsc->offset, shadow->offset);
+       swap(rsc->ubwc_offset, shadow->ubwc_offset);
+       swap(rsc->ubwc_pitch, shadow->ubwc_pitch);
+       swap(rsc->ubwc_size, shadow->ubwc_size);
        rsc->seqno = p_atomic_inc_return(&ctx->screen->rsc_seqno);
 
        /* at this point, the newly created shadow buffer is not referenced