freedreno: use util_copy_framebuffer_state()
authorRob Clark <robclark@freedesktop.org>
Wed, 18 Jun 2014 17:50:14 +0000 (13:50 -0400)
committerRob Clark <robclark@freedesktop.org>
Sun, 22 Jun 2014 11:28:17 +0000 (07:28 -0400)
Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/freedreno_state.c

index 93fbc3525eca561125d0bbb57da30c7d768fda64..e7d783a6a561220a9014a8b4c6cdf56b357b1f2f 100644 (file)
@@ -117,29 +117,18 @@ fd_set_framebuffer_state(struct pipe_context *pctx,
 {
        struct fd_context *ctx = fd_context(pctx);
        struct pipe_framebuffer_state *cso = &ctx->framebuffer;
-       unsigned i;
 
        DBG("%d: cbufs[0]=%p, zsbuf=%p", ctx->needs_flush,
                        framebuffer->cbufs[0], framebuffer->zsbuf);
 
        fd_context_render(pctx);
 
-       for (i = 0; i < framebuffer->nr_cbufs; i++)
-               pipe_surface_reference(&cso->cbufs[i], framebuffer->cbufs[i]);
-       for (; i < ctx->framebuffer.nr_cbufs; i++)
-               pipe_surface_reference(&cso->cbufs[i], NULL);
-
-       cso->nr_cbufs = framebuffer->nr_cbufs;
+       util_copy_framebuffer_state(cso, framebuffer);
 
        if ((cso->width != framebuffer->width) ||
                        (cso->height != framebuffer->height))
                ctx->needs_rb_fbd = true;
 
-       cso->width = framebuffer->width;
-       cso->height = framebuffer->height;
-
-       pipe_surface_reference(&cso->zsbuf, framebuffer->zsbuf);
-
        ctx->dirty |= FD_DIRTY_FRAMEBUFFER;
 
        ctx->disabled_scissor.minx = 0;