glsl: Minor cleanups after previous commit

I think it's more clear to only call emit_access once.  The only
difference between the two calls is the value of size_mul used for the
offset parameter... but you really have to look at it to be sure.

The s/is_64bit/is_double/ change is because there are no int64_t or
uint64_t matrix types.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Thomas Helland <thomashelland90@gmail.com>
This commit is contained in:
Ian Romanick 2017-11-01 17:34:12 -07:00
parent c18d8c61d6
commit 9c53b80ff9
1 changed files with 10 additions and 17 deletions

View File

@ -111,24 +111,17 @@ lower_buffer_access::emit_access(void *mem_ctx,
ir_dereference *col_deref =
new(mem_ctx) ir_dereference_array(deref->clone(mem_ctx, NULL), col);
if (row_major) {
/* For a row-major matrix, the next column starts at the next
* element.
*/
int size_mul = deref->type->is_64bit() ? 8 : 4;
emit_access(mem_ctx, is_write, col_deref, base_offset,
deref_offset + i * size_mul,
row_major, deref->type, packing,
writemask_for_size(col_deref->type->vector_elements));
} else {
const int size_mul =
link_calculate_matrix_stride(deref->type, row_major, packing);
/* For a row-major matrix, the next column starts at the next
* element. Otherwise it is offset by the matrix stride.
*/
const unsigned size_mul = row_major
? (deref->type->is_double() ? 8 : 4)
: link_calculate_matrix_stride(deref->type, row_major, packing);
emit_access(mem_ctx, is_write, col_deref, base_offset,
deref_offset + i * size_mul,
row_major, deref->type, packing,
writemask_for_size(col_deref->type->vector_elements));
}
emit_access(mem_ctx, is_write, col_deref, base_offset,
deref_offset + i * size_mul,
row_major, deref->type, packing,
writemask_for_size(col_deref->type->vector_elements));
}
return;
}