freedreno: add batch-cache and batch reordering

Graphics / Mesa 3D Graphics Library / Mesa - Rob Clark [gmail.com] - 30 July 2016 08:23 UTC

Note that I originally also had a entry-point that would construct a key and do lookup from a pipe_surface. I ended up not needing that (yet?) but it is easy-enough to re-introduce later if we need it for the blit path.

For now, not enabled by default, but can be enabled (on a3xx/a4xx) with FD_MESA_DEBUG=reorder.

9f219c7 freedreno: add batch-cache and batch reordering
src/gallium/drivers/freedreno/Makefile.sources | 2 +
src/gallium/drivers/freedreno/freedreno_batch.c | 243 +++++++++++---
src/gallium/drivers/freedreno/freedreno_batch.h | 18 +-
.../drivers/freedreno/freedreno_batch_cache.c | 354 ++++++++++++++++++++
.../drivers/freedreno/freedreno_batch_cache.h | 73 ++++
src/gallium/drivers/freedreno/freedreno_context.c | 57 ++--
src/gallium/drivers/freedreno/freedreno_context.h | 2 -
src/gallium/drivers/freedreno/freedreno_draw.c | 4 +-
src/gallium/drivers/freedreno/freedreno_query_hw.c | 2 +-
src/gallium/drivers/freedreno/freedreno_resource.c | 50 ++-
src/gallium/drivers/freedreno/freedreno_resource.h | 31 +-
src/gallium/drivers/freedreno/freedreno_screen.c | 13 +
src/gallium/drivers/freedreno/freedreno_screen.h | 6 +-
src/gallium/drivers/freedreno/freedreno_state.c | 15 +-
src/gallium/drivers/freedreno/freedreno_util.h | 1 +
15 files changed, 760 insertions(+), 111 deletions(-)

Upstream: cgit.freedesktop.org


  • Share