Lines Matching defs:deref
111 build_load_ptr_dxil(nir_builder *b, nir_deref_instr *deref, nir_ssa_def *idx)
113 return nir_load_ptr_dxil(b, 1, 32, &deref->dest.ssa, idx);
123 nir_deref_instr *deref = nir_src_as_deref(intr->src[0]);
124 if (!nir_deref_mode_is(deref, nir_var_shader_temp))
126 nir_ssa_def *ptr = nir_u2u32(b, nir_build_deref_offset(b, deref, cl_type_size_align));
138 nir_deref_path_init(&path, deref, NULL);
595 ubo_to_temp_patch_deref_mode(nir_deref_instr *deref)
597 deref->modes = nir_var_shader_temp;
598 nir_foreach_use(use_src, &deref->dest.ssa) {
608 ubo_to_temp_update_entry(nir_deref_instr *deref, struct hash_entry *he)
610 assert(nir_deref_mode_is(deref, nir_var_mem_constant));
611 assert(deref->dest.is_ssa);
614 nir_foreach_use(use_src, &deref->dest.ssa) {
649 nir_deref_instr *deref = nir_instr_as_deref(instr);
650 if (!nir_deref_mode_is(deref, nir_var_mem_constant) ||
651 deref->deref_type != nir_deref_type_var)
655 _mesa_hash_table_search(ubo_to_temp, deref->var);
658 he = _mesa_hash_table_insert(ubo_to_temp, deref->var, deref->var);
663 ubo_to_temp_update_entry(deref, he);
700 nir_deref_instr *deref = nir_instr_as_deref(instr);
701 if (nir_deref_mode_is(deref, nir_var_mem_constant) &&
702 deref->deref_type == nir_deref_type_var &&
703 deref->var->data.mode == nir_var_shader_temp)
704 ubo_to_temp_patch_deref_mode(deref);
859 lower_deref_ssbo(nir_builder *b, nir_deref_instr *deref)
861 assert(nir_deref_mode_is(deref, nir_var_mem_ssbo));
862 assert(deref->deref_type == nir_deref_type_var ||
863 deref->deref_type == nir_deref_type_cast);
864 nir_variable *var = deref->var;
866 b->cursor = nir_before_instr(&deref->instr);
868 if (deref->deref_type == nir_deref_type_var) {
874 nir_build_deref_cast(b, ptr, nir_var_mem_ssbo, deref->type,
876 nir_ssa_def_rewrite_uses(&deref->dest.ssa,
878 nir_instr_remove(&deref->instr);
880 deref = deref_cast;
904 nir_deref_instr *deref = nir_instr_as_deref(instr);
906 if (!nir_deref_mode_is(deref, nir_var_mem_ssbo) ||
907 (deref->deref_type != nir_deref_type_var &&
908 deref->deref_type != nir_deref_type_cast))
911 progress |= lower_deref_ssbo(&b, deref);
928 nir_deref_instr *deref = nir_src_as_deref(alu->src[i].src);
930 if (!deref)
934 nir_deref_path_init(&path, deref, NULL);
943 nir_build_deref_offset(b, deref, cl_type_size_align));
982 nir_deref_instr *deref;
986 deref = nir_build_deref_ptr_as_array(b, parent, index);
988 return nir_load_deref(b, deref);
995 nir_deref_instr *deref;
999 deref = nir_build_deref_ptr_as_array(b, parent, index);
1000 nir_store_deref(b, deref, value, 1);
1182 nir_deref_instr *deref = nir_instr_as_deref(instr);
1183 nir_variable *var = nir_deref_instr_get_variable(deref);
1196 /* The deref chain to the clip/cull variables should be simple, just the
1203 assert(deref->deref_type == nir_deref_type_var ||
1204 deref->deref_type == nir_deref_type_array);
1238 if (deref->deref_type == nir_deref_type_var) {
1239 deref->type = var->type;
1243 if (glsl_type_is_array(deref->type)) {
1245 deref->type = glsl_get_array_element(var->type);
1249 assert(glsl_get_base_type(deref->type) == GLSL_TYPE_FLOAT);
1251 nir_const_value *index = nir_src_as_const_value(deref->arr.index);
1266 nir_deref_instr *parent = nir_src_as_deref(deref->parent);
1271 nir_ssa_def_rewrite_uses(&deref->dest.ssa, &new_array_deref->dest.ssa);
1385 nir_deref_instr* deref = nir_src_as_deref(intrin->src[0]);
1386 if (!nir_deref_mode_is(deref, nir_var_system_value))
1389 nir_variable* var = deref->var;
1481 /* No sampler deref - does this instruction even need a sampler? If not,
1525 /* Using derefs, means we have to rewrite the deref chain in addition to cloning */
1606 /* Using derefs, means we have to rewrite the deref chain in addition to cloning */
1674 nir_deref_instr *deref = nir_instr_as_deref(intr->src[0].ssa->parent_instr);
1675 nir_variable *var = nir_deref_instr_get_variable(deref);
1690 nir_deref_instr *deref = nir_instr_as_deref(intr->src[0].ssa->parent_instr);
1691 nir_variable *var = nir_deref_instr_get_variable(deref);
1696 deref->type = var->type;
1978 nir_deref_instr *deref = nir_instr_as_deref(instr);
1980 deref->deref_type == nir_deref_type_var ? deref->var : NULL;
1983 deref->type = var->type;