summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_state_draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state_draw.c')
-rw-r--r--src/gallium/drivers/radeonsi/si_state_draw.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index d5587c7..b608f20 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -147,7 +147,7 @@ static void si_pipe_shader_ps(struct pipe_context *ctx, struct si_pipe_shader *s
if (shader->shader.output[i].name == TGSI_SEMANTIC_STENCIL)
db_shader_control |= 0; // XXX OP_VAL or TEST_VAL?
}
- if (shader->shader.uses_kill)
+ if (shader->shader.uses_kill || shader->key.alpha_func != PIPE_FUNC_ALWAYS)
db_shader_control |= S_02880C_KILL_ENABLE(1);
exports_ps = 0;
@@ -306,23 +306,6 @@ static bool si_update_draw_info_state(struct r600_context *rctx,
return true;
}
-static void si_update_alpha_ref(struct r600_context *rctx)
-{
-#if 0
- unsigned alpha_ref;
- struct r600_pipe_state rstate;
-
- alpha_ref = rctx->alpha_ref;
- rstate.nregs = 0;
- if (rctx->export_16bpc)
- alpha_ref &= ~0x1FFF;
- si_pm4_set_reg(&rstate, R_028438_SX_ALPHA_REF, alpha_ref);
-
- si_pm4_set_state(rctx, TODO, pm4);
- rctx->alpha_ref_dirty = false;
-#endif
-}
-
static void si_update_spi_map(struct r600_context *rctx)
{
struct si_shader *ps = &rctx->ps_shader->current->shader;
@@ -392,10 +375,6 @@ static void si_update_derived_state(struct r600_context *rctx)
si_shader_select(ctx, rctx->ps_shader, &ps_dirty);
- if (rctx->alpha_ref_dirty) {
- si_update_alpha_ref(rctx);
- }
-
if (!rctx->vs_shader->current->pm4) {
si_pipe_shader_vs(ctx, rctx->vs_shader->current);
}