Summary: | [BDW] *ERROR* CPU pipe A|B|C FIFO underrun - Regression - Bisected | ||
---|---|---|---|
Product: | DRI | Reporter: | Marta Löfstedt <marta.lofstedt> |
Component: | DRM/Intel | Assignee: | Maarten Lankhorst <bugs> |
Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | intel-gfx-bugs |
Version: | DRI git | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | PatchSubmitted | ||
i915 platform: | BDW | i915 features: | display/atomic |
Description
Marta Löfstedt
2017-09-12 12:36:21 UTC
I have tried reverting the whole patch-set but then the machine lock up while running the tests. So, maybe there is more stuff on the drm-misc that build on top of the patch-set. Anyways drm-tip, git reset 3ff558e78bc is GOOD git reset b44d5c0c105 is BAD Maarten Lankhorst suggested to test with the following: " diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index f77e73c72662..f096c55b35fa 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -12514,23 +12514,14 @@ static int intel_atomic_commit(struct drm_device *dev, { struct intel_atomic_state *intel_state = to_intel_atomic_state(state); struct drm_i915_private *dev_priv = to_i915(dev); - int ret = 0; - - ret = drm_atomic_helper_setup_commit(state, nonblock); - if (ret) - return ret; + struct drm_crtc_state *new_crtc_state; + struct drm_crtc *crtc; + int i, ret = 0; drm_atomic_state_get(state); i915_sw_fence_init(&intel_state->commit_ready, intel_atomic_commit_ready); - ret = intel_atomic_prepare_commit(dev, state); - if (ret) { - DRM_DEBUG_ATOMIC("Preparing state failed with %i\n", ret); - i915_sw_fence_commit(&intel_state->commit_ready); - return ret; - } - /* * The intel_legacy_cursor_update() fast path takes care * of avoiding the vblank waits for simple cursor @@ -12548,10 +12539,23 @@ static int intel_atomic_commit(struct drm_device *dev, * FIXME doing watermarks and fb cleanup from a vblank worker * (assuming we had any) would solve these problems. */ - if (INTEL_GEN(dev_priv) < 9) - state->legacy_cursor_update = false; + if (INTEL_GEN(dev_priv) < 9 && state->legacy_cursor_update) { + for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) + if (to_intel_crtc_state(new_crtc_state)->wm.need_postvbl_update) + state->legacy_cursor_update = false; + } + + ret = intel_atomic_prepare_commit(dev, state); + if (ret) { + DRM_DEBUG_ATOMIC("Preparing state failed with %i\n", ret); + i915_sw_fence_commit(&intel_state->commit_ready); + return ret; + } + + ret = drm_atomic_helper_setup_commit(state, nonblock); + if (!ret) + ret = drm_atomic_helper_swap_state(state, true); - ret = drm_atomic_helper_swap_state(state, true); if (ret) { i915_sw_fence_commit(&intel_state->commit_ready); @@ -12579,7 +12583,6 @@ static int intel_atomic_commit(struct drm_device *dev, else intel_atomic_commit_tail(state); - return 0; } " With above I can't reproduce the issue. New series: https://patchwork.freedesktop.org/series/30587/ Under ack / comment. Maartens patch was merged in: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3170/ At least: igt@kms_cursor_crc@cursor-256x256-[dpms|onscreen|random] are now passing for the snb-shards. commit 3cf50c63a76177e0bbe0e46e1abe4eb263128ba4 Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Date: Tue Sep 19 14:14:18 2017 +0200 drm/i915: Unset legacy_cursor_update early in intel_atomic_commit, v3. Assuming that this is completely fixed since no new sights has been reported. Otherwise, please reopen. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.