<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Nov 14, 2016 at 5:41 PM, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We need to calculate the number of vec4 slots correctly.<br>
<br>
Signed-off-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
---<br>
 src/mesa/drivers/dri/i965/brw_<wbr>fs.h       | 2 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>fs_nir.cpp | 4 +++-<br>
 2 files changed, 4 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_fs.h b/src/mesa/drivers/dri/i965/<wbr>brw_fs.h<br>
index da01174..6446a61 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_fs.h<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_fs.h<br>
@@ -191,7 +191,7 @@ public:<br>
<br>
    void emit_nir_code();<br>
    void nir_setup_single_output_<wbr>varying(fs_reg *reg, const glsl_type *type,<br>
-                                        unsigned *location);<br>
+                                        bool is_compact, unsigned *location);<br></blockquote><div><br></div><div>Something appears to be missing here.  You change a prototype but I don't see you changing the actual function anywhere.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    void nir_setup_outputs();<br>
    void nir_setup_uniforms();<br>
    void nir_emit_system_values();<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp<br>
index e770502..82e22c2 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp<br>
@@ -55,7 +55,9 @@ fs_visitor::nir_setup_outputs(<wbr>)<br>
       return;<br>
<br>
    nir_foreach_variable(var, &nir->outputs) {<br>
-      const unsigned vec4s = type_size_vec4(var->type);<br>
+      const unsigned vec4s =<br>
+         var->data.compact ? DIV_ROUND_UP(glsl_get_length(<wbr>var->type), 4)<br>
+                           : type_size_vec4(var->type);<br>
       fs_reg reg = bld.vgrf(BRW_REGISTER_TYPE_F, 4 * vec4s);<br>
       for (unsigned i = 0; i < vec4s; i++) {<br>
          if (outputs[var->data.driver_<wbr>location + i].file == BAD_FILE)<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.10.2<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">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>
</font></span></blockquote></div><br></div></div>