[Mesa-dev] [PATCH 3/3] radeonsi: don't emit DB_STENCIL_CONTROL if it has no effect

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Jun 9 14:00:02 UTC 2017



On 06/09/2017 03:49 PM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> ---
>   src/gallium/drivers/radeonsi/si_state.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
> index 53f66ac..a8255f2 100644
> --- a/src/gallium/drivers/radeonsi/si_state.c
> +++ b/src/gallium/drivers/radeonsi/si_state.c
> @@ -1078,21 +1078,22 @@ static void *si_create_dsa_state(struct pipe_context *ctx,
>   	if (state->alpha.enabled) {
>   		dsa->alpha_func = state->alpha.func;
>   
>   		si_pm4_set_reg(pm4, R_00B030_SPI_SHADER_USER_DATA_PS_0 +
>   		               SI_SGPR_ALPHA_REF * 4, fui(state->alpha.ref_value));
>   	} else {
>   		dsa->alpha_func = PIPE_FUNC_ALWAYS;
>   	}
>   
>   	si_pm4_set_reg(pm4, R_028800_DB_DEPTH_CONTROL, db_depth_control);
> -	si_pm4_set_reg(pm4, R_02842C_DB_STENCIL_CONTROL, db_stencil_control);
> +	if (state->stencil[0].enabled)
> +		si_pm4_set_reg(pm4, R_02842C_DB_STENCIL_CONTROL, db_stencil_control);

How if stencil is enabled, then disabled? Doesn't this reg has to be set 
to 0?

>   	if (state->depth.bounds_test) {
>   		si_pm4_set_reg(pm4, R_028020_DB_DEPTH_BOUNDS_MIN, fui(state->depth.bounds_min));
>   		si_pm4_set_reg(pm4, R_028024_DB_DEPTH_BOUNDS_MAX, fui(state->depth.bounds_max));
>   	}
>   
>   	return dsa;
>   }
>   
>   static void si_bind_dsa_state(struct pipe_context *ctx, void *state)
>   {
> 


More information about the mesa-dev mailing list