1, 2, 3, and 6 are

Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>

On Wed, Jul 11, 2018 at 2:30 PM Karol Herbst <kher...@redhat.com> wrote:

> Signed-off-by: Karol Herbst <kher...@redhat.com>
> ---
>  src/compiler/spirv/spirv_to_nir.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/src/compiler/spirv/spirv_to_nir.c
> b/src/compiler/spirv/spirv_to_nir.c
> index 413fbf481c1..235003e872a 100644
> --- a/src/compiler/spirv/spirv_to_nir.c
> +++ b/src/compiler/spirv/spirv_to_nir.c
> @@ -1494,8 +1494,19 @@ vtn_handle_constant(struct vtn_builder *b, SpvOp
> opcode,
>                    spirv_op_to_string(opcode), elem_count,
> val->type->length);
>
>        nir_constant **elems = ralloc_array(b, nir_constant *, elem_count);
> -      for (unsigned i = 0; i < elem_count; i++)
> -         elems[i] = vtn_value(b, w[i + 3],
> vtn_value_type_constant)->constant;
> +      for (unsigned i = 0; i < elem_count; i++) {
> +         struct vtn_value *val = vtn_untyped_value(b, w[i + 3]);
> +
> +         if (val->value_type == vtn_value_type_constant) {
> +            elems[i] = val->constant;
> +         } else {
> +            vtn_fail_if(val->value_type != vtn_value_type_undef,
> +                        "only constants or undefs allowed for "
> +                        "SpvOpConstantComposite");
> +            /* to make it easier, just insert a NULL constant for now */
> +            elems[i] = vtn_null_constant(b, val->type->type);
> +         }
> +      }
>
>        switch (val->type->base_type) {
>        case vtn_base_type_vector: {
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to