All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips"
@ 2016-06-24 12:44 Chris Wilson
  2016-06-24 13:12 ` ✓ Ro.CI.BAT: success for " Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Chris Wilson @ 2016-06-24 12:44 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter

This reverts commit ee042aa40b66d18d465206845b0752c6a617ba3f.

Something appears to be off in the timing, but as far as I can tell it
is not along the event delivery path. The net effect appears to be
rendering flicker (the current render buffer appears on the scanout,
with what appears to be active rendering for a fraction of a frame) and
is causing me a headache.

The cursor is also being stalled by page flips, causing a "heavy mouse"
and jitter.

Reported-and-tested-by: Steven Newbury <steve@snewbury.org.uk>
Reported-by:  Rafael Ristovski  <rafael.ristovski@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96593
Testcase: igt/kms_cursor_legacy/basic-flip-vs-cursor
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 1141b86..d4a7872 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -11646,7 +11646,6 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe)
 	spin_unlock(&dev->event_lock);
 }
 
-__maybe_unused
 static int intel_crtc_page_flip(struct drm_crtc *crtc,
 				struct drm_framebuffer *fb,
 				struct drm_pending_vblank_event *event,
@@ -14008,7 +14007,7 @@ static const struct drm_crtc_funcs intel_crtc_funcs = {
 	.set_config = drm_atomic_helper_set_config,
 	.set_property = drm_atomic_helper_crtc_set_property,
 	.destroy = intel_crtc_destroy,
-	.page_flip = drm_atomic_helper_page_flip,
+	.page_flip = intel_crtc_page_flip,
 	.atomic_duplicate_state = intel_crtc_duplicate_state,
 	.atomic_destroy_state = intel_crtc_destroy_state,
 };
-- 
2.8.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* ✓ Ro.CI.BAT: success for Revert "drm/i915: Use atomic commits for legacy page_flips"
  2016-06-24 12:44 [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips" Chris Wilson
@ 2016-06-24 13:12 ` Patchwork
  2016-06-28  7:56 ` [PATCH] " Maarten Lankhorst
  2016-06-28 13:54 ` Daniel Stone
  2 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2016-06-24 13:12 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: Revert "drm/i915: Use atomic commits for legacy page_flips"
URL   : https://patchwork.freedesktop.org/series/9137/
State : success

== Summary ==

Series 9137v1 Revert "drm/i915: Use atomic commits for legacy page_flips"
http://patchwork.freedesktop.org/api/1.0/series/9137/revisions/1/mbox

Test kms_cursor_legacy:
        Subgroup basic-cursor-vs-flip:
                fail       -> PASS       (fi-skl-i5-6260u)
                fail       -> PASS       (fi-snb-i7-2600)

fi-hsw-i7-4770k  total:228  pass:195  dwarn:0   dfail:0   fail:0   skip:33 
fi-kbl-qkkr      total:228  pass:161  dwarn:28  dfail:0   fail:0   skip:39 
fi-skl-i5-6260u  total:228  pass:203  dwarn:0   dfail:0   fail:0   skip:25 
fi-snb-i7-2600   total:228  pass:175  dwarn:0   dfail:0   fail:0   skip:53 
fi-skl-i7-6700k failed to connect after reboot
ro-bdw-i7-5557U failed to connect after reboot

Results at /archive/results/CI_IGT_test/RO_Patchwork_1297/

8660f44 drm-intel-nightly: 2016y-06m-24d-11h-09m-19s UTC integration manifest
f24c9bb Revert "drm/i915: Use atomic commits for legacy page_flips"

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips"
  2016-06-24 12:44 [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips" Chris Wilson
  2016-06-24 13:12 ` ✓ Ro.CI.BAT: success for " Patchwork
@ 2016-06-28  7:56 ` Maarten Lankhorst
  2016-06-28  8:35   ` Chris Wilson
  2016-06-28 13:54 ` Daniel Stone
  2 siblings, 1 reply; 7+ messages in thread
From: Maarten Lankhorst @ 2016-06-28  7:56 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: Daniel Vetter

Op 24-06-16 om 14:44 schreef Chris Wilson:
> This reverts commit ee042aa40b66d18d465206845b0752c6a617ba3f.
>
> Something appears to be off in the timing, but as far as I can tell it
> is not along the event delivery path. The net effect appears to be
> rendering flicker (the current render buffer appears on the scanout,
> with what appears to be active rendering for a fraction of a frame) and
> is causing me a headache.
>
> The cursor is also being stalled by page flips, causing a "heavy mouse"
> and jitter.
>
> Reported-and-tested-by: Steven Newbury <steve@snewbury.org.uk>
> Reported-by:  Rafael Ristovski  <rafael.ristovski@gmail.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96593
> Testcase: igt/kms_cursor_legacy/basic-flip-vs-cursor
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 1141b86..d4a7872 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -11646,7 +11646,6 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe)
>  	spin_unlock(&dev->event_lock);
>  }
>  
> -__maybe_unused
>  static int intel_crtc_page_flip(struct drm_crtc *crtc,
>  				struct drm_framebuffer *fb,
>  				struct drm_pending_vblank_event *event,
> @@ -14008,7 +14007,7 @@ static const struct drm_crtc_funcs intel_crtc_funcs = {
>  	.set_config = drm_atomic_helper_set_config,
>  	.set_property = drm_atomic_helper_crtc_set_property,
>  	.destroy = intel_crtc_destroy,
> -	.page_flip = drm_atomic_helper_page_flip,
> +	.page_flip = intel_crtc_page_flip,
>  	.atomic_duplicate_state = intel_crtc_duplicate_state,
>  	.atomic_destroy_state = intel_crtc_destroy_state,
>  };

This still wouldn't fix updates based on nonblocking atomic commits, though probably less likely.

Does this bug get fixed by "drm/i915: Don't stall too much for cursor vs. pageflip" ?

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips"
  2016-06-28  7:56 ` [PATCH] " Maarten Lankhorst
@ 2016-06-28  8:35   ` Chris Wilson
  2016-06-28 14:44     ` Maarten Lankhorst
  0 siblings, 1 reply; 7+ messages in thread
From: Chris Wilson @ 2016-06-28  8:35 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: Daniel Vetter, intel-gfx

On Tue, Jun 28, 2016 at 09:56:47AM +0200, Maarten Lankhorst wrote:
> Op 24-06-16 om 14:44 schreef Chris Wilson:
> > This reverts commit ee042aa40b66d18d465206845b0752c6a617ba3f.
> >
> > Something appears to be off in the timing, but as far as I can tell it
> > is not along the event delivery path. The net effect appears to be
> > rendering flicker (the current render buffer appears on the scanout,
> > with what appears to be active rendering for a fraction of a frame) and
> > is causing me a headache.
> >
> > The cursor is also being stalled by page flips, causing a "heavy mouse"
> > and jitter.
> >
> > Reported-and-tested-by: Steven Newbury <steve@snewbury.org.uk>
> > Reported-by:  Rafael Ristovski  <rafael.ristovski@gmail.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96593
> > Testcase: igt/kms_cursor_legacy/basic-flip-vs-cursor
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_display.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index 1141b86..d4a7872 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -11646,7 +11646,6 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe)
> >  	spin_unlock(&dev->event_lock);
> >  }
> >  
> > -__maybe_unused
> >  static int intel_crtc_page_flip(struct drm_crtc *crtc,
> >  				struct drm_framebuffer *fb,
> >  				struct drm_pending_vblank_event *event,
> > @@ -14008,7 +14007,7 @@ static const struct drm_crtc_funcs intel_crtc_funcs = {
> >  	.set_config = drm_atomic_helper_set_config,
> >  	.set_property = drm_atomic_helper_crtc_set_property,
> >  	.destroy = intel_crtc_destroy,
> > -	.page_flip = drm_atomic_helper_page_flip,
> > +	.page_flip = intel_crtc_page_flip,
> >  	.atomic_duplicate_state = intel_crtc_duplicate_state,
> >  	.atomic_destroy_state = intel_crtc_destroy_state,
> >  };
> 
> This still wouldn't fix updates based on nonblocking atomic commits, though probably less likely.
> 
> Does this bug get fixed by "drm/i915: Don't stall too much for cursor vs. pageflip" ?

Only one side, cursor still stalls flips (or rather a flip can miss 10s of
vblanks under load), and the wrong buffers are still visible.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips"
  2016-06-24 12:44 [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips" Chris Wilson
  2016-06-24 13:12 ` ✓ Ro.CI.BAT: success for " Patchwork
  2016-06-28  7:56 ` [PATCH] " Maarten Lankhorst
@ 2016-06-28 13:54 ` Daniel Stone
  2 siblings, 0 replies; 7+ messages in thread
From: Daniel Stone @ 2016-06-28 13:54 UTC (permalink / raw)
  To: Chris Wilson; +Cc: Daniel Vetter, intel-gfx

Hi Chris,

On 24 June 2016 at 22:44, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> This reverts commit ee042aa40b66d18d465206845b0752c6a617ba3f.
>
> Something appears to be off in the timing, but as far as I can tell it
> is not along the event delivery path. The net effect appears to be
> rendering flicker (the current render buffer appears on the scanout,
> with what appears to be active rendering for a fraction of a frame) and
> is causing me a headache.

Does this change at all with the fixup in
https://lists.freedesktop.org/archives/intel-gfx/2016-June/099466.html
?

I was seeing no waits whatsoever for rendering, causing active
rendering to be visible towards positive x and negative y (top-right
corner) with this.

> The cursor is also being stalled by page flips, causing a "heavy mouse"
> and jitter.

This I can't attest to though.

Cheers,
Daniel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips"
  2016-06-28  8:35   ` Chris Wilson
@ 2016-06-28 14:44     ` Maarten Lankhorst
  2016-06-30 10:16       ` Chris Wilson
  0 siblings, 1 reply; 7+ messages in thread
From: Maarten Lankhorst @ 2016-06-28 14:44 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx, Daniel Vetter

Op 28-06-16 om 10:35 schreef Chris Wilson:
> On Tue, Jun 28, 2016 at 09:56:47AM +0200, Maarten Lankhorst wrote:
>> Op 24-06-16 om 14:44 schreef Chris Wilson:
>>> This reverts commit ee042aa40b66d18d465206845b0752c6a617ba3f.
>>>
>>> Something appears to be off in the timing, but as far as I can tell it
>>> is not along the event delivery path. The net effect appears to be
>>> rendering flicker (the current render buffer appears on the scanout,
>>> with what appears to be active rendering for a fraction of a frame) and
>>> is causing me a headache.
>>>
>>> The cursor is also being stalled by page flips, causing a "heavy mouse"
>>> and jitter.
>>>
>>> Reported-and-tested-by: Steven Newbury <steve@snewbury.org.uk>
>>> Reported-by:  Rafael Ristovski  <rafael.ristovski@gmail.com>
>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96593
>>> Testcase: igt/kms_cursor_legacy/basic-flip-vs-cursor
>>> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> ---
>>>  drivers/gpu/drm/i915/intel_display.c | 3 +--
>>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>>> index 1141b86..d4a7872 100644
>>> --- a/drivers/gpu/drm/i915/intel_display.c
>>> +++ b/drivers/gpu/drm/i915/intel_display.c
>>> @@ -11646,7 +11646,6 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe)
>>>  	spin_unlock(&dev->event_lock);
>>>  }
>>>  
>>> -__maybe_unused
>>>  static int intel_crtc_page_flip(struct drm_crtc *crtc,
>>>  				struct drm_framebuffer *fb,
>>>  				struct drm_pending_vblank_event *event,
>>> @@ -14008,7 +14007,7 @@ static const struct drm_crtc_funcs intel_crtc_funcs = {
>>>  	.set_config = drm_atomic_helper_set_config,
>>>  	.set_property = drm_atomic_helper_crtc_set_property,
>>>  	.destroy = intel_crtc_destroy,
>>> -	.page_flip = drm_atomic_helper_page_flip,
>>> +	.page_flip = intel_crtc_page_flip,
>>>  	.atomic_duplicate_state = intel_crtc_duplicate_state,
>>>  	.atomic_destroy_state = intel_crtc_destroy_state,
>>>  };
>> This still wouldn't fix updates based on nonblocking atomic commits, though probably less likely.
>>
>> Does this bug get fixed by "drm/i915: Don't stall too much for cursor vs. pageflip" ?
> Only one side, cursor still stalls flips (or rather a flip can miss 10s of
> vblanks under load), and the wrong buffers are still visible.
> -Chris
Since this only affects legacy page flips the fix is fine for now till we fix the root cause.

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips"
  2016-06-28 14:44     ` Maarten Lankhorst
@ 2016-06-30 10:16       ` Chris Wilson
  0 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2016-06-30 10:16 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: Daniel Vetter, intel-gfx

On Tue, Jun 28, 2016 at 04:44:42PM +0200, Maarten Lankhorst wrote:
> Op 28-06-16 om 10:35 schreef Chris Wilson:
> > On Tue, Jun 28, 2016 at 09:56:47AM +0200, Maarten Lankhorst wrote:
> >> Op 24-06-16 om 14:44 schreef Chris Wilson:
> >>> This reverts commit ee042aa40b66d18d465206845b0752c6a617ba3f.
> >>>
> >>> Something appears to be off in the timing, but as far as I can tell it
> >>> is not along the event delivery path. The net effect appears to be
> >>> rendering flicker (the current render buffer appears on the scanout,
> >>> with what appears to be active rendering for a fraction of a frame) and
> >>> is causing me a headache.
> >>>
> >>> The cursor is also being stalled by page flips, causing a "heavy mouse"
> >>> and jitter.
> >>>
> >>> Reported-and-tested-by: Steven Newbury <steve@snewbury.org.uk>
> >>> Reported-by:  Rafael Ristovski  <rafael.ristovski@gmail.com>
> >>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96593
> >>> Testcase: igt/kms_cursor_legacy/basic-flip-vs-cursor
> >>> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> >>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >>> ---
> >>>  drivers/gpu/drm/i915/intel_display.c | 3 +--
> >>>  1 file changed, 1 insertion(+), 2 deletions(-)
> >>>
> >>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> >>> index 1141b86..d4a7872 100644
> >>> --- a/drivers/gpu/drm/i915/intel_display.c
> >>> +++ b/drivers/gpu/drm/i915/intel_display.c
> >>> @@ -11646,7 +11646,6 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe)
> >>>  	spin_unlock(&dev->event_lock);
> >>>  }
> >>>  
> >>> -__maybe_unused
> >>>  static int intel_crtc_page_flip(struct drm_crtc *crtc,
> >>>  				struct drm_framebuffer *fb,
> >>>  				struct drm_pending_vblank_event *event,
> >>> @@ -14008,7 +14007,7 @@ static const struct drm_crtc_funcs intel_crtc_funcs = {
> >>>  	.set_config = drm_atomic_helper_set_config,
> >>>  	.set_property = drm_atomic_helper_crtc_set_property,
> >>>  	.destroy = intel_crtc_destroy,
> >>> -	.page_flip = drm_atomic_helper_page_flip,
> >>> +	.page_flip = intel_crtc_page_flip,
> >>>  	.atomic_duplicate_state = intel_crtc_duplicate_state,
> >>>  	.atomic_destroy_state = intel_crtc_destroy_state,
> >>>  };
> >> This still wouldn't fix updates based on nonblocking atomic commits, though probably less likely.
> >>
> >> Does this bug get fixed by "drm/i915: Don't stall too much for cursor vs. pageflip" ?
> > Only one side, cursor still stalls flips (or rather a flip can miss 10s of
> > vblanks under load), and the wrong buffers are still visible.
> > -Chris
> Since this only affects legacy page flips the fix is fine for now till we fix the root cause.
> 
> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

I've pushed this now. Daniel has undoubtably found the cause of the
tearing bug, but he is also right that with one old/new state mixup
there is likely more. Then there is the challenge of getting
nonblocking cursors and unstalling flips.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-06-30 10:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-24 12:44 [PATCH] Revert "drm/i915: Use atomic commits for legacy page_flips" Chris Wilson
2016-06-24 13:12 ` ✓ Ro.CI.BAT: success for " Patchwork
2016-06-28  7:56 ` [PATCH] " Maarten Lankhorst
2016-06-28  8:35   ` Chris Wilson
2016-06-28 14:44     ` Maarten Lankhorst
2016-06-30 10:16       ` Chris Wilson
2016-06-28 13:54 ` Daniel Stone

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.