drm/vc4: improve throughput by pipelining binning and rendering jobs
authorVarad Gautam <varadgautam@gmail.com>
Wed, 17 Feb 2016 13:38:21 +0000 (19:08 +0530)
committerEric Anholt <eric@anholt.net>
Mon, 14 Mar 2016 00:05:05 +0000 (17:05 -0700)
commitca26d28bbaa39f31d5e7e4812603b015c8d54207
tree25e4b6777ecfb6844739479949dac3c32479ea4a
parent67d1c0a25c05e2105d12abd9c0172d2d5c0e7654
drm/vc4: improve throughput by pipelining binning and rendering jobs

The hardware provides us with separate threads for binning and
rendering, and the existing model waits for them both to complete
before submitting the next job.

Splitting the binning and rendering submissions reduces idle time and
gives us approx 20-30% speedup with some x11perf tests such as -line10
and -tilerect1.  Improves openarena performance by 1.01897% +/-
0.247857% (n=16).

Thanks to anholt for suggesting this.

v2: Rebase on the spurious resets fix (change by anholt).

Signed-off-by: Varad Gautam <varadgautam@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/vc4/vc4_drv.h
drivers/gpu/drm/vc4/vc4_gem.c
drivers/gpu/drm/vc4/vc4_irq.c