mesa,st/mesa: add a fast path for non-static VAOs
authorMarek Olšák <marek.olsak@amd.com>
Fri, 27 Mar 2020 09:07:02 +0000 (05:07 -0400)
committerMarge Bot <eric+marge@anholt.net>
Thu, 30 Apr 2020 22:01:55 +0000 (22:01 +0000)
commit42842306d3c7ba71f89022a1ebb09a4454a1b6e0
tree0ff9d8e04ebd26d7e699c13cb6481750af006486
parent2e3a9d78289ace1928e2dc093fc743cad81c911c
mesa,st/mesa: add a fast path for non-static VAOs

Skip most of _mesa_update_vao_derived_arrays if the VAO is not static.
Drivers need a separate codepath for this.

This increases performance by 7% with glthread and the game "torcs".

The reason is that glthread uploads vertices and sets vertex buffers
every draw call, so the overhead is very noticable. glthread doesn't
hide the overhead, because the driver thread is the busiest thread.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4314>
src/mesa/main/arrayobj.c
src/mesa/main/attrib.c
src/mesa/main/mtypes.h
src/mesa/state_tracker/st_atom_array.c
src/mesa/state_tracker/st_extensions.c