<html><body><div style="font-family: times new roman, new york, times, serif; font-size: 12pt; color: #000000"><div>Hi, <span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">Stéphane.</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">No we should not revert to the old behavior. The old behavior was incorrect. Consider this:</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">-- setup state that draws a wireframe -> draw should inject frontface</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">-- the driver needs to be able to find the injected wireframe output</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">-- draw</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">-- setup state the draws solid fill with fragment shader using primid input -> draw should inject primid but not frontface</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">-- driver needs to be able to find the injected primid but not frontface info</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">-- draw</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">Without cleaning the attributed before the second draw the draw will keep the frontface id in the extra attribs, incorrectly pointing the driver to a non-existing crash. That's why the attribs need to be cleaned before rendering.</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">i915g simply shouldn't call draw_prepare_shader_outputs because it doesn't know what to do with the injected front-face or primid anyway. That part I'd suggest you remove. It will get you back to the old behavior.</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">z</span></div><div><br></div><hr id="zwchr"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;" data-mce-style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><div dir="ltr">Hi Zack,<div><br></div><div>This change regresses a bunch of point sprite piglit tests on i915g. Should we revert back to the old behaviour? As far as I can see, it was correct (it was keeping the attributes in case another stage is using them).</div><div><br></div><div>Stéphane</div><div><br><div class="gmail_extra"><br><div><br></div><div class="gmail_quote">On Thu, Aug 8, 2013 at 12:46 PM, Zack Rusin <span dir="ltr"><<a href="mailto:zackr@vmware.com" target="_blank" data-mce-href="mailto:zackr@vmware.com">zackr@vmware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">Before inserting new front face and prim id outputs cleanup<br> the old extra outputs, otherwise our cache will use previous<br> output slots which will break as soon as outputs of the current<br> shader don't match the last.<br> <br> Signed-off-by: Zack Rusin <<a href="mailto:zackr@vmware.com" target="_blank" data-mce-href="mailto:zackr@vmware.com">zackr@vmware.com</a>><br> ---<br>  src/gallium/auxiliary/draw/draw_context.c |    1 +<br>  1 file changed, 1 insertion(+)<br> <br> diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c<br> index af9caee..2dc6772 100644<br> --- a/src/gallium/auxiliary/draw/draw_context.c<br> +++ b/src/gallium/auxiliary/draw/draw_context.c<br> @@ -555,6 +555,7 @@ draw_get_shader_info(const struct draw_context *draw)<br>  void<br>  draw_prepare_shader_outputs(struct draw_context *draw)<br>  {<br> +   draw_remove_extra_vertex_attribs(draw);<br>     draw_ia_prepare_outputs(draw, draw->pipeline.ia);<br>     draw_unfilled_prepare_outputs(draw, draw->pipeline.unfilled);<br>  }<br> <span class="HOEnZb"><span color="#888888" data-mce-style="color: #888888;" style="color: #888888;">--<br> 1.7.10.4<br> _______________________________________________<br> mesa-dev mailing list<br> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank" data-mce-href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br> <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank" data-mce-href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br> </span></span></blockquote></div><br></div></div></div></blockquote><div><br></div></div></body></html>