<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Dec 8, 2017 at 9:36 AM, Emil Velikov <span dir="ltr"><<a href="mailto:emil.l.velikov@gmail.com" target="_blank">emil.l.velikov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On 3 December 2017 at 14:40, Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl">bas@basnieuwenhuizen.nl</a>> wrote:<br>
> There is no chain, so  checking the length ends with a SEGFAULT.<br>
><br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=103579" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/<wbr>show_bug.cgi?id=103579</a><br>
> Cc: <<a href="mailto:mesa-stable@lists.freedesktop.org">mesa-stable@lists.<wbr>freedesktop.org</a>><br>
</span>I'm not 100% sure if a missing chain does not hint to an issue elsewhere?<br>
<br>
Patch does what it says on the tin - I would use something simpler (as<br>
below), but regardless<br>
Reviewed-by: Emil Velikov <<a href="mailto:emil.velikov@collabora.com">emil.velikov@collabora.com</a>><br>
<span class="gmail-"><br>
<br>
> ---<br>
>  src/compiler/spirv/vtn_<wbr>variables.c | 58 ++++++++++++++++++++----------<wbr>--------<br>
>  1 file changed, 30 insertions(+), 28 deletions(-)<br>
><br>
> diff --git a/src/compiler/spirv/vtn_<wbr>variables.c b/src/compiler/spirv/vtn_<wbr>variables.c<br>
> index c57f5541319..242f4f916aa 100644<br>
> --- a/src/compiler/spirv/vtn_<wbr>variables.c<br>
> +++ b/src/compiler/spirv/vtn_<wbr>variables.c<br>
> @@ -518,35 +518,37 @@ vtn_pointer_to_offset(struct vtn_builder *b, struct vtn_pointer *ptr,<br>
>     *index_out = get_vulkan_resource_index(b, ptr, &type, &idx);<br>
><br>
>     nir_ssa_def *offset = nir_imm_int(&b->nb, 0);<br>
<br>
</span>+   if (!ptr->chain) {<br>
+      return;<br></blockquote><div><br></div><div>That doesn't quite work.  There's another out-parameter we have to set. <br></div><div><br></div><div>You could do something weird with the for loop such as</div><div><br></div><div>for (; ptr->chain && idx < ptr->chain->length; i++)</div><div><br></div><div>Either way,</div><div><br></div><div>Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>></div><div><br></div><div>One of these days, we should probably just make push constants work like all of the other direct-offset things.<br></div></div><br></div></div>