gallium,st/mesa,vbo,radeonsi: new low overhead display list interface
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 |