Skip to content

nv50,nvc0/vbo: Wrap draws to significantly reduce ovehead in multidraw

What does this MR do and why?

This patch is to avoid the high overhead that exists when trying to
kick ever single draw during multidraw. The second patch in this series
brings validation and a bunch of things that should be the same across all
draws into the context vbo draw that we expose to Gallium, significantly
increasing performance.

glMultiDrawArrays performance profiling:

342.5 thousand draws/second -> 40.9 million draws/second

119x multidraw overhead reduction in testing, tests are probably flawed in
a couple ways though.

Thanks to Arthur Huillet for helping getting this profiled.

This series will be rebased to remove the second patch, the second patch that thickens the wrapper is there for reference when I deal with nv50. This series needs to be ported to nv50, I haven't done that yet because I hate dealing with my gt218's ancient display connector.

Merge request reports