etnaviv: rework TS enable to be a derived state
authorLucas Stach <l.stach@pengutronix.de>
Thu, 12 Oct 2017 14:07:48 +0000 (16:07 +0200)
committerChristian Gmeiner <christian.gmeiner@gmail.com>
Sat, 14 Oct 2017 14:40:08 +0000 (16:40 +0200)
commit4daee6733f3c4c755f9450a0dea33c0203cacd68
tree21a5ecf25d7b20101cb53574556b38909ba8bb8b
parent34360ac6eddd44f20aae2a382fc4c7a77f9096ba
etnaviv: rework TS enable to be a derived state

Draw operations should not use the TS if the TS buffer content is invalid,
as this leads to wrong rendering or even GPU hangs. As the TS valid status
can change between draws (clear operations changing it to valid, blits using
the RS to the color or ZS buffer changing it to invalid), the TS_MEM_CONFIG
must be updated before each draw if the status has changed.

This fixes the remaining TS related piglit failures (regressions of a
standard run against a piglit run with TS completely disabled).

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