From: Zack Rusin Date: Tue, 10 Dec 2013 05:06:48 +0000 (-0500) Subject: draw: fix vbuf caching of vertices with inject front face X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=48b07fb4fc7e936ee1da4ad856a83740be65ddaf;p=mesa.git draw: fix vbuf caching of vertices with inject front face Caching in the vbuf module meant that once a vertex has been emitted it was cached, but it's possible for a vertex at the same location to be emitted again, but this time with a different front-face semantic. Caching was causing the first version of the vertex to be emitted, which resulted in the renderer getting incorrect front-face attributes. By reseting the vertex_id (which is used for caching) we make sure that once a front-face info has been injected the vertex will endup getting emitted. Signed-off-by: Zack Rusin Reviewed-by: José Fonseca Reviewed-by: Roland Scheidegger --- diff --git a/src/gallium/auxiliary/draw/draw_pipe_unfilled.c b/src/gallium/auxiliary/draw/draw_pipe_unfilled.c index 8cba07c34bc..4f0326bf399 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_unfilled.c +++ b/src/gallium/auxiliary/draw/draw_pipe_unfilled.c @@ -81,6 +81,7 @@ inject_front_face_info(struct draw_stage *stage, v->data[slot][1] = is_front_face; v->data[slot][2] = is_front_face; v->data[slot][3] = is_front_face; + v->vertex_id = UNDEFINED_VERTEX_ID; } }