On Fri, Jun 3, 2016 at 7:01 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: > Hi, > > it is quite common that few or even no descriptors (except for vertex > buffers) change between draw calls, but the function call overhead and > branchiness of the code that is involved in figuring out that nothing > changes takes a surprising amount of time, as measured by perf. > > The end goal of this series is to introduce a descriptors_dirty bitfield, > and use u_bit_scan to call si_upload_descriptors only for those descriptor > sets that saw some changes. In one micro-benchmark I've seen more than a 30% > speedup. The difference in real-world applications should of course be > *much* smaller (1-2% if you're really lucky, if that). Please review!
This series is Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl> Did you also try/benchmark using a dirty mask for emitting the pointers? - Bas > > Cheers, > Nicolai > -- > src/gallium/drivers/radeonsi/si_blit.c | 4 +- > .../drivers/radeonsi/si_descriptors.c | 427 ++++++++++------- > src/gallium/drivers/radeonsi/si_pipe.h | 4 +- > src/gallium/drivers/radeonsi/si_state.c | 9 +- > src/gallium/drivers/radeonsi/si_state.h | 41 +- > 5 files changed, 307 insertions(+), 178 deletions(-) > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev