freedreno/a6xx: backface stencil state
authorRob Clark <robdclark@gmail.com>
Fri, 14 Sep 2018 20:44:32 +0000 (16:44 -0400)
committerRob Clark <robdclark@gmail.com>
Thu, 27 Sep 2018 19:31:56 +0000 (15:31 -0400)
Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a6xx/fd6_emit.c
src/gallium/drivers/freedreno/a6xx/fd6_zsa.c

index 5528077..7433e39 100644 (file)
@@ -654,7 +654,8 @@ fd6_emit_state(struct fd_context *ctx, struct fd_ringbuffer *ring,
                struct pipe_stencil_ref *sr = &ctx->stencil_ref;
 
                OUT_PKT4(ring, REG_A6XX_RB_STENCILREF, 3);
-               OUT_RING(ring, A6XX_RB_STENCILREF_REF(sr->ref_value[0]));  // TODO bf?
+               OUT_RING(ring, A6XX_RB_STENCILREF_REF(sr->ref_value[0]) |
+                               A6XX_RB_STENCILREF_BFREF(sr->ref_value[1]));
                OUT_RING(ring, zsa->rb_stencilmask);
                OUT_RING(ring, zsa->rb_stencilwrmask);
        }
index 84a5d21..b7ce799 100644 (file)
@@ -101,7 +101,8 @@ fd6_zsa_state_create(struct pipe_context *pctx,
                                A6XX_RB_STENCIL_CONTROL_ZPASS_BF(fd_stencil_op(bs->zpass_op)) |
                                A6XX_RB_STENCIL_CONTROL_ZFAIL_BF(fd_stencil_op(bs->zfail_op));
 
-                       // TODO backface stencil state?
+                       so->rb_stencilmask |= A6XX_RB_STENCILMASK_BFMASK(bs->valuemask);
+                       so->rb_stencilwrmask |= A6XX_RB_STENCILWRMASK_BFWRMASK(bs->writemask);
                }
        }