From: Marek Olšák Date: Fri, 19 Sep 2014 15:07:07 +0000 (+0200) Subject: radeonsi: set KILL_ENABLE during shader compilation, remove uses_kill flag X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=adc5797f54260ccf60020c00c231d9c00a00b13d;p=mesa.git radeonsi: set KILL_ENABLE during shader compilation, remove uses_kill flag Reviewed-by: Michel Dänzer --- diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 19dc9ca6d73..5893531f816 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -774,6 +774,8 @@ static void si_alpha_test(struct lp_build_tgsi_context *bld_base, LLVMVoidTypeInContext(gallivm->context), NULL, 0, 0); } + + si_shader_ctx->shader->db_shader_control |= S_02880C_KILL_ENABLE(1); } static void si_llvm_emit_clipvertex(struct lp_build_tgsi_context * bld_base, @@ -2751,7 +2753,9 @@ int si_pipe_shader_create( tgsi_scan_shader(sel->tokens, &shader_info); - shader->shader.uses_kill = shader_info.uses_kill; + if (shader_info.uses_kill) + shader->db_shader_control |= S_02880C_KILL_ENABLE(1); + shader->shader.uses_instanceid = shader_info.uses_instanceid; bld_base->info = &shader_info; bld_base->emit_fetch_funcs[TGSI_FILE_CONSTANT] = fetch_constant; diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index e07d872f84c..559e4e2e302 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -142,7 +142,6 @@ struct si_shader { unsigned gs_max_out_vertices; unsigned nparam; - bool uses_kill; bool uses_instanceid; bool fs_write_all; bool vs_out_misc_write; diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index 37dc40b19b3..28e92fced0d 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -266,9 +266,6 @@ static void si_pipe_shader_ps(struct pipe_context *ctx, struct si_pipe_shader *s db_shader_control |= shader->db_shader_control; - if (shader->shader.uses_kill || shader->key.ps.alpha_func != PIPE_FUNC_ALWAYS) - db_shader_control |= S_02880C_KILL_ENABLE(1); - spi_ps_in_control = S_0286D8_NUM_INTERP(shader->shader.nparam) | S_0286D8_BC_OPTIMIZE_DISABLE(1);