summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/etnaviv/etnaviv_emit.c
diff options
context:
space:
mode:
authorJonathan Marek <[email protected]>2019-09-17 07:49:46 -0400
committerJonathan Marek <[email protected]>2019-09-28 00:34:43 -0400
commitd4e35e62d279be2c49985a9733ad1bf4c4237603 (patch)
treecc799e5fec94d819d69f6c54964de3d04a5b51f9 /src/gallium/drivers/etnaviv/etnaviv_emit.c
parentdc3656c9c48915cd86f460021438b3a9ef85ef67 (diff)
etnaviv: disable earlyZ when shader writes fragment depth
Fixes the following piglit test: fragdepth_gles2 Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
Diffstat (limited to 'src/gallium/drivers/etnaviv/etnaviv_emit.c')
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_emit.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c b/src/gallium/drivers/etnaviv/etnaviv_emit.c
index a9ed1f615e9..338ea9ebca0 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_emit.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c
@@ -451,9 +451,10 @@ etna_emit_state(struct etna_context *ctx)
: ctx->shader_state.PS_TEMP_REGISTER_CONTROL);
/*01010*/ EMIT_STATE(PS_CONTROL, ctx->shader_state.PS_CONTROL);
}
- if (unlikely(dirty & (ETNA_DIRTY_ZSA | ETNA_DIRTY_FRAMEBUFFER))) {
- uint32_t val = etna_zsa_state(ctx->zsa)->PE_DEPTH_CONFIG;
- /*01400*/ EMIT_STATE(PE_DEPTH_CONFIG, val | ctx->framebuffer.PE_DEPTH_CONFIG);
+ if (unlikely(dirty & (ETNA_DIRTY_ZSA | ETNA_DIRTY_FRAMEBUFFER | ETNA_DIRTY_SHADER))) {
+ /*01400*/ EMIT_STATE(PE_DEPTH_CONFIG, (etna_zsa_state(ctx->zsa)->PE_DEPTH_CONFIG |
+ ctx->framebuffer.PE_DEPTH_CONFIG) &
+ ctx->shader_state.PE_DEPTH_CONFIG);
}
if (unlikely(dirty & (ETNA_DIRTY_VIEWPORT))) {
/*01404*/ EMIT_STATE(PE_DEPTH_NEAR, ctx->viewport.PE_DEPTH_NEAR);