[PATCH 0/3] drm/i915/display: fix flipq pipe CRC mismatch in kms_cursor_crc

Mika Kahola <[email protected]>
Newsgroups org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe
Message-ID <[email protected]>
kms_cursor_crc's cursor-alpha-opaque subtest fails igt_assert_crc_equal()
once flipq is enabled. Flipq commits complete asynchronously via pipe
DMC, but frontbuffer tracking isn't notified when the queued update
actually lands, so a CRC taken right after can observe stale state.

Patch 1 fixes that by deferring the frontbuffer flip notification until
the flipq commit has actually completed. Patches 2 and 3 close two
related eligibility gaps found while tracking this down: flipq being
selected for commits more complex than a simple queued plane update,
and a stale use_flipq surviving into a duplicated crtc state, letting a
legacy cursor commit slip through without re-evaluating eligibility.

Tested on pixel with kms_cursor_crc and kms_frontbuffer_tracking.

Mika Kahola (3):
  drm/i915/display: Flush frontbuffer tracking on flipq completion
  drm/i915/display: Restrict flipq to simple single-plane updates
  drm/i915/display: Reset use_flipq when duplicating crtc state

 drivers/gpu/drm/i915/display/intel_atomic.c   |  1 +
 drivers/gpu/drm/i915/display/intel_crtc.c     |  3 +
 drivers/gpu/drm/i915/display/intel_display.c  | 56 ++++++++++++++--
 .../drm/i915/display/intel_display_types.h    |  9 +++
 drivers/gpu/drm/i915/display/intel_dsb.c      | 65 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_dsb.h      |  2 +
 drivers/gpu/drm/i915/display/intel_fbc.c      | 21 ++++++
 drivers/gpu/drm/i915/display/intel_fbc.h      |  1 +
 8 files changed, 151 insertions(+), 7 deletions(-)

-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.