freedreno/a6xx: more early-z
authorRob Clark <robdclark@chromium.org>
Thu, 4 Jun 2020 17:07:57 +0000 (10:07 -0700)
committerMarge Bot <eric+marge@anholt.net>
Fri, 5 Jun 2020 00:57:44 +0000 (00:57 +0000)
commitf1f81abfd440b7b8ddb51203878a6b97547c19f5
tree7cac72cd20002051345b13161c0f6b992a96ba62
parent4d7ee2749f50f7cd76ce7bd753a2b9762e3af375
freedreno/a6xx: more early-z

Technically we only have to do late-z in the alpha-test or discard case
if depth-write is enabled.  If depth write is disabled, the depth read /
test / conditional-write interlock that we need to emulate is not a
problem, so we can still use early-z test.

There is a slightly weird case when there is no zsbuf attachment (see
dEQP-GLES31.functional.fbo.no_attachments.*) where the hw wants us to
use LATE_Z.. not entirely sure if this is an interaction with occlusion
query or just a pecularity of how the hw works when there is no depth
buffer.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5336>
src/gallium/drivers/freedreno/a6xx/fd6_emit.c