[Mesa-dev] [PATCH 2/2] r600g: fix lockup when hyperz & alpha test are enabled together. v2

Michel Dänzer michel at daenzer.net
Mon Feb 11 23:32:56 PST 2013


On Mon, 2013-02-11 at 18:45 -0500, j.glisse at gmail.com wrote: 
> From: Jerome Glisse <jglisse at redhat.com>
> 
> Seems that alpha test being enabled confuse the GPU on the order in
> which it should perform the Z testing. So force the order programmed
> throught db shader control.
> 
> v2: Only force z order when alpha test is enabled
> 
> Signed-off-by: Jerome Glisse <jglisse at redhat.com>
> Reviewed-by: Marek Olšák <maraeo at gmail.com>
> ---
>  src/gallium/drivers/r600/evergreen_state.c | 25 +++++++++++++++++++++++--
>  src/gallium/drivers/r600/r600_state.c      | 22 +++++++++++++++++++++-
>  2 files changed, 44 insertions(+), 3 deletions(-)
> 
> diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
> index 211c218..b710131 100644
> --- a/src/gallium/drivers/r600/evergreen_state.c
> +++ b/src/gallium/drivers/r600/evergreen_state.c
> @@ -2251,6 +2251,13 @@ static void evergreen_emit_db_misc_state(struct r600_context *rctx, struct r600_
>  	if (rctx->db_state.rsurf && rctx->db_state.rsurf->htile_enabled) {
>  		/* FORCE_OFF means HiZ/HiS are determined by DB_SHADER_CONTROL */
>  		db_render_override |= S_02800C_FORCE_HIZ_ENABLE(V_02800C_FORCE_OFF);
> +		/* This is to fix a lockup when hyperz and alpha test are enabled at
> +		 * the same time some how GPU get confuse on which order to pick for

Spelling: 'somehow the GPU gets confused'


> @@ -3484,6 +3490,21 @@ void evergreen_update_db_shader_control(struct r600_context * rctx)
>  								V_02880C_EXPORT_DB_FULL) |
>  			S_02880C_ALPHA_TO_MASK_DISABLE(rctx->framebuffer.cb0_is_integer);
>  
> +	/* When alpha test is enabled we can't antrust the hw to make the proper

The correct spelling would be 'intrust' or 'entrust', but I think the
proper verb here is simply 'trust'.


Same comments apply to r600_state.c.


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the mesa-dev mailing list