lima: track write submits of context (v3)
[mesa.git] / src / gallium / drivers / lima / lima_state.c
index cd910fbf3dea093ea1c13630ef865e968eac2ffe..b99090f2f4dab7d37bc239e9e48bae85983e66c7 100644 (file)
@@ -27,6 +27,7 @@
 #include "util/u_inlines.h"
 #include "util/u_helpers.h"
 #include "util/u_debug.h"
+#include "util/u_framebuffer.h"
 
 #include "pipe/p_state.h"
 
@@ -45,15 +46,7 @@ lima_set_framebuffer_state(struct pipe_context *pctx,
 
    struct lima_context_framebuffer *fb = &ctx->framebuffer;
 
-   fb->base.samples = framebuffer->samples;
-
-   fb->base.nr_cbufs = framebuffer->nr_cbufs;
-   pipe_surface_reference(&fb->base.cbufs[0], framebuffer->cbufs[0]);
-   pipe_surface_reference(&fb->base.zsbuf, framebuffer->zsbuf);
-
-   /* need align here? */
-   fb->base.width = framebuffer->width;
-   fb->base.height = framebuffer->height;
+   util_copy_framebuffer_state(&fb->base, framebuffer);
 
    int width = align(framebuffer->width, 16) >> 4;
    int height = align(framebuffer->height, 16) >> 4;
@@ -87,6 +80,7 @@ lima_set_framebuffer_state(struct pipe_context *pctx,
                    fb->shift_w, fb->shift_h, fb->shift_min);
    }
 
+   ctx->submit = NULL;
    ctx->dirty |= LIMA_CONTEXT_DIRTY_FRAMEBUFFER;
 }
 
@@ -226,7 +220,7 @@ lima_set_vertex_buffers(struct pipe_context *pctx,
    struct lima_context *ctx = lima_context(pctx);
    struct lima_context_vertex_buffer *so = &ctx->vertex_buffers;
 
-   util_set_vertex_buffers_mask(so->vb + start_slot, &so->enabled_mask,
+   util_set_vertex_buffers_mask(so->vb, &so->enabled_mask,
                                 vb, start_slot, count);
    so->count = util_last_bit(so->enabled_mask);