Message ID | 1432110992-24224-1-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 20 May 2015 10:36:32 +0200 Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > In > > commit f02ad907cd9e7fe3a6405d2d005840912f1ed258 > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > Date: Thu Jan 22 16:36:23 2015 +0100 > > drm/atomic-helpers: Recover full cursor plane behaviour > > we've added a hack to atomic helpers to never to vblank waits for > cursor updates through the legacy apis since that's what X expects. > Unfortunately we've (again) forgotten to adjust the transitional > helpers. Do this now. > > This fixes regressions for drivers only partially converted over to > atomic (like i915). > > Reported-by: Pekka Paalanen <ppaalanen@gmail.com> > Cc: Pekka Paalanen <ppaalanen@gmail.com> > Cc: stable@vger.kernel.org > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > drivers/gpu/drm/drm_plane_helper.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c > index 40c1db9ad7c3..2f0ed11024eb 100644 > --- a/drivers/gpu/drm/drm_plane_helper.c > +++ b/drivers/gpu/drm/drm_plane_helper.c > @@ -465,6 +465,9 @@ int drm_plane_helper_commit(struct drm_plane *plane, > if (!crtc[i]) > continue; > > + if (crtc[i]->cursor == plane) > + continue; > + > /* There's no other way to figure out whether the crtc is running. */ > ret = drm_crtc_vblank_get(crtc[i]); > if (ret == 0) { Hi, just adding more people to CC who might want to test this. When you test this, please make sure your Weston does *NOT* have this patch: http://cgit.freedesktop.org/wayland/weston/commit/?id=6858383d51b12632481370fdc7d886a1e6bb4ebd That is, use Weston 1.7.92 or earlier. Thanks, pq
On 05/20/2015 10:36 AM, Daniel Vetter wrote: > In > > commit f02ad907cd9e7fe3a6405d2d005840912f1ed258 > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > Date: Thu Jan 22 16:36:23 2015 +0100 > > drm/atomic-helpers: Recover full cursor plane behaviour > > we've added a hack to atomic helpers to never to vblank waits for > cursor updates through the legacy apis since that's what X expects. > Unfortunately we've (again) forgotten to adjust the transitional > helpers. Do this now. > > This fixes regressions for drivers only partially converted over to > atomic (like i915). > > Reported-by: Pekka Paalanen <ppaalanen@gmail.com> > Cc: Pekka Paalanen <ppaalanen@gmail.com> > Cc: stable@vger.kernel.org > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > drivers/gpu/drm/drm_plane_helper.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c > index 40c1db9ad7c3..2f0ed11024eb 100644 > --- a/drivers/gpu/drm/drm_plane_helper.c > +++ b/drivers/gpu/drm/drm_plane_helper.c > @@ -465,6 +465,9 @@ int drm_plane_helper_commit(struct drm_plane *plane, > if (!crtc[i]) > continue; > > + if (crtc[i]->cursor == plane) > + continue; > + > /* There's no other way to figure out whether the crtc is running. */ > ret = drm_crtc_vblank_get(crtc[i]); > if (ret == 0) { > This one is Reviewed-and-tested-by: Mario Kleiner <mario.kleiner.de@gmail.com> I was looking into Weston performance and the cursor problem, so had necessary tracing in place to test this. I can confirm that cursor related blocking in Westons drm-backend execution are gone with this patch applied, whereas they are still present when using hardware overlays on Intel, as expected. So hardware cursors should be fine again, once the patch also ends in stable kernels. thanks, -mario
Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 6437
-------------------------------------Summary-------------------------------------
Platform Delta drm-intel-nightly Series Applied
PNV 234/234 234/234
ILK 262/262 262/262
SNB -1 282/282 281/282
IVB 300/300 300/300
BYT 254/254 254/254
BDW 275/275 275/275
-------------------------------------Detailed-------------------------------------
Platform Test drm-intel-nightly Series Applied
SNB igt@pm_rpm@dpms-mode-unset-non-lpsp DMESG_WARN(15)PASS(1) DMESG_WARN(1)
(dmesg patch applied)WARNING:at_drivers/gpu/drm/i915/intel_uncore.c:#assert_device_not_suspended[i915]()@WARNING:.* at .* assert_device_not_suspended+0x
Note: You need to pay more attention to line start with '*'
On Thu, 21 May 2015, Mario Kleiner <mario.kleiner.de@gmail.com> wrote: > On 05/20/2015 10:36 AM, Daniel Vetter wrote: >> In >> >> commit f02ad907cd9e7fe3a6405d2d005840912f1ed258 >> Author: Daniel Vetter <daniel.vetter@ffwll.ch> >> Date: Thu Jan 22 16:36:23 2015 +0100 >> >> drm/atomic-helpers: Recover full cursor plane behaviour >> >> we've added a hack to atomic helpers to never to vblank waits for >> cursor updates through the legacy apis since that's what X expects. >> Unfortunately we've (again) forgotten to adjust the transitional >> helpers. Do this now. >> >> This fixes regressions for drivers only partially converted over to >> atomic (like i915). >> >> Reported-by: Pekka Paalanen <ppaalanen@gmail.com> >> Cc: Pekka Paalanen <ppaalanen@gmail.com> >> Cc: stable@vger.kernel.org >> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> >> --- >> drivers/gpu/drm/drm_plane_helper.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c >> index 40c1db9ad7c3..2f0ed11024eb 100644 >> --- a/drivers/gpu/drm/drm_plane_helper.c >> +++ b/drivers/gpu/drm/drm_plane_helper.c >> @@ -465,6 +465,9 @@ int drm_plane_helper_commit(struct drm_plane *plane, >> if (!crtc[i]) >> continue; >> >> + if (crtc[i]->cursor == plane) >> + continue; >> + >> /* There's no other way to figure out whether the crtc is running. */ >> ret = drm_crtc_vblank_get(crtc[i]); >> if (ret == 0) { >> > > This one is > > Reviewed-and-tested-by: Mario Kleiner <mario.kleiner.de@gmail.com> > > I was looking into Weston performance and the cursor problem, so had > necessary tracing in place to test this. I can confirm that cursor > related blocking in Westons drm-backend execution are gone with this > patch applied, whereas they are still present when using hardware > overlays on Intel, as expected. > > So hardware cursors should be fine again, once the patch also ends in > stable kernels. Pushed to our topic/drm-fixes, thanks for the patch and review. BR, Jani. > > thanks, > -mario > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c index 40c1db9ad7c3..2f0ed11024eb 100644 --- a/drivers/gpu/drm/drm_plane_helper.c +++ b/drivers/gpu/drm/drm_plane_helper.c @@ -465,6 +465,9 @@ int drm_plane_helper_commit(struct drm_plane *plane, if (!crtc[i]) continue; + if (crtc[i]->cursor == plane) + continue; + /* There's no other way to figure out whether the crtc is running. */ ret = drm_crtc_vblank_get(crtc[i]); if (ret == 0) {
In commit f02ad907cd9e7fe3a6405d2d005840912f1ed258 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Thu Jan 22 16:36:23 2015 +0100 drm/atomic-helpers: Recover full cursor plane behaviour we've added a hack to atomic helpers to never to vblank waits for cursor updates through the legacy apis since that's what X expects. Unfortunately we've (again) forgotten to adjust the transitional helpers. Do this now. This fixes regressions for drivers only partially converted over to atomic (like i915). Reported-by: Pekka Paalanen <ppaalanen@gmail.com> Cc: Pekka Paalanen <ppaalanen@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- drivers/gpu/drm/drm_plane_helper.c | 3 +++ 1 file changed, 3 insertions(+)