On 16 December 2011 19:53, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 12/14/2011 11:59 AM, Paul Berry wrote:<br>
> This patch enables rasterizer discard functionality (a part of<br>
> transform feedback) in Gen6, by generating an alternate GS program<br>
> when rasterizer discard is active. Instead of forwarding vertices<br>
> down the pipeline, the alternate GS program uses a URB Write message<br>
> to deallocate the URB entry that was allocated by FF sync and<br>
> terminate the thread.<br>
><br>
> Note: parts of the Sandy Bridge PRM seem to imply that we could do<br>
> this more efficiently, by clearing the GEN6_GS_RENDERING_ENABLE bit,<br>
> and not allocating a URB entry at all. However, it's not clear how we<br>
> are supposed to terminate the thread if we do that. Volume 2 part 1,<br>
> section 4.5.4, says "GS threads must terminate by sending a URB_WRITE<br>
> message with the EOT and Complete bits set.", and my experiments so<br>
> far confirm that.<br>
> ---<br>
><br>
> This patch needs to be applied on top of the series "[PATCH 0/8] i965<br>
> gen6: Initial implementation of transform feedback.", which is still<br>
> under review on the mailing list.<br>
<br>
</div>Assuming the dirty bit gets sorted out,<br>
Reviewed-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
<br>
</blockquote></div><br>Thanks, Ken. Fortunately, this patch is independent of the dirty bit stuff (since this patch adds a use of ctx->TransformFeedback.RasterDiscard to brw_gs_prog, which already depends on _NEW_TRANSFORM). So I'll push it as soon as the remaining discussion on my main transform feedback series is resolved.<br>