vc4: Rework scheduling of thread switch to cut one more NOP.
authorEric Anholt <eric@anholt.net>
Tue, 27 Dec 2016 21:52:54 +0000 (13:52 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 29 Dec 2016 23:22:54 +0000 (15:22 -0800)
commit88b41239f98c2d9b3e6cf9185b74876bb77362eb
tree5af284360d34aba34e0371c8504d5784b58b4522
parentd82dbc4cde1415560e259b5aac36f36175e8939a
vc4: Rework scheduling of thread switch to cut one more NOP.

Jonas's patch got us most of the benefit of scheduling instructions into
the delay slots of thread switch, but if there had been nothing to pair
the thrsw with, it would move the thrsw up and leave a NOP where the thrsw
was.

Instead, don't pair anything with thrsw through the normal scheduling
path, and have a separate helper function that inserts the thrsw earlier
if possible and inserts any necessary NOPs.

total instructions in shared programs: 93027 -> 92643 (-0.41%)
instructions in affected programs:     14952 -> 14568 (-2.57%)
src/gallium/drivers/vc4/vc4_qpu_schedule.c