[Mesa-dev] [PATCH 10/12] glsl: Minor cleanups after previous commit

Ian Romanick idr at freedesktop.org
Thu Nov 2 20:25:25 UTC 2017


From: Ian Romanick <ian.d.romanick at intel.com>

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 at intel.com>
---
 src/compiler/glsl/lower_buffer_access.cpp | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/compiler/glsl/lower_buffer_access.cpp b/src/compiler/glsl/lower_buffer_access.cpp
index 056fd26..fa6e5f5 100644
--- a/src/compiler/glsl/lower_buffer_access.cpp
+++ b/src/compiler/glsl/lower_buffer_access.cpp
@@ -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);
-
-            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));
-         }
+         /* 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));
       }
       return;
    }
-- 
2.9.5



More information about the mesa-dev mailing list