Message ID | 1465388359-8070-16-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jun 08, 2016 at 02:19:08PM +0200, Daniel Vetter wrote: > Note that I didn't start garbage collecting all the legacy flip code > yet, to make it easier to revert this. But there will be _lots_ of > code that can be removed once this is tested on all platforms. > > FIXME: obj->frontbuffer_bits gets out of whack when pipelining > commits too hard. Possible to write a test case using dumb kms, or just point me at one you have already? :) -Chris
On Wed, Jun 08, 2016 at 03:24:01PM +0100, Chris Wilson wrote: > On Wed, Jun 08, 2016 at 02:19:08PM +0200, Daniel Vetter wrote: > > Note that I didn't start garbage collecting all the legacy flip code > > yet, to make it easier to revert this. But there will be _lots_ of > > code that can be removed once this is tested on all platforms. > > > > FIXME: obj->frontbuffer_bits gets out of whack when pipelining > > commits too hard. > > Possible to write a test case using dumb kms, or just point me at one > you have already? :) Argh, that FIXME is addressed by the next patch. Forgot to reorder them and drop the FIXME here. The rmfb worker vs. flips was enough concurrency to hit this bug. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 586fc40b9abf..eb02901551d8 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -11642,6 +11642,7 @@ void intel_check_page_flip(struct drm_i915_private *dev_priv, int pipe) spin_unlock(&dev->event_lock); } +__attribute__((unused)) static int intel_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, struct drm_pending_vblank_event *event, @@ -13975,7 +13976,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 = intel_crtc_page_flip, + .page_flip = drm_atomic_helper_page_flip, .atomic_duplicate_state = intel_crtc_duplicate_state, .atomic_destroy_state = intel_crtc_destroy_state, };
Note that I didn't start garbage collecting all the legacy flip code yet, to make it easier to revert this. But there will be _lots_ of code that can be removed once this is tested on all platforms. FIXME: obj->frontbuffer_bits gets out of whack when pipelining commits too hard. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)