<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Oct 18, 2017 at 6:11 AM, Eero Tamminen <span dir="ltr"><<a href="mailto:eero.t.tamminen@intel.com" target="_blank">eero.t.tamminen@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Jason,<br>
<br>
This commit dropped SynMark2 v7 OglShMapPcf performance by 1-2% on GT2 versions of SKL, KBL and CFL.  It may have improved it by same amount on SKL GT4e. Effects on other machines were within normal variation.<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>That's very surprising.  Are you 100% sure it's caused by *this* commit?</div><div><br></div><div>--Jason<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
<br>
        - Eero</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 30.09.2017 00:25, Jason Ekstrand wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Otherwise, in the ARB program case _mesa_add_state_reference may grow<br>
the parameter array which will cause brw_nir_setup_arb_uniforms to write<br>
past the end of the param array because it only looks at the parameter<br>
list length but the parma array is allocated based on nir->num_uniforms.<br>
The only reason this hasn't caused us problems is because we are padding<br>
out the param array for fragment programs unnecessarily.<br>
---<br>
  src/mesa/drivers/dri/i965/brw_<wbr>program.c | 9 +++++----<br>
  1 file changed, 5 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/br<wbr>w_program.c b/src/mesa/drivers/dri/i965/br<wbr>w_program.c<br>
index ee464fc..7eec6f7 100644<br>
--- a/src/mesa/drivers/dri/i965/br<wbr>w_program.c<br>
+++ b/src/mesa/drivers/dri/i965/br<wbr>w_program.c<br>
@@ -88,8 +88,6 @@ brw_create_nir(struct brw_context *brw,<br>
     }<br>
     nir_validate_shader(nir);<br>
  -   (void)progress;<br>
-<br>
     nir = brw_preprocess_nir(brw->screen<wbr>->compiler, nir);<br>
       if (stage == MESA_SHADER_FRAGMENT) {<br>
@@ -98,10 +96,13 @@ brw_create_nir(struct brw_context *brw,<br>
           .fs_coord_pixel_center_<wbr>integer = 1,<br>
           .fs_coord_origin_upper_left = 1,<br>
        };<br>
-      _mesa_add_state_reference(prog<wbr>->Parameters,<br>
-                                (gl_state_index *) wpos_options.state_tokens);<br>
  +      progress = false;<br>
        NIR_PASS(progress, nir, nir_lower_wpos_ytransform, &wpos_options);<br>
+      if (progress) {<br>
+         _mesa_add_state_reference(pro<wbr>g->Parameters,<br>
+                                   (gl_state_index *) wpos_options.state_tokens);<br>
+      }<br>
     }<br>
       NIR_PASS(progress, nir, nir_lower_system_values);<br>
<br>
</blockquote>
<br></div></div><div class="HOEnZb"><div class="h5">
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div></div>