Mesa (master): gallium/u_vbuf: get rid of some pointer dereferences

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 9 05:06:09 UTC 2020


Module: Mesa
Branch: master
Commit: 88e8f1a38d838753542461cea56d1c1b1a5cfc5d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=88e8f1a38d838753542461cea56d1c1b1a5cfc5d

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Jun  1 15:49:36 2020 -0400

gallium/u_vbuf: get rid of some pointer dereferences

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5304>

---

 src/gallium/auxiliary/util/u_vbuf.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_vbuf.c b/src/gallium/auxiliary/util/u_vbuf.c
index 62b2e0efc3d..999fcb80135 100644
--- a/src/gallium/auxiliary/util/u_vbuf.c
+++ b/src/gallium/auxiliary/util/u_vbuf.c
@@ -798,13 +798,14 @@ u_vbuf_create_vertex_elements(struct u_vbuf *mgr, unsigned count,
     * supported. */
    for (i = 0; i < count; i++) {
       enum pipe_format format = ve->ve[i].src_format;
+      unsigned vb_index_bit = 1 << ve->ve[i].vertex_buffer_index;
 
       ve->src_format_size[i] = util_format_get_blocksize(format);
 
-      used_buffers |= 1 << ve->ve[i].vertex_buffer_index;
+      used_buffers |= vb_index_bit;
 
       if (!ve->ve[i].instance_divisor) {
-         ve->noninstance_vb_mask_any |= 1 << ve->ve[i].vertex_buffer_index;
+         ve->noninstance_vb_mask_any |= vb_index_bit;
       }
 
       format = mgr->caps.format_translation[format];
@@ -818,9 +819,9 @@ u_vbuf_create_vertex_elements(struct u_vbuf *mgr, unsigned count,
           (!mgr->caps.velem_src_offset_unaligned &&
            ve->ve[i].src_offset % 4 != 0)) {
          ve->incompatible_elem_mask |= 1 << i;
-         ve->incompatible_vb_mask_any |= 1 << ve->ve[i].vertex_buffer_index;
+         ve->incompatible_vb_mask_any |= vb_index_bit;
       } else {
-         ve->compatible_vb_mask_any |= 1 << ve->ve[i].vertex_buffer_index;
+         ve->compatible_vb_mask_any |= vb_index_bit;
       }
    }
 
@@ -960,9 +961,10 @@ u_vbuf_upload_buffers(struct u_vbuf *mgr,
                       int start_instance, unsigned num_instances)
 {
    unsigned i;
-   unsigned nr_velems = mgr->ve->count;
+   struct u_vbuf_elements *ve = mgr->ve;
+   unsigned nr_velems = ve->count;
    const struct pipe_vertex_element *velems =
-         mgr->using_translate ? mgr->fallback_velems.velems : mgr->ve->ve;
+         mgr->using_translate ? mgr->fallback_velems.velems : ve->ve;
    unsigned start_offset[PIPE_MAX_ATTRIBS];
    unsigned end_offset[PIPE_MAX_ATTRIBS];
    uint32_t buffer_mask = 0;
@@ -988,7 +990,7 @@ u_vbuf_upload_buffers(struct u_vbuf *mgr,
 
       if (!vb->stride) {
          /* Constant attrib. */
-         size = mgr->ve->src_format_size[i];
+         size = ve->src_format_size[i];
       } else if (instance_div) {
          /* Per-instance attrib. */
 
@@ -1002,11 +1004,11 @@ u_vbuf_upload_buffers(struct u_vbuf *mgr,
             count++;
 
          first += vb->stride * start_instance;
-         size = vb->stride * (count - 1) + mgr->ve->src_format_size[i];
+         size = vb->stride * (count - 1) + ve->src_format_size[i];
       } else {
          /* Per-vertex attrib. */
          first += vb->stride * start_vertex;
-         size = vb->stride * (num_vertices - 1) + mgr->ve->src_format_size[i];
+         size = vb->stride * (num_vertices - 1) + ve->src_format_size[i];
       }
 
       index_bit = 1 << index;



More information about the mesa-commit mailing list