[Mesa-dev] [PATCH] radeonsi: disable the constant engine (CE) on Carrizo and Stoney

Nicolai Hähnle nhaehnle at gmail.com
Thu Dec 8 13:54:59 UTC 2016


On 07.12.2016 23:05, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> It must be disabled until the kernel bug is fixed, and then we'll enable CE
> based on the DRM version.
>
> Cc: 12.0 13.0 <mesa-stable at lists.freedesktop.org>

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

> ---
>  src/gallium/drivers/radeonsi/si_pipe.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
> index 71fc557..88685f9 100644
> --- a/src/gallium/drivers/radeonsi/si_pipe.c
> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
> @@ -180,21 +180,24 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen,
>  	} else {
>  		sctx->b.b.create_video_codec = vl_create_decoder;
>  		sctx->b.b.create_video_buffer = vl_video_buffer_create;
>  	}
>
>  	sctx->b.gfx.cs = ws->cs_create(sctx->b.ctx, RING_GFX,
>  				       si_context_gfx_flush, sctx);
>
>  	/* SI + AMDGPU + CE = GPU hang */
>  	if (!(sscreen->b.debug_flags & DBG_NO_CE) && ws->cs_add_const_ib &&
> -	    sscreen->b.chip_class != SI) {
> +	    sscreen->b.chip_class != SI &&
> +	    /* These can't use CE due to a power gating bug in the kernel. */
> +	    sscreen->b.family != CHIP_CARRIZO &&
> +	    sscreen->b.family != CHIP_STONEY) {
>  		sctx->ce_ib = ws->cs_add_const_ib(sctx->b.gfx.cs);
>  		if (!sctx->ce_ib)
>  			goto fail;
>
>  		if (ws->cs_add_const_preamble_ib) {
>  			sctx->ce_preamble_ib =
>  			           ws->cs_add_const_preamble_ib(sctx->b.gfx.cs);
>
>  			if (!sctx->ce_preamble_ib)
>  				goto fail;
>


More information about the mesa-dev mailing list