Hi, This series shrinks various gallium structures and removes set_index_buffer in order to decrease CPU overhead.
PART 1: Performance results All testing below was done with radeonsi, and I used the drawoverhead microbenchmark from mesa/demos ported to piglit and using GL 3.0 Compat and GL 3.2 Core (same GL states in both contexts). 1) Performance difference for the removal of set_index_buffer only: Compat: DrawElements: 5.1 -> 5.3 million draws/second Core: DrawElements: 5.1 -> 5.5 million draws/second The result is better for the core profile where u_vbuf is disabled. 2) Performance difference with all 4 patches (Core profile only) DrawArrays: 8.3 -> 8.5 million draws/second DrawElements: 5.2 -> 5.8 million draws/second 3) Performance difference with threaded Gallium (Core profile only): DrawElements: 5.9 -> 7.1 million draws/second Threaded Gallium is still work in progress and might require a non-trivial amount of driver work. PART 2: Call for testing These drivers have been tested: - ddebug - llvmpipe - r300 (also with SWTCL) - r600 - radeonsi - softpipe - trace These drivers need testing: - etnaviv - freedreno - nv30 - nv50 - nvc0 - svga - swr - vc4 - virgl The following state trackers might need testing: - nine You can get the patches by fetching: git://people.freedesktop.org/~mareko/mesa gallium-cleanup I'd like to ask to you for testing drivers that I couldn't test. Please let me know when you're done testing and if things are good. After that, I'll push everything assuming the code review goes well. You can also ignore this if you don't mind fixing your driver in the master branch later. Thanks, Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev