[Mesa-dev] [PATCH 0/3] Etnaviv partial transfer optimization

Lucas Stach l.stach at pengutronix.de
Fri Sep 15 16:00:51 UTC 2017


Hi all,

this small series optimizes transfers where we de-/tile the resource with
the RS. Currently we are always blitting the whole resource between the
transfer and data buffer. This is really inefficient when the transfer only
targets part of the resource.

A prime example exposing the issue is an application uploading small
textures to a large texture atlas by using glTexSubImage2D, where I have
seen reductions in transfer time from 90ms before to 3ms with this series
applied.

No regressions with the piglit "gpu" profile.

Regards,
Lucas

Lucas Stach (3):
  etnaviv: support tile aligned RS blits
  etnaviv: add resource subregion copy
  etnaviv: optimize RS transfers

 src/gallium/drivers/etnaviv/etnaviv_clear_blit.c | 102 +++++++++++++++++++++--
 src/gallium/drivers/etnaviv/etnaviv_clear_blit.h |   5 ++
 src/gallium/drivers/etnaviv/etnaviv_transfer.c   |  29 ++++++-
 3 files changed, 124 insertions(+), 12 deletions(-)

-- 
2.11.0



More information about the mesa-dev mailing list