From 7dd66244afbf1f91f0135f21a90a867465ec6e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 4 Jan 2024 02:30:11 -0500 Subject: [PATCH] st/mesa: move a piece of _mesa_draw_array_attrib out of the loop in setup_arrays This inlines _mesa_draw_array_attrib and moves attribute_map out of the loop. The compiler doesn't do this automatically. Reviewed-by: Pierre-Eric Pelloux-Prayer Reviewed-By: Mike Blumenkrantz Part-of: --- src/mesa/state_tracker/st_atom_array.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_atom_array.cpp b/src/mesa/state_tracker/st_atom_array.cpp index 5a484330714..d8e27679a25 100644 --- a/src/mesa/state_tracker/st_atom_array.cpp +++ b/src/mesa/state_tracker/st_atom_array.cpp @@ -89,10 +89,13 @@ setup_arrays(struct st_context *st, /* Process attribute array data. */ if (vao->IsDynamic) { + const GLubyte *attribute_map = + _mesa_vao_attribute_map[vao->_AttributeMapMode]; + while (mask) { const gl_vert_attrib attr = (gl_vert_attrib)u_bit_scan(&mask); const struct gl_array_attributes *const attrib = - _mesa_draw_array_attrib(vao, attr); + &vao->VertexAttrib[attribute_map[attr]]; const struct gl_vertex_buffer_binding *const binding = &vao->BufferBinding[attrib->BufferBindingIndex]; const unsigned bufidx = (*num_vbuffers)++;