All of lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org, stable@vger.kernel.org
Subject: Re: [Intel-gfx] [PATCH] drm/i915: Disable AsyncFlip performance optimisations
Date: Mon, 21 Jan 2013 22:25:36 +0200	[thread overview]
Message-ID: <1358799936.26140.3.camel@ideak-mobl> (raw)
In-Reply-To: <1358698280-29116-1-git-send-email-chris@chris-wilson.co.uk>

On Sun, 2013-01-20 at 16:11 +0000, Chris Wilson wrote:
> This is a required workarounds for all products, especially on gen6+
> where it causes the command streamer to fail to parse instructions
> following a WAIT_FOR_EVENT. We use WAIT_FOR_EVENT for synchronising
> between the GPU and the display engines, and so this bit being unset may
> cause hangs.
> 
> References: https://bugzilla.kernel.org/show_bug.cgi?id=52311
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: stable@vger.kernel.org

Reviewed-by: Imre Deak <imre.deak@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_reg.h         |    1 +
>  drivers/gpu/drm/i915/intel_ringbuffer.c |   19 +++++++++++++------
>  2 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 8b81052..db1c034 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -536,6 +536,7 @@
>  #define MI_MODE		0x0209c
>  # define VS_TIMER_DISPATCH				(1 << 6)
>  # define MI_FLUSH_ENABLE				(1 << 12)
> +# define ASYNC_FLIP_PERF_DISABLE			(1 << 14)
>  
>  #define GEN6_GT_MODE	0x20d0
>  #define   GEN6_GT_MODE_HI				(1 << 9)
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index ef68037..af7adb0 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -503,13 +503,20 @@ static int init_render_ring(struct intel_ring_buffer *ring)
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	int ret = init_ring_common(ring);
>  
> -	if (INTEL_INFO(dev)->gen > 3) {
> +	if (INTEL_INFO(dev)->gen > 3)
>  		I915_WRITE(MI_MODE, _MASKED_BIT_ENABLE(VS_TIMER_DISPATCH));
> -		if (IS_GEN7(dev))
> -			I915_WRITE(GFX_MODE_GEN7,
> -				   _MASKED_BIT_DISABLE(GFX_TLB_INVALIDATE_ALWAYS) |
> -				   _MASKED_BIT_ENABLE(GFX_REPLAY_MODE));
> -	}
> +
> +	/* We need to disable the AsyncFlip performance optimisations in order
> +	 * to use MI_WAIT_FOR_EVENT within the CS. It should already be
> +	 * programmed to '1' on all products.
> +	 */
> +	if (INTEL_INFO(dev)->gen >= 6)
> +		I915_WRITE(MI_MODE, _MASKED_BIT_ENABLE(ASYNC_FLIP_PERF_DISABLE));
> +
> +	if (IS_GEN7(dev))
> +		I915_WRITE(GFX_MODE_GEN7,
> +			   _MASKED_BIT_DISABLE(GFX_TLB_INVALIDATE_ALWAYS) |
> +			   _MASKED_BIT_ENABLE(GFX_REPLAY_MODE));
>  
>  	if (INTEL_INFO(dev)->gen >= 5) {
>  		ret = init_pipe_control(ring);

  reply	other threads:[~2013-01-21 20:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-20 16:11 [PATCH] drm/i915: Disable AsyncFlip performance optimisations Chris Wilson
2013-01-21 20:25 ` Imre Deak [this message]
2013-01-21 20:33   ` [Intel-gfx] " Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1358799936.26140.3.camel@ideak-mobl \
    --to=imre.deak@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.