llvmpipe: restore call to lp_setup_update_state()
authorBrian Paul <brianp@vmware.com>
Tue, 29 Jun 2010 21:18:58 +0000 (15:18 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 29 Jun 2010 21:19:01 +0000 (15:19 -0600)
This undoes part of commit 8be645d53a0d5d0ca50e4e9597043225e2231b6d
and fixes fd.o bug 28822 as well as other regressions.

The 'draw' module may issue additional state-change commands while
we're inside the draw_arrays/elements() call so it's important to
check for updated state at this point.

src/gallium/drivers/llvmpipe/lp_setup_vbuf.c

index e53a62cb7293f9fd0efecbd164e323e2e0d7261c..51948f5bf295482ac83a441f2e3e695bc6226cb4 100644 (file)
@@ -60,6 +60,12 @@ static const struct vertex_info *
 lp_setup_get_vertex_info(struct vbuf_render *vbr)
 {
    struct lp_setup_context *setup = lp_setup_context(vbr);
+
+   /* Vertex size/info depends on the latest state.
+    * The draw module may have issued additional state-change commands.
+    */
+   lp_setup_update_state(setup);
+
    return setup->vertex_info;
 }