<div dir="ltr">On 9 July 2013 18:12, Anuj Phogat <span dir="ltr"><<a href="mailto:anuj.phogat@gmail.com" target="_blank">anuj.phogat@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
For HSW GT3 clear rectangle must be aligned to two times the number of<br>
pixels in the table shown in Ivy Bridge PRM, Vol2 Part1 11.7.<br>
It should be safe to do this for all gen7 systems unless we see any<br>
performance regressions. I observed no piglit, gles3conform regressions<br>
with this patch.<br></blockquote><div><br></div><div>I realize it was my idea to do this for all Gen7 systems, but on further reflection, it's so easy to restrict this workaround to just HSW GT3 that I think we should go ahead and do that.  Along the lines of Chris Forbes' suggestion, the code would look something like:<br>
<br>  if (brw->is_haswell && brw->gt == 3) {<br>    /* rationale ... */<br>    x0 = ROUND_DOWN_TO(x0, 2 * x_align);<br>    y0 = ROUND_DOWN_TO(y0, 2 * y_align);<br>    x1 = ALIGN(x1, 2 * x_align);<br>    y1 = ALIGN(y1, 2 * y_align);<br>
  } else {<br>    x0 = ROUND_DOWN_TO(x0, x_align);<br>    y0 = ROUND_DOWN_TO(y0, y_align);<br>    x1 = ALIGN(x1, x_align);<br>    y1 = ALIGN(y1, y_align);<br>  }<br><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<br>
It fixes: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=65744" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=65744</a><br>
<br>
Signed-off-by: Anuj Phogat <<a href="mailto:anuj.phogat@gmail.com">anuj.phogat@gmail.com</a>><br>
---<br>
Thanks Paul for your great help in figuring out the fix.<br>
<br>
 src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 12 ++++++++----<br>
 1 file changed, 8 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp<br>
index bf11135..2bebe8e 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp<br>
+++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp<br>
@@ -261,10 +261,14 @@ brw_blorp_clear_params::brw_blorp_clear_params(struct brw_context *brw,<br>
       intel_get_non_msrt_mcs_alignment(intel, irb->mt, &x_align, &y_align);<br>
       x_align *= 16;<br>
       y_align *= 32;<br>
-      x0 = ROUND_DOWN_TO(x0, x_align);<br>
-      y0 = ROUND_DOWN_TO(y0, y_align);<br>
-      x1 = ALIGN(x1, x_align);<br>
-      y1 = ALIGN(y1, y_align);<br>
+      /* For HSW GT3 clear rectangle must be aligned to two times the number<br>
+       * of pixels in the table.<br>
+       */<br>
+<br>
+      x0 = ROUND_DOWN_TO(x0, (intel->gen > 6 ? 2 * x_align : x_align));<br>
+      y0 = ROUND_DOWN_TO(y0, (intel->gen > 6 ? 2 * y_align : y_align));<br>
+      x1 = ALIGN(x1, (intel->gen > 6 ? 2 * x_align : x_align));<br>
+      y1 = ALIGN(y1, (intel->gen > 6 ? 2 * y_align : y_align));<br>
<br>
       /* From the Ivy Bridge PRM, Vol2 Part1 11.7 "MCS Buffer for Render<br>
        * Target(s)", beneath the "Fast Color Clear" bullet (p327):<br>
<span class=""><font color="#888888">--<br>
1.8.1.4<br>
<br>
</font></span></blockquote></div><br></div></div>