enum pipe_prim_type prim;
unsigned opt; /**< bitmask of PT_x flags */
unsigned eltSize; /* saved eltSize for flushing */
+ unsigned viewid; /* saved viewid for flushing */
ubyte vertices_per_patch;
boolean rebind_parameters;
*/
draw_do_flush(draw, DRAW_FLUSH_STATE_CHANGE);
frontend = NULL;
- } else if (draw->pt.eltSize != draw->pt.user.eltSize) {
- /* Flush draw state if eltSize changed.
- * This could be improved so only the frontend is flushed since it
+ } else if (draw->pt.eltSize != draw->pt.user.eltSize || draw->pt.viewid != draw->pt.user.viewid) {
+ /* Flush draw state if eltSize or viewid changed.
+ * eltSize changes could be improved so only the frontend is flushed since it
* converts all indices to ushorts and the fetch part of the middle
* always prepares both linear and indexed.
*/
draw->pt.frontend = frontend;
draw->pt.eltSize = draw->pt.user.eltSize;
+ draw->pt.viewid = draw->pt.user.viewid;
draw->pt.prim = prim;
draw->pt.opt = opt;
}