summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Marek <jonathan@marek.ca>2019-09-02 14:46:15 -0400
committerDylan Baker <dylan@pnwbakers.com>2019-10-31 08:43:30 -0700
commit49e105048b43b29bceb223cc9099badfa2752a26 (patch)
tree0c73a6c6337959c4b50aefb722e0c15d28f14e62
parentdb4f7eae8bf617c9409f4f94b4d2b7b40e7c8b6c (diff)
etnaviv: fix depth bias
Fixes remaining failures in these deqp tests (tested on GC3000/GC7000L): dEQP-GLES2.functional.polygon_offset.* Fixes: 6c3c05dc ("etnaviv: fix polygon offset") Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> (cherry picked from commit 7b524e1acbe7d704a9920302529a0e02e8ef9a55)
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_rasterizer.c2
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_state.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c b/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
index b782e120537..2f218d6c063 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
@@ -56,7 +56,7 @@ etna_rasterizer_state_create(struct pipe_context *pctx,
cs->PA_LINE_WIDTH = fui(so->line_width / 2.0f);
cs->PA_POINT_SIZE = fui(so->point_size / 2.0f);
cs->SE_DEPTH_SCALE = fui(so->offset_scale);
- cs->SE_DEPTH_BIAS = fui(so->offset_units);
+ cs->SE_DEPTH_BIAS = fui((so->offset_units / 65535.0f) * 2.0f);
cs->SE_CONFIG = COND(so->line_last_pixel, VIVS_SE_CONFIG_LAST_PIXEL_ENABLE);
/* XXX anything else? */
/* XXX bottom_edge_rule */
diff --git a/src/gallium/drivers/etnaviv/etnaviv_state.c b/src/gallium/drivers/etnaviv/etnaviv_state.c
index 4884865e78d..84fc9f88aad 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_state.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_state.c
@@ -226,6 +226,7 @@ etna_set_framebuffer_state(struct pipe_context *pctx,
depth_format |
COND(depth_supertiled, VIVS_PE_DEPTH_CONFIG_SUPER_TILED) |
VIVS_PE_DEPTH_CONFIG_DEPTH_MODE_Z |
+ VIVS_PE_DEPTH_CONFIG_UNK18 | /* something to do with clipping? */
COND(ctx->specs.halti >= 5, VIVS_PE_DEPTH_CONFIG_DISABLE_ZS) /* Needs to be enabled on GC7000, otherwise depth writes hang w/ TS - apparently it does something else now */
;
/* VIVS_PE_DEPTH_CONFIG_ONLY_DEPTH */