freedreno/a6xx: fix LRZ logic
authorRob Clark <robdclark@chromium.org>
Fri, 6 Dec 2019 19:34:39 +0000 (11:34 -0800)
committerRob Clark <robdclark@gmail.com>
Tue, 10 Dec 2019 22:55:21 +0000 (22:55 +0000)
commit1b4c12d3eea5287933e9f1a8aa673d168f16a035
tree08f379565e05f10175a66ef80d6a865f8ae1cdd0
parent3c479849c5a58b246009aa3b883eedb0c0c9f51b
freedreno/a6xx: fix LRZ logic

In particular, we need to invalidate the LRZ state when we cannot be
confident in what the Z state would be during rendering:

1) depth test modes not supported by LRZ
2) stencil test, which would require full rasterization and stencil
   test in the binning pass (whereas LRZ normally just needs to
   determine the min and max z value in an 8x8 quad)

Signed-off-by: Rob Clark <robdclark@chromium.org>
src/freedreno/registers/a6xx.xml
src/gallium/drivers/freedreno/a6xx/fd6_emit.c
src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
src/gallium/drivers/freedreno/a6xx/fd6_zsa.c
src/gallium/drivers/freedreno/a6xx/fd6_zsa.h