freedreno: use util_copy_constant_buffer() helper
authorRob Clark <robclark@freedesktop.org>
Tue, 7 Jun 2016 18:35:09 +0000 (14:35 -0400)
committerRob Clark <robclark@freedesktop.org>
Tue, 14 Jun 2016 15:00:59 +0000 (11:00 -0400)
Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/freedreno_state.c

index 6c472d1..befd496 100644 (file)
@@ -94,21 +94,17 @@ fd_set_constant_buffer(struct pipe_context *pctx, uint shader, uint index,
        struct fd_context *ctx = fd_context(pctx);
        struct fd_constbuf_stateobj *so = &ctx->constbuf[shader];
 
+       util_copy_constant_buffer(&so->cb[index], cb);
+
        /* Note that the state tracker can unbind constant buffers by
         * passing NULL here.
         */
        if (unlikely(!cb)) {
                so->enabled_mask &= ~(1 << index);
                so->dirty_mask &= ~(1 << index);
-               pipe_resource_reference(&so->cb[index].buffer, NULL);
                return;
        }
 
-       pipe_resource_reference(&so->cb[index].buffer, cb->buffer);
-       so->cb[index].buffer_offset = cb->buffer_offset;
-       so->cb[index].buffer_size   = cb->buffer_size;
-       so->cb[index].user_buffer   = cb->user_buffer;
-
        so->enabled_mask |= 1 << index;
        so->dirty_mask |= 1 << index;
        ctx->dirty |= FD_DIRTY_CONSTBUF;