[Mesa-dev] [PATCH 0/9] radeonsi: speed up no-op descriptor uploads

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Sat Jun 4 12:38:28 UTC 2016


On Fri, Jun 3, 2016 at 7:01 PM, Nicolai Hähnle <nhaehnle at 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 <bas at 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list