Message ID | 1436252911-5703-19-git-send-email-maarten.lankhorst@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 07, 2015 at 09:08:29AM +0200, Maarten Lankhorst wrote: > No point in applying vblank evasion if there's nothing to evade. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_display.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 71fc35d814d1..2eaccdc59a9a 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -13288,7 +13288,10 @@ static int intel_atomic_commit(struct drm_device *dev, > if (!modeset) > intel_pre_plane_update(intel_crtc); > > - drm_atomic_helper_commit_planes_on_crtc(crtc_state); > + if (crtc->state->planes_changed || > + to_intel_crtc_state(crtc->state)->update_pipe) > + drm_atomic_helper_commit_planes_on_crtc(crtc_state); What if we change some crtc property which is updated under vblank evasion, but no plane state? e.g. background color. Imo trying to optimize this doesn't speed up any common case, but makes things more fragile. -Daniel > + > intel_post_plane_update(intel_crtc); > } > > -- > 2.1.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Op 07-07-15 om 11:33 schreef Daniel Vetter: > On Tue, Jul 07, 2015 at 09:08:29AM +0200, Maarten Lankhorst wrote: >> No point in applying vblank evasion if there's nothing to evade. >> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >> --- >> drivers/gpu/drm/i915/intel_display.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c >> index 71fc35d814d1..2eaccdc59a9a 100644 >> --- a/drivers/gpu/drm/i915/intel_display.c >> +++ b/drivers/gpu/drm/i915/intel_display.c >> @@ -13288,7 +13288,10 @@ static int intel_atomic_commit(struct drm_device *dev, >> if (!modeset) >> intel_pre_plane_update(intel_crtc); >> >> - drm_atomic_helper_commit_planes_on_crtc(crtc_state); >> + if (crtc->state->planes_changed || >> + to_intel_crtc_state(crtc->state)->update_pipe) >> + drm_atomic_helper_commit_planes_on_crtc(crtc_state); > What if we change some crtc property which is updated under vblank > evasion, but no plane state? e.g. background color. Imo trying to optimize > this doesn't speed up any common case, but makes things more fragile. > update_pipe = true. ~Maarten
On Tue, Jul 07, 2015 at 12:51:06PM +0200, Maarten Lankhorst wrote: > Op 07-07-15 om 11:33 schreef Daniel Vetter: > > On Tue, Jul 07, 2015 at 09:08:29AM +0200, Maarten Lankhorst wrote: > >> No point in applying vblank evasion if there's nothing to evade. > >> > >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > >> --- > >> drivers/gpu/drm/i915/intel_display.c | 5 ++++- > >> 1 file changed, 4 insertions(+), 1 deletion(-) > >> > >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > >> index 71fc35d814d1..2eaccdc59a9a 100644 > >> --- a/drivers/gpu/drm/i915/intel_display.c > >> +++ b/drivers/gpu/drm/i915/intel_display.c > >> @@ -13288,7 +13288,10 @@ static int intel_atomic_commit(struct drm_device *dev, > >> if (!modeset) > >> intel_pre_plane_update(intel_crtc); > >> > >> - drm_atomic_helper_commit_planes_on_crtc(crtc_state); > >> + if (crtc->state->planes_changed || > >> + to_intel_crtc_state(crtc->state)->update_pipe) > >> + drm_atomic_helper_commit_planes_on_crtc(crtc_state); > > What if we change some crtc property which is updated under vblank > > evasion, but no plane state? e.g. background color. Imo trying to optimize > > this doesn't speed up any common case, but makes things more fragile. > > > update_pipe = true. Ah that's added in patch 12, which I've ignored a bit. I guess means we need to hold off on this one too until fastboot has settled more. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 71fc35d814d1..2eaccdc59a9a 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -13288,7 +13288,10 @@ static int intel_atomic_commit(struct drm_device *dev, if (!modeset) intel_pre_plane_update(intel_crtc); - drm_atomic_helper_commit_planes_on_crtc(crtc_state); + if (crtc->state->planes_changed || + to_intel_crtc_state(crtc->state)->update_pipe) + drm_atomic_helper_commit_planes_on_crtc(crtc_state); + intel_post_plane_update(intel_crtc); }
No point in applying vblank evasion if there's nothing to evade. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/i915/intel_display.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)