Skip to content

gallium,st/mesa,vbo,radeonsi: new low overhead display list interface

Marek Olšák requested to merge mareko/mesa:gallium-draw-vertex-state into main

This new interface is designed to be optimal for display lists as implemented by the vbo module. It has much lower CPU overhead in the frontend, threaded context, and the driver.

It improves the score of viewperf13/snx substantially. The piglit/drawoverhead numbers are in the table below.

Test (thousands of draws per second) Before After Perf change Note
glCallList ( 0 VBO, 0 UBO, 0 ) w/ 1 attrib 20033 23537 17%
glCallList ( 0 VBO, 0 UBO, 0 ) w/ 2 attribs 15335 16654 9%
glCallList ( 0 VBO, 0 UBO, 0 ) w/ 1 attrib (mixed alloc) 6503 23709 265%
glCallList ( 0 VBO, 0 UBO, 0 ) w/ 2 attribs (mixed alloc) 6072 16664 174%
glCallList ( 0 VBO, 0 UBO, 0 ) w/ 1 and 2 attribs intermixed 3313 3840 16%
glCallList ( 0 VBO, 0 UBO, 0 ) w/ 1 attrib + 1 zero-stride 19951 18906 -5% Zero-stride attribs are not supported by this interface at this point

Merge request reports