> @@ -268,8 +288,30 @@ split_var_copies_impl(nir_function_impl *impl)
>     state.dead_ctx = ralloc_context(NULL);
>     state.progress = false;
>  
> +   nir_builder b;
> +   nir_builder_init(&b, impl);
> +
>     nir_foreach_block(block, impl) {
>        split_var_copies_block(block, &state);
> +
> +      nir_foreach_instr_safe(instr, block) {
> +         if (instr->type != nir_instr_type_intrinsic)
> +            continue;
> +
> +         nir_intrinsic_instr *copy = nir_instr_as_intrinsic(instr);
> +         if (copy->intrinsic != nir_intrinsic_copy_deref)
> +            continue;

Could you 'continue' here if glsl_type_is_vector_or_scalar() returns
true for one of the srcs? If I understood correctly, it would avoid
cluttering the 'progress'.


Thanks,
Caio
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to