BUG: 4.10 i915 drm display noise regression - bisected to a6a7cc4b7

From: lkml
Date: Mon Jan 09 2017 - 01:32:49 EST


Hello all,

I'm experiencing display noise in the form of 8x1 pixel bars spuriously
appearing in random locations. This doesn't happen on 4.9, the machine
is an X61s, a Core2Duo 1.8Ghz w/XGA via LVDS.

I was able to bisect the issue to a6a7cc4b7:

commit a6a7cc4b7db6deaeca11cdd38844ea147a354c7a
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Fri Nov 18 21:17:46 2016 +0000

drm/i915: Always flush the dirty CPU cache when pinning the scanout

Currently we only clflush the scanout if it is in the CPU domain. Also
flush if we have a pending CPU clflush. We also want to treat the
dirtyfb path similar, and flush any pending writes there as well.

v2: Only send the fb flush message if flushing the dirt on flip
v3: Make flush-for-flip and dirtyfb look more alike since they serve
similar roles as end-of-frame marker.

Reproduction is simple, just run this native drm eye candy program:
https://github.com/vcaputo/rototiller

Thanks,
Vito Caputo