From: Brian Paul Date: Tue, 29 Jun 2010 21:18:58 +0000 (-0600) Subject: llvmpipe: restore call to lp_setup_update_state() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=249c6735dd5679be9f6ab8951982253919152985;p=mesa.git llvmpipe: restore call to lp_setup_update_state() 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. --- diff --git a/src/gallium/drivers/llvmpipe/lp_setup_vbuf.c b/src/gallium/drivers/llvmpipe/lp_setup_vbuf.c index e53a62cb729..51948f5bf29 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup_vbuf.c +++ b/src/gallium/drivers/llvmpipe/lp_setup_vbuf.c @@ -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; }