vc4: Implement job shuffling

Graphics / Mesa 3D Graphics Library / Mesa - Eric Anholt [anholt.net] - 14 September 2016 00:25 UTC

Track rendering to each FBO independently and flush rendering only when necessary. This lets us avoid the overhead of storing and loading the frame when an application momentarily switches to rendering to some other texture in order to continue rendering the main scene.

Improves glmark -b desktop:effect=shadow:windows=4 by 27% Improves glmark -b desktop:blur-radius=5:effect=blur:passes=1:separable=true:windows=4 by 17%

While I haven't tested other apps, this should help X rendering a lot, and I've heard GLBenchmark needed it too.

f597ac3 vc4: Implement job shuffling
src/gallium/drivers/vc4/vc4_blit.c | 26 ++-
src/gallium/drivers/vc4/vc4_context.c | 101 ++---------
src/gallium/drivers/vc4/vc4_context.h | 39 ++++-
src/gallium/drivers/vc4/vc4_draw.c | 22 ++-
src/gallium/drivers/vc4/vc4_job.c | 276 +++++++++++++++++++++++++++----
src/gallium/drivers/vc4/vc4_resource.c | 17 +-
src/gallium/drivers/vc4/vc4_simulator.c | 10 +-
src/gallium/drivers/vc4/vc4_state.c | 36 +---
8 files changed, 333 insertions(+), 194 deletions(-)

Upstream: cgit.freedesktop.org


  • Share