summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2020-12-19 01:23:12 +0100
committerDylan Baker <dylan.c.baker@intel.com>2021-01-04 09:22:29 -0800
commitd7c09d09aa0b3532839adb761f7a96d6956622f4 (patch)
treeab8200b650852f3b3b3ac437e30a5ea150000a3a
parentb83d96666dd59504322990e2bb12ee3902a82e42 (diff)
etnaviv: Fix rework ZSA into a derived state
In case the stencil is modified, it is also enabled. That was the behavior of the original code, which was also the correct behavior, so reinstate the behavior. Fixes dEQP-GLES2.functional.fragment_ops.depth_stencil.* on STM32MP1 GC400T. Fixes: b29fe26d438 ("etnaviv: rework ZSA into a derived state") Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Signed-off-by: Marek Vasut <marex@denx.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8174> (cherry picked from commit 33a6c01e12cca60903fb78af44ecca3899ad628f)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_zsa.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 6cbca26feb6..b0a96f111a1 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -526,7 +526,7 @@
"description": "etnaviv: Fix rework ZSA into a derived state",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "b29fe26d43874c90df60edbffda70fca67b98e4a"
},
diff --git a/src/gallium/drivers/etnaviv/etnaviv_zsa.c b/src/gallium/drivers/etnaviv/etnaviv_zsa.c
index 66d0c290c9f..b0f94993622 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_zsa.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_zsa.c
@@ -77,11 +77,13 @@ etna_zsa_state_create(struct pipe_context *pctx,
if (so->stencil[0].fail_op != PIPE_STENCIL_OP_KEEP ||
so->stencil[0].zfail_op != PIPE_STENCIL_OP_KEEP ||
so->stencil[0].zpass_op != PIPE_STENCIL_OP_KEEP) {
+ cs->stencil_enabled = 1;
cs->stencil_modified = 1;
} else if (so->stencil[1].enabled) {
if (so->stencil[1].fail_op != PIPE_STENCIL_OP_KEEP ||
so->stencil[1].zfail_op != PIPE_STENCIL_OP_KEEP ||
so->stencil[1].zpass_op != PIPE_STENCIL_OP_KEEP) {
+ cs->stencil_enabled = 1;
cs->stencil_modified = 1;
}
}