<div dir="ltr">Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br><div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 2, 2016 at 5:16 AM, Iago Toral Quiroga <span dir="ltr"><<a href="mailto:itoral@igalia.com" target="_blank">itoral@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This change makes it so we emit a load_input intrinsic when Layer<br>
is read in a fragment shader.<br>
---<br>
<br>
Even with this, layered rendering does not seem to work in the Vulkan<br>
driver, so there is something else that is broken. We are probably<br>
not mapping the Layer input correctly somewhere.<br></blockquote><div><br></div><div>I'm not sure how fragment shader layers work in GL today.  I did recently add a NIR intrinsic for layer_id and hook it up in the FS backend.  We can probably just plumb that through.  It would be good to check GL first though.<br><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">
 src/compiler/spirv/vtn_<wbr>variables.c | 7 ++++++-<br>
 1 file changed, 6 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/compiler/spirv/vtn_<wbr>variables.c b/src/compiler/spirv/vtn_<wbr>variables.c<br>
index 14366dc..c6d73a7 100644<br>
--- a/src/compiler/spirv/vtn_<wbr>variables.c<br>
+++ b/src/compiler/spirv/vtn_<wbr>variables.c<br>
@@ -819,7 +819,12 @@ vtn_get_builtin_location(<wbr>struct vtn_builder *b,<br>
       break;<br>
    case SpvBuiltInLayer:<br>
       *location = VARYING_SLOT_LAYER;<br>
-      *mode = nir_var_shader_out;<br>
+      if (b->shader->stage == MESA_SHADER_FRAGMENT)<br>
+         *mode = nir_var_shader_in;<br>
+      else if (b->shader->stage == MESA_SHADER_GEOMETRY)<br>
+         *mode = nir_var_shader_out;<br>
+      else<br>
+         unreachable("invalid stage for SpvBuiltInLayer");<br>
       break;<br>
    case SpvBuiltInViewportIndex:<br>
       *location = VARYING_SLOT_VIEWPORT;<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.7.4<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></div>