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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to