Lines Matching refs:deref
58 ir_dereference *deref, in emit_access() argument
66 if (deref->type->is_struct()) { in emit_access()
69 for (unsigned i = 0; i < deref->type->length; i++) { in emit_access()
71 &deref->type->fields.structure[i]; in emit_access()
73 new(mem_ctx) ir_dereference_record(deref->clone(mem_ctx, NULL), in emit_access()
96 if (deref->type->is_array()) { in emit_access()
98 deref->type->fields.array->std430_array_stride(row_major) : in emit_access()
99 glsl_align(deref->type->fields.array->std140_size(row_major), 16); in emit_access()
101 for (unsigned i = 0; i < deref->type->length; i++) { in emit_access()
104 new(mem_ctx) ir_dereference_array(deref->clone(mem_ctx, NULL), in emit_access()
114 if (deref->type->is_matrix()) { in emit_access()
115 for (unsigned i = 0; i < deref->type->matrix_columns; i++) { in emit_access()
118 new(mem_ctx) ir_dereference_array(deref->clone(mem_ctx, NULL), col); in emit_access()
124 ? (deref->type->is_double() ? 8 : 4) in emit_access()
125 : link_calculate_matrix_stride(deref->type, row_major, packing); in emit_access()
129 row_major, deref->type, packing, in emit_access()
135 assert(deref->type->is_scalar() || deref->type->is_vector()); in emit_access()
141 is_write ? write_mask : (1 << deref->type->vector_elements) - 1; in emit_access()
142 insert_buffer_access(mem_ctx, deref, deref->type, offset, mask, -1); in emit_access()
147 assert(deref->type->is_float() || deref->type->is_double()); in emit_access()
153 const glsl_type *deref_type = deref->type->get_scalar_type(); in emit_access()
155 for (unsigned i = 0; i < deref->type->vector_elements; i++) { in emit_access()
160 insert_buffer_access(mem_ctx, deref, deref_type, chan_offset, in emit_access()
182 lower_buffer_access::is_dereferenced_thing_row_major(const ir_rvalue *deref) in is_dereferenced_thing_row_major() argument
185 const ir_rvalue *ir = deref; in is_dereferenced_thing_row_major()
217 return matrix || deref->type->without_array()->is_struct(); in is_dereferenced_thing_row_major()
236 ASSERTED ir_variable *var = deref->variable_referenced(); in is_dereferenced_thing_row_major()
244 return matrix || deref->type->without_array()->is_struct(); in is_dereferenced_thing_row_major()
274 ir_rvalue *deref, in setup_buffer_access() argument
283 *row_major = is_dereferenced_thing_row_major(deref); in setup_buffer_access()
290 while (deref) { in setup_buffer_access()
291 switch (deref->ir_type) { in setup_buffer_access()
293 deref = NULL; in setup_buffer_access()
298 ir_dereference_array *deref_array = (ir_dereference_array *) deref; in setup_buffer_access()
331 deref = deref_array->array->as_dereference(); in setup_buffer_access()
365 deref = deref_array->array->as_dereference(); in setup_buffer_access()
370 ir_dereference_record *deref_record = (ir_dereference_record *) deref; in setup_buffer_access()
425 deref = deref_record->record->as_dereference(); in setup_buffer_access()
430 ir_swizzle *deref_swizzle = (ir_swizzle *) deref; in setup_buffer_access()
435 deref = deref_swizzle->val->as_dereference(); in setup_buffer_access()
441 deref = NULL; in setup_buffer_access()