etnaviv: Do GC3000 resolve-in-place when possible
authorWladimir J. van der Laan <laanwj@gmail.com>
Sat, 30 Sep 2017 08:11:32 +0000 (10:11 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Thu, 12 Oct 2017 14:03:26 +0000 (16:03 +0200)
commit78ade659569ee6fe9bd244170956139f19dd8c6c
treeffcba1f85f30fc623932ef2105c427056931a3ec
parent3ba5a467a56c296490e641548cbb140de0083d03
etnaviv: Do GC3000 resolve-in-place when possible

If an RS blit is done with source exactly the same as destination, and
the hardware supports this, do an in-place resolve. This only fills in
tiles that have not been rendered to using information from the TS.

This is the same as the blob does and potentially saves significant
bandwidth when doing i.MX6qp scanout using PRE, and when rendering to
textures (though here using sampler TS would be even better).

Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
src/gallium/drivers/etnaviv/etnaviv_emit.c
src/gallium/drivers/etnaviv/etnaviv_rs.c
src/gallium/drivers/etnaviv/etnaviv_rs.h