[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