st/mesa: optimize st_update_array with ALWAYSINLINE
authorMarek Olšák <marek.olsak@amd.com>
Tue, 21 Jan 2020 01:32:02 +0000 (20:32 -0500)
committerMarge Bot <eric+marge@anholt.net>
Tue, 11 Feb 2020 00:34:57 +0000 (00:34 +0000)
The time spent in st_update_array is reduced by 5-10%.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>

src/mesa/state_tracker/st_atom_array.c

index 7913e3512b943c963bda31fec897b3c6b96db09a..5c258ed99566ceeaebb135f2b300fcae3971b8be 100644 (file)
@@ -364,7 +364,10 @@ static void init_velement_lowered(const struct st_vertex_program *vp,
    }
 }
 
-void
+/* ALWAYS_INLINE helps the compiler realize that most of the parameters are
+ * on the stack.
+ */
+void ALWAYS_INLINE
 st_setup_arrays(struct st_context *st,
                 const struct st_vertex_program *vp,
                 const struct st_common_variant *vp_variant,
@@ -427,7 +430,10 @@ st_setup_arrays(struct st_context *st,
    *has_user_vertex_buffers = uses_user_vertex_buffers;
 }
 
-void
+/* ALWAYS_INLINE helps the compiler realize that most of the parameters are
+ * on the stack.
+ */
+void ALWAYS_INLINE
 st_setup_current(struct st_context *st,
                  const struct st_vertex_program *vp,
                  const struct st_common_variant *vp_variant,