[PATCH] Various kms_draw_crc tests fail with crc mismatch assertion. Noticed that in almost all failure cases, there is no skl_compute_wm call, while in those which pass, there is. This issue seems to be extremely hard to reproduce on a single machine (tried manually on kbl, skl, icl). So added some traces and start tryboting to figure out why skl_compute_wm call doesn't happen.

Stanislav Lisovskiy stanislav.lisovskiy at intel.com
Tue Nov 6 11:10:54 UTC 2018


Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 5 +++++
 drivers/gpu/drm/i915/intel_pm.c      | 8 +++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 31fbf67cb661..5187d6750d0f 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12515,6 +12515,8 @@ static int intel_atomic_check(struct drm_device *dev,
 	if (ret)
 		return ret;
 
+	DRM_DEBUG_KMS("Validating state");
+
 	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, crtc_state, i) {
 		struct intel_crtc_state *pipe_config =
 			to_intel_crtc_state(crtc_state);
@@ -12568,6 +12570,9 @@ static int intel_atomic_check(struct drm_device *dev,
 		return ret;
 
 	intel_fbc_choose_crtc(dev_priv, intel_state);
+
+	DRM_DEBUG_KMS("Calculating watermarks");
+
 	return calc_watermark_data(state);
 }
 
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 9da8ff263d36..ddbdece28f0e 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5008,7 +5008,7 @@ static int skl_build_plane_wm_planar(struct skl_ddb_allocation *ddb,
 				     const struct intel_plane_state *pstate)
 {
 	struct intel_plane *plane = to_intel_plane(pstate->base.plane);
-	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
+ 	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
 	enum plane_id plane_id = plane->id;
 	struct skl_plane_wm *wm = &pipe_wm->planes[plane_id];
 	struct skl_wm_params wm_params;
@@ -5220,6 +5220,8 @@ static int skl_update_pipe_wm(struct drm_crtc_state *cstate,
 	else
 		*changed = true;
 
+	DRM_DEBUG_KMS("Pipe changed %d", *changed);
+
 	return 0;
 }
 
@@ -5444,6 +5446,8 @@ skl_compute_wm(struct drm_atomic_state *state)
 	/* Clear all dirty flags */
 	results->dirty_pipes = 0;
 
+	DRM_DEBUG_KMS("checking if wm needs to be changed");
+
 	ret = skl_ddb_add_affected_pipes(state, &changed);
 	if (ret || !changed)
 		return ret;
@@ -5452,6 +5456,8 @@ skl_compute_wm(struct drm_atomic_state *state)
 	if (ret)
 		return ret;
 
+	DRM_DEBUG_KMS("calculating changes");
+
 	/*
 	 * Calculate WM's for all pipes that are part of this transaction.
 	 * Note that the DDB allocation above may have added more CRTC's that
-- 
2.17.1



More information about the Intel-gfx-trybot mailing list