vc4: Introduce scheduling of QPU instructions.
authorEric Anholt <eric@anholt.net>
Wed, 26 Nov 2014 20:44:19 +0000 (12:44 -0800)
committerEric Anholt <eric@anholt.net>
Mon, 1 Dec 2014 19:00:23 +0000 (11:00 -0800)
commit3fe4d8e1e39b47c9c5c4bfdd87300abd0c336a7e
tree5ac8c5cee06176519262f90dabb3d304c120f655
parent6958c404caf3f4b2219ef686e2beeeaf48664905
vc4: Introduce scheduling of QPU instructions.

This doesn't reschedule much currently, just tries to fit things into the
regfile A/B write-versus-read slots (the cause of the improvements in
shader-db), and hide texture fetch latency by scheduling setup early and
results collection late (haven't performance tested it).  This
infrastructure will be important for doing instruction pairing, though.

shader-db2 results:
total instructions in shared programs: 61874 -> 59583 (-3.70%)
instructions in affected programs:     50677 -> 48386 (-4.52%)
src/gallium/drivers/vc4/Makefile.sources
src/gallium/drivers/vc4/vc4_qir.h
src/gallium/drivers/vc4/vc4_qpu.c
src/gallium/drivers/vc4/vc4_qpu.h
src/gallium/drivers/vc4/vc4_qpu_emit.c
src/gallium/drivers/vc4/vc4_qpu_schedule.c [new file with mode: 0644]