v3d: fix condition for EZ disabling when stencil on

When stencil is enabled and it isn't non-op, Early-Z must be disabled.

The condition that checks this for stencil[0] is correct, but the one
for stencil[1] is wrong: it uses an "and" instead of "or" condition.

This affects dEQP-GLES3.functional.fragment_ops.interaction.basic_shader.14

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22081>
This commit is contained in:
Juan A. Suarez Romero
2023-03-22 19:05:17 +01:00
committed by Marge Bot
parent 7941db652e
commit 2413cb2965

View File

@@ -208,7 +208,7 @@ v3d_create_depth_stencil_alpha_state(struct pipe_context *pctx,
(cso->stencil[0].zfail_op != PIPE_STENCIL_OP_KEEP ||
cso->stencil[0].func != PIPE_FUNC_ALWAYS ||
(cso->stencil[1].enabled &&
(cso->stencil[1].zfail_op != PIPE_STENCIL_OP_KEEP &&
(cso->stencil[1].zfail_op != PIPE_STENCIL_OP_KEEP ||
cso->stencil[1].func != PIPE_FUNC_ALWAYS)))) {
so->ez_state = V3D_EZ_DISABLED;
}