Lines Matching defs:deref
53 get_deref_info(nir_shader *shader, nir_variable *var, nir_deref_instr *deref,
62 nir_deref_path_init(&path, deref, NULL);
85 unreachable("Unsupported deref type");
95 nir_deref_instr *deref, bool is_output_read)
127 get_deref_info(shader, var, deref, &cross_invocation, &indirect);
195 nir_deref_instr *deref, bool is_output_read)
217 set_io_mask(shader, var, 0, slots, deref, is_output_read);
221 get_io_offset(nir_deref_instr *deref, nir_variable *var, bool is_arrayed,
225 if (deref->deref_type == nir_deref_type_var) {
229 assert(deref->deref_type == nir_deref_type_array);
230 return nir_src_is_const(deref->arr.index) ?
231 (nir_src_as_uint(deref->arr.index) + var->data.location_frac) / 4u :
237 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) {
271 nir_deref_instr *deref, bool is_output_read)
286 unsigned offset = get_io_offset(deref, var, is_arrayed, skip_non_arrayed);
307 unsigned len = glsl_count_attribute_slots(deref->type, false);
308 set_io_mask(shader, var, offset, len, deref, is_output_read);
527 nir_deref_instr *deref = nir_src_as_deref(instr->src[0]);
528 if (nir_deref_mode_is_one_of(deref, nir_var_shader_in |
530 nir_variable *var = nir_deref_instr_get_variable(deref);
536 if (!try_mask_partial_io(shader, var, deref, is_output_read))
537 mark_whole_variable(shader, var, deref, is_output_read);
555 nir_deref_instr *deref = nir_src_as_deref(instr->src[0]);
556 nir_variable *var = nir_deref_instr_get_variable(deref);