On Fri, Dec 8, 2017 at 9:36 AM, Emil Velikov <[email protected]>
wrote:

> On 3 December 2017 at 14:40, Bas Nieuwenhuizen <[email protected]>
> wrote:
> > There is no chain, so  checking the length ends with a SEGFAULT.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103579
> > Cc: <[email protected]>
> I'm not 100% sure if a missing chain does not hint to an issue elsewhere?
>
> Patch does what it says on the tin - I would use something simpler (as
> below), but regardless
> Reviewed-by: Emil Velikov <[email protected]>
>
>
> > ---
> >  src/compiler/spirv/vtn_variables.c | 58 ++++++++++++++++++++----------
> --------
> >  1 file changed, 30 insertions(+), 28 deletions(-)
> >
> > diff --git a/src/compiler/spirv/vtn_variables.c
> b/src/compiler/spirv/vtn_variables.c
> > index c57f5541319..242f4f916aa 100644
> > --- a/src/compiler/spirv/vtn_variables.c
> > +++ b/src/compiler/spirv/vtn_variables.c
> > @@ -518,35 +518,37 @@ vtn_pointer_to_offset(struct vtn_builder *b,
> struct vtn_pointer *ptr,
> >     *index_out = get_vulkan_resource_index(b, ptr, &type, &idx);
> >
> >     nir_ssa_def *offset = nir_imm_int(&b->nb, 0);
>
> +   if (!ptr->chain) {
> +      return;
>

That doesn't quite work.  There's another out-parameter we have to set.

You could do something weird with the for loop such as

for (; ptr->chain && idx < ptr->chain->length; i++)

Either way,

Reviewed-by: Jason Ekstrand <[email protected]>

One of these days, we should probably just make push constants work like
all of the other direct-offset things.
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to