Created attachment 139502 [details]
vertical corruption after disabling cursor
Vertical display corruption is seen on GEN9 and above displays. This issue is more prominent when using an external display. Attaching the image which shows the corruption.
There is a patch (https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/877396/ ) submitted on chromeos kernel which fixes the issue on chromeos kernels and even on upstream kernel.
The upstream change which introduced the check is:
Author: Ville Syrjälä <email@example.com>
Date: Fri Feb 17 17:01:59 2017 +0200
drm/i915: Fix legacy cursor vs. watermarks for ILK-BDW
There are many updates seen to this part of code which skip the vblank waits for cursor updates. But looks like we still need the vblank wait(slowpath) on Gen9+ displays too.
So having the same fix on upstream kernel as the chromeos fix, is a correct solution here? Will it cause underruns on ILK-BDW? or some other effects?
Ville, Jani, can you comment here?
It seems patch to fix issues is from KrH.
Ville, Jani, what could course of actions here?
Hi Ville, Jani,
Please suggest a course of action.
Could you try using latest drm-tip: https://cgit.freedesktop.org/drm-tip and send dmesg with drm.debug=0x1e log_buf_len=4M from start to problem and attach logs as plain text here?
Created attachment 141059 [details] [review]
Wait a vblank after disabling planes, before disabling crtc
Does this fix the bug?
Created attachment 141073 [details]
vertical corruption logs
(In reply to Chintan Patel from comment #7)
> Created attachment 141073 [details]
> vertical corruption logs
I cherry-picked your patch (with small change, as patch gave compilation error on pipe definition; intel_crtc->pipe instead of pipe) on drm-tip 4.18.0-01978-g273ade7fd922
+ /* Wait a vblank for planes to actually be turned off */
+ intel_wait_for_vblank(dev_priv, intel_crtc->pipe);
intel_crtc->active = false;
Issue is still reproducible. Attaching the logs..
I suspect the cursor getting stuck is caused by the DDB/WM update cancelling the already armed cursor disable. And later we don't rearm the cursor disable before the pipe gets shut down.
I was trying to come up with a better way to do the plane/ddb/wm updates (for bug #104975). It might be worth a shot here as well:
With git://github.com/vsyrjala/linux.git skl_plane_update_ddb_sequence I am not able to reproduce this issue.
Azhar, have you tried tried Ville's proposal?
@Lakshmi, please see comment 10.
I already tried ville's branch(git://github.com/vsyrjala/linux.git skl_plane_update_ddb_sequence) and it fixes the issue.
Update: Patches are under-review.
Created attachment 142421 [details]
I will be OOO on Oct 05 and Oct 08. Please expect dealy in email responses.
(In reply to Lakshmi from comment #13)
> Update: Patches are under-review.
Can you provide the patchwork link to the series that exactly addresses this issue? My team would be happy to test while patches are still in review and provide Tested-by
(In reply to nathan.d.ciobanu from comment #15)
> (In reply to Lakshmi from comment #13)
> > Update: Patches are under-review.
> Can you provide the patchwork link to the series that exactly addresses this
> issue? My team would be happy to test while patches are still in review and
> provide Tested-by
Note that some of the patches were already pushed so it won't apply cleanly as a whole anymore.
hey. As I found out, https://bugs.freedesktop.org/show_bug.cgi?id=108257 this ticket was closed as fixed. I think that current one is the same and also should be closed. Reporter, did you try to check drm-tip, how it works for you?
Any updates from reporter?
Jani, I think this one also can be closed.
https://bugs.freedesktop.org/show_bug.cgi?id=107951 In this ticket reporter confirmed fix, and I am 99% sure that current issue is simply duplicate of that (and one more, already closed)
I assume this issue has been fixed. Closing this bug.
Feel free to reopen if you still have the issue.
When you reopen ensure that issue is with latest drmtip. (https://cgit.freedesktop.org/drm-tip)
Attach the full dmesg from boot with kernel parameters drm.debug=0x1e log_buf_len=4M.
Thanks a lot for giving here summery of Vertical line corruptions seen on the left side of Gen 9+ display of the product DRI. Glad to find it here.
Economics personal statement writer - http://www.personalstatementfolks.co.uk/economics-personal-statement/ at Personal Statement Folks in UK.