All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Richter <thor@math.tu-berlin.de>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Avoid flicker with horizontal panning on 830GM
Date: Mon, 02 Sep 2013 15:58:59 +0200	[thread overview]
Message-ID: <522499A3.50502@math.tu-berlin.de> (raw)
In-Reply-To: <2593_1378105810_522439D2_2593_1811_1_20130902071022.GP9374@phenom.ffwll.local>

Hi Daniel,

> I've just looked at the docs and they only mention that the base address
> must be pixel aligned. But it could very well be that the watermarks are a
> bit off for your chipset. The below quick hack should test this theory.
> -Daniel
>
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index dfdc7ad..990b1f4 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -1673,7 +1673,7 @@ static void i830_update_wm(struct drm_device *dev)
>   				       dev_priv->display.get_fifo_size(dev, 0),
>   				       4, latency_ns);
>   	fwater_lo = I915_READ(FW_BLC)&  ~0xfff;
> -	fwater_lo |= (3<<8) | planea_wm;
> +	fwater_lo |= (3<<8) | 0;
>
>   	DRM_DEBUG_KMS("Setting FIFO watermarks - A: %d\n", planea_wm);
>
Checked with the above modifications. Unfortunately, the result is 
negative. With the above modifications and my changes commented out, the 
screen flickers in normal state (without panning) but in a different 
way: With the above enabled, you get a rather irregular almost 
pseudo-random flicker, and not the 60/30Hz flicker I see when panning 
horizontally. If I add horizontal panning, then I also get this 
irregular flicker, except when scrolling to the "forbidden positions" at 
which I get the regular hi-frequency flicker again.

However, now that I checked closer, I found that my patch has also a 
drawback, namely the hardware scroll position and the requested scroll 
position disagrees, i.e. the mouse pointer is not exactly where it 
should be, i.e. the mouse pointer hot-spot is off.

Is there a way to indicate the calling method what the actual 
panning/scroll position is if it is different from the requested position?

Is there a different method to scroll the screen than to adjust the 
screen origin? Old hardware had not only a screen pointer, but also a 
pixel-offset (horizontal scroll) register. Is there something like this 
on the 830M to work around the observed trouble?

Greetings,
     Thomas

PS: A closer inspection shows that the screen flickers if the panning 
position x has the property that (x mod 16) != 0. Strange enough.

  parent reply	other threads:[~2013-09-02 13:59 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-01 17:01 [PATCH] drm/i915: Avoid flicker with horizontal panning on 830GM Thomas Richter
2013-09-02  7:10 ` Daniel Vetter
2013-09-02 14:12   ` Ville Syrjälä
     [not found] ` <2593_1378105810_522439D2_2593_1811_1_20130902071022.GP9374@phenom.ffwll.local>
2013-09-02 13:58   ` Thomas Richter [this message]
2013-09-02 14:18     ` Daniel Vetter
2013-09-02 14:21     ` Ville Syrjälä
     [not found]     ` <2593_1378131525_52249E45_2593_4993_1_20130902141857.GW9374@phenom.ffwll.local>
2013-09-02 15:21       ` Thomas Richter
2013-09-05 14:51       ` Thomas Richter
2013-09-05 14:56         ` 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=522499A3.50502@math.tu-berlin.de \
    --to=thor@math.tu-berlin.de \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.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.