NIR brings us better optimization than I would have bothered to write within the driver, developers sharing future optimization work, and the ability to share device-specific lowering code that we and other GLES2-level drivers need.
total uniforms in shared programs: 13421 -> 13422 (0.01%) uniforms in affected programs: 62 -> 63 (1.61%) total instructions in shared programs: 39961 -> 39707 (-0.64%) instructions in affected programs: 15494 -> 15240 (-1.64%)
v2: Add missing imov support, and assert that there are no dest saturates.
v3: Rebase on the target-specific algebraic series.
v4: Rebase on gallium-includes-from-NIR changes in mater.
v5: Rebase on variables being in lists instead of hash tables.
v6: Squash in intermediate changes that used the NIR-to-TGSI pass (which I'm not committing)
73e2d48 vc4: Convert to consuming NIR.
src/gallium/drivers/vc4/vc4_program.c | 1398 ++++++++++++++++-----------------
src/gallium/drivers/vc4/vc4_qir.c | 3 +
src/gallium/drivers/vc4/vc4_qir.h | 23 +-
src/gallium/drivers/vc4/vc4_screen.c | 2 +
src/gallium/drivers/vc4/vc4_screen.h | 1 +
5 files changed, 707 insertions(+), 720 deletions(-)
Upstream: cgit.freedesktop.org