Mesa (master): draw: fix vbuf caching of vertices with inject front face

Zack Rusin zack at kemper.freedesktop.org
Tue Dec 10 21:41:33 UTC 2013


Module: Mesa
Branch: master
Commit: 48b07fb4fc7e936ee1da4ad856a83740be65ddaf
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=48b07fb4fc7e936ee1da4ad856a83740be65ddaf

Author: Zack Rusin <zackr at vmware.com>
Date:   Tue Dec 10 00:06:48 2013 -0500

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 <zackr at vmware.com>
Reviewed-by: José Fonseca <jfonseca at vmware.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>

---

 src/gallium/auxiliary/draw/draw_pipe_unfilled.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pipe_unfilled.c b/src/gallium/auxiliary/draw/draw_pipe_unfilled.c
index 8cba07c..4f0326b 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;
    }
 }
 




More information about the mesa-commit mailing list