Messages in this thread Patch in this message | | | Date | Mon, 12 Oct 2009 09:54:38 -0700 | From | Jesse Barnes <> | Subject | Re: 2.6.32 regression (bisected): Video tearing/glitching with T400 laptops |
| |
On Sat, 10 Oct 2009 16:41:06 -0400 Theodore Tso <tytso@mit.edu> wrote:
> On Thu, Oct 08, 2009 at 10:36:20AM -0700, Jesse Barnes wrote: > > On Fri, 02 Oct 2009 18:40:27 -0400 > > "Theodore Ts'o" <tytso@mit.edu> wrote: > > > > > Hi, > > > > > > In recent kernels, my X display (running with a KMS-enabled X > > > server) has been very jittery and with lots of glitching and > > > tearing --- sorry if this isn't the correct technical term, not > > > sure what it is --- on my T400 Lenovo laptop. It seems related > > > to what is on the desktop, and moving the mouse does seem to > > > affect the rate and percentage of the screen which jitters --- > > > which is enough to be very distracting, although I can still read > > > the contents of the windows where the screen is > > > tearing/glitching/flashing. > > > > > > I bisected it down to this commit: > > > > Can you give this patch a try? It seems to work for Keith at least, > > and it sounds like he was seeing the same problem. > > Nope, unfortunately, it's not helping on my T400 laptop. I'm still > getting huge amounts of glitching and tearing with this patch applied > against -rc3. > > What I'm using for now to fix up my system is this patch. >
How about this one? I have one more idea to try out if this doesn't work (hacking on it now).
Thanks, -- Jesse Barnes, Intel Open Source Technology Center
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 7a5fb79..1451945 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -1047,7 +1047,7 @@ static void g4x_enable_fbc(struct drm_crtc *crtc, unsigned long interval) dev_priv->cfb_fence = obj_priv->fence_reg; dev_priv->cfb_plane = intel_crtc->plane; - dpfc_ctl = plane | DPFC_SR_EN | DPFC_CTL_LIMIT_1X; + dpfc_ctl = plane | DPFC_CTL_LIMIT_1X; if (obj_priv->tiling_mode != I915_TILING_NONE) { dpfc_ctl |= DPFC_CTL_FENCE_EN | dev_priv->cfb_fence; I915_WRITE(DPFC_CHICKEN, DPFC_HT_MODIFY);
| |