Lines Matching refs:split

161    /* To avoid list confusion (we'll be adding things as we split variables),
162 * pull all of the variables we plan to split off of the list
174 /* We can't split a variable that's referenced with deref that has any
214 * variables we're planning to split.
225 * variable should not have been split. However, we have no way of
348 bool split;
392 /* We can't split a variable that's referenced with deref that has any
410 /* All levels start out initially as split */
411 info->levels[i].split = true;
460 * indirect, mark the given level as not being split.
466 info->levels[i].split = false;
504 struct array_split *split,
510 while (level < var_info->num_levels && !var_info->levels[level].split) {
523 split->var = nir_local_variable_create(impl,
526 split->var = nir_variable_create(shader, mode,
529 split->var->data.ray_query = var_info->base_var->data.ray_query;
531 assert(var_info->levels[level].split);
532 split->num_splits = var_info->levels[level].array_len;
533 split->splits = rzalloc_array(mem_ctx, struct array_split,
534 split->num_splits);
535 for (unsigned i = 0; i < split->num_splits; i++) {
536 create_split_array_vars(var_info, level + 1, &split->splits[i],
566 if (info->levels[i].split) {
586 /* To avoid list confusion (we'll be adding things as we split
587 * variables), pull all of the variables we plan to split off of the
620 info->levels[i].split)
680 if ((dst_info && dst_info->levels[dst_level].split) ||
681 (src_info && src_info->levels[src_level].split)) {
695 /* Neither side is being split so we just keep going */
762 * to variables we're planning to split.
820 struct array_split *split = &info->root_split;
822 if (info->levels[i].split) {
826 split = &split->splits[index];
829 assert(!split->splits && split->var);
831 nir_deref_instr *new_deref = nir_build_deref_var(&b, split->var);
833 if (!info->levels[i].split) {
840 /* Rewrite the deref source to point to the split one */
852 * structures or other types) and tries to split them into piles of variables,
854 * level is never used with an indirect, that array level will get split.