* [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check
@ 2026-08-11 16:14 Jason-JH Lin
2026-08-11 20:31 ` ✓ i915.CI.BAT: success for " Patchwork
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Jason-JH Lin @ 2026-08-11 16:14 UTC (permalink / raw)
To: igt-dev, Karthik B S, Swati Sharma, Kamil Konieczny,
Ville Syrjala, Fei Shao
Cc: Jani, Jason-JH Lin, Paul-PL Chen, Lancelot Wu, Manasi Navare,
Gil Dekel, Yacoub, Project_Global_Chrome_Upstream_Group
The capture_crc() function validated that the CRC frame sequence
returned by igt_pipe_crc_get_for_frame() matches the expected value.
However, igt_pipe_crc_get_for_frame() already guarantees
crc->frame >= expected via its internal loop:
do {
read_one_crc(pipe_crc, crc);
} while (igt_vblank_before(crc->frame, vblank));
The additional check in capture_crc() is therefore redundant.
Remove it and rely on the library's existing guarantee.
Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com>
---
tests/kms_plane.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 12dfbfe1d82b..fe8ee2ab26ab 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -765,11 +765,6 @@ static int num_unique_crcs(const igt_crc_t crc[], int num_crc)
static void capture_crc(data_t *data, unsigned int vblank, igt_crc_t *crc)
{
igt_pipe_crc_get_for_frame(data->drm_fd, data->pipe_crc, vblank, crc);
-
- igt_fail_on_f(!igt_skip_crc_compare && !igt_run_in_simulation() &&
- crc->has_valid_frame && crc->frame != vblank,
- "Got CRC for the wrong frame (got %u, expected %u). CRC buffer overflow?\n",
- crc->frame, vblank);
}
static void capture_format_crcs_single(data_t *data, igt_crtc_t *crtc,
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* ✓ i915.CI.BAT: success for tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-11 16:14 [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check Jason-JH Lin @ 2026-08-11 20:31 ` Patchwork 2026-08-11 20:38 ` ✓ Xe.CI.BAT: " Patchwork ` (3 subsequent siblings) 4 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2026-08-11 20:31 UTC (permalink / raw) To: Jason-JH Lin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 1010 bytes --] == Series Details == Series: tests/kms_plane: Remove redundant CRC frame sequence check URL : https://patchwork.freedesktop.org/series/172015/ State : success == Summary == CI Bug Log - changes from IGT_9052 -> IGTPW_15659 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15659/index.html Participating hosts (38 -> 36) ------------------------------ Missing (2): bat-dg2-13 fi-snb-2520m Changes ------- No changes found Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_9052 -> IGTPW_15659 CI-20190529: 20190529 CI_DRM_18980: aabf41c0ea0ad661a2e384e51955b24343f6ca25 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_15659: 8ae4ee54c55da4726d69fa81f836d76e3b599579 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_9052: 9052 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15659/index.html [-- Attachment #2: Type: text/html, Size: 1576 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ Xe.CI.BAT: success for tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-11 16:14 [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check Jason-JH Lin 2026-08-11 20:31 ` ✓ i915.CI.BAT: success for " Patchwork @ 2026-08-11 20:38 ` Patchwork 2026-08-11 22:33 ` ✓ Xe.CI.FULL: " Patchwork ` (2 subsequent siblings) 4 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2026-08-11 20:38 UTC (permalink / raw) To: Jason-JH Lin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 878 bytes --] == Series Details == Series: tests/kms_plane: Remove redundant CRC frame sequence check URL : https://patchwork.freedesktop.org/series/172015/ State : success == Summary == CI Bug Log - changes from XEIGT_9052_BAT -> XEIGTPW_15659_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (13 -> 13) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * IGT: IGT_9052 -> IGTPW_15659 IGTPW_15659: 8ae4ee54c55da4726d69fa81f836d76e3b599579 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_9052: 9052 xe-5578-aabf41c0ea0ad661a2e384e51955b24343f6ca25: aabf41c0ea0ad661a2e384e51955b24343f6ca25 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/index.html [-- Attachment #2: Type: text/html, Size: 1423 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ Xe.CI.FULL: success for tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-11 16:14 [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check Jason-JH Lin 2026-08-11 20:31 ` ✓ i915.CI.BAT: success for " Patchwork 2026-08-11 20:38 ` ✓ Xe.CI.BAT: " Patchwork @ 2026-08-11 22:33 ` Patchwork 2026-08-12 19:28 ` [PATCH i-g-t v2] " Manasi Navare 2026-08-13 3:37 ` Karthik B S 4 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2026-08-11 22:33 UTC (permalink / raw) To: Jason-JH Lin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 25837 bytes --] == Series Details == Series: tests/kms_plane: Remove redundant CRC frame sequence check URL : https://patchwork.freedesktop.org/series/172015/ State : success == Summary == CI Bug Log - changes from XEIGT_9052_FULL -> XEIGTPW_15659_FULL ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (2 -> 2) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in XEIGTPW_15659_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_big_fb@4-tiled-64bpp-rotate-90: - shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327]) [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-4/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip: - shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#7059] / [Intel XE#7085]) [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-5/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip.html * igt@kms_big_fb@y-tiled-16bpp-rotate-0: - shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#1124]) +7 other tests skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-6/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-addfb: - shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2328] / [Intel XE#7367]) [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-4/igt@kms_big_fb@yf-tiled-addfb.html * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow: - shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#607] / [Intel XE#7361]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-10/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html * igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p: - shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#7679]) [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p.html * igt@kms_bw@linear-tiling-1-displays-target-2160x1440p: - shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#367]) +1 other test skip [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-2/igt@kms_bw@linear-tiling-1-displays-target-2160x1440p.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#3432]) +2 other tests skip [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html * igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs-cc: - shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#2887]) +7 other tests skip [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-10/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs-cc.html * igt@kms_chamelium_color@ctm-0-25: - shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2325] / [Intel XE#7358]) [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-2/igt@kms_chamelium_color@ctm-0-25.html * igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4: - shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#7358]) [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4.html * igt@kms_chamelium_edid@dp-edid-change-during-hibernate: - shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2252]) +4 other tests skip [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-8/igt@kms_chamelium_edid@dp-edid-change-during-hibernate.html * igt@kms_content_protection@dp-mst-type-0: - shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2390] / [Intel XE#6974]) [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@kms_content_protection@dp-mst-type-0.html * igt@kms_content_protection@dp-mst-type-0-hdcp14: - shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#6974]) [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@kms_content_protection@dp-mst-type-0-hdcp14.html * igt@kms_cursor_crc@cursor-rapid-movement-32x10: - shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2320]) +3 other tests skip [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html * igt@kms_dirtyfb@psr-dirtyfb-ioctl: - shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#1508]) +1 other test skip [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html * igt@kms_dsc@dsc-fractional-bpp-bigjoiner: - shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#8265]) +1 other test skip [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-4/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html * igt@kms_fbcon_fbt@psr: - shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#8680]) [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@kms_fbcon_fbt@psr.html * igt@kms_flip@flip-vs-expired-vblank@b-edp1: - shard-lnl: [PASS][19] -> [FAIL][20] ([Intel XE#301]) [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling: - shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#7178] / [Intel XE#7351]) +2 other tests skip [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-10/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt: - shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#4141]) +9 other tests skip [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-shrfb-draw-mmap-wc: - shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2311]) +41 other tests skip [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcdrrshdr-abgr161616f-draw-render: - shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#7061]) +1 other test skip [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrshdr-abgr161616f-draw-render.html * igt@kms_frontbuffer_tracking@fbchdr-tiling-y: - shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#7399]) [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@kms_frontbuffer_tracking@fbchdr-tiling-y.html * igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc: - shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-shrfb-plflip-blt: - shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#2313]) +37 other tests skip [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_hdr@invalid-hdr: - shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#1503]) [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-5/igt@kms_hdr@invalid-hdr.html * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner: - shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#4090] / [Intel XE#7443]) [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-5/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5: - shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#8303]) +1 other test skip [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-8/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html * igt@kms_plane@pixel-format-y-tiled-modifier: - shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#7283]) +1 other test skip [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@kms_plane@pixel-format-y-tiled-modifier.html * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a: - shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#2763] / [Intel XE#6886]) +9 other tests skip [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a.html * igt@kms_pm_backlight@basic-brightness: - shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870]) [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-8/igt@kms_pm_backlight@basic-brightness.html * igt@kms_pm_backlight@brightness-with-dpms: - shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2938] / [Intel XE#7376] / [Intel XE#7760]) [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-4/igt@kms_pm_backlight@brightness-with-dpms.html * igt@kms_pm_lpsp@kms-lpsp: - shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#2499]) [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area: - shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#1489]) +3 other tests skip [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-6/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html * igt@kms_psr@psr2-sprite-blt: - shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#2234] / [Intel XE#2850]) +5 other tests skip [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-5/igt@kms_psr@psr2-sprite-blt.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#7795]) [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270: - shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html * igt@kms_sharpness_filter@filter-scaler-downscale: - shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#6503]) +1 other test skip [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-8/igt@kms_sharpness_filter@filter-scaler-downscale.html * igt@kms_vrr@lobf: - shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#2168] / [Intel XE#7444]) [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-8/igt@kms_vrr@lobf.html * igt@xe_evict@evict-small-multi-queue-priority-cm: - shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#8370]) [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-3/igt@xe_evict@evict-small-multi-queue-priority-cm.html * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr: - shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#2322] / [Intel XE#7372]) +4 other tests skip [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr.html * igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch: - shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#8374]) +6 other tests skip [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@xe_exec_fault_mode@many-multi-queue-rebind-prefetch.html * igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr: - shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#8364]) +17 other tests skip [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr.html * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race: - shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#8378]) +6 other tests skip [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit: - shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2229]) [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-6/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html * igt@xe_multigpu_svm@mgpu-coherency-conflict: - shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#6964]) +1 other test skip [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-10/igt@xe_multigpu_svm@mgpu-coherency-conflict.html * igt@xe_pat@xa-app-transient-media-off: - shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#7590]) +1 other test skip [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@xe_pat@xa-app-transient-media-off.html * igt@xe_pm@s3-d3cold-basic-exec: - shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#2284] / [Intel XE#7370]) [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@xe_pm@s3-d3cold-basic-exec.html * igt@xe_pxp@pxp-termination-key-update-post-termination-irq: - shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#4733] / [Intel XE#7417]) +2 other tests skip [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@xe_pxp@pxp-termination-key-update-post-termination-irq.html * igt@xe_query@multigpu-query-invalid-size: - shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#944]) [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-4/igt@xe_query@multigpu-query-invalid-size.html * igt@xe_survivability@runtime-survivability: - shard-bmg: NOTRUN -> [DMESG-WARN][53] ([Intel XE#6627] / [Intel XE#7419]) [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-1/igt@xe_survivability@runtime-survivability.html #### Possible fixes #### * igt@core_hotunplug@hotunbind-rebind: - shard-bmg: [ABORT][54] ([Intel XE#8007]) -> [PASS][55] [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-8/igt@core_hotunplug@hotunbind-rebind.html [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@core_hotunplug@hotunbind-rebind.html * igt@intel_hwmon@hwmon-write: - shard-bmg: [FAIL][56] ([Intel XE#8583]) -> [PASS][57] [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-6/igt@intel_hwmon@hwmon-write.html [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@intel_hwmon@hwmon-write.html * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-bmg: [FAIL][58] ([Intel XE#3321]) -> [PASS][59] +1 other test pass [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1: - shard-lnl: [FAIL][60] ([Intel XE#301]) -> [PASS][61] [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1: - shard-lnl: [FAIL][62] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][63] +1 other test pass [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html * igt@kms_hdmi_inject@inject-audio: - shard-bmg: [SKIP][64] ([Intel XE#7308]) -> [PASS][65] [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-3/igt@kms_hdmi_inject@inject-audio.html [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@kms_hdmi_inject@inject-audio.html * igt@kms_pm_dc@dc6-psr: - shard-lnl: [FAIL][66] ([Intel XE#8399]) -> [PASS][67] [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-lnl-5/igt@kms_pm_dc@dc6-psr.html [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-lnl-5/igt@kms_pm_dc@dc6-psr.html * igt@xe_sriov_flr@flr-vfs-parallel: - shard-bmg: [FAIL][68] ([Intel XE#6569]) -> [PASS][69] +1 other test pass [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-9/igt@xe_sriov_flr@flr-vfs-parallel.html [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@xe_sriov_flr@flr-vfs-parallel.html * igt@xe_sriov_scheduling@nonpreempt-engine-resets-normal-priority@numvfs-random-gt0-rcs0: - shard-bmg: [FAIL][70] ([Intel XE#7992]) -> [PASS][71] +1 other test pass [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-4/igt@xe_sriov_scheduling@nonpreempt-engine-resets-normal-priority@numvfs-random-gt0-rcs0.html [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@xe_sriov_scheduling@nonpreempt-engine-resets-normal-priority@numvfs-random-gt0-rcs0.html * igt@xe_sriov_scheduling@nonpreempt-engine-resets-normal-priority@numvfs-random-gt1-vcs0: - shard-bmg: [FAIL][72] ([Intel XE#8340]) -> [PASS][73] [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-4/igt@xe_sriov_scheduling@nonpreempt-engine-resets-normal-priority@numvfs-random-gt1-vcs0.html [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-9/igt@xe_sriov_scheduling@nonpreempt-engine-resets-normal-priority@numvfs-random-gt1-vcs0.html #### Warnings #### * igt@kms_hdr@brightness-with-hdr: - shard-bmg: [SKIP][74] ([Intel XE#3544]) -> [SKIP][75] ([Intel XE#3374] / [Intel XE#3544]) [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-10/igt@kms_hdr@brightness-with-hdr.html [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-bmg: [SKIP][76] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][77] ([Intel XE#2426] / [Intel XE#5848]) [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_9052/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489 [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503 [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508 [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168 [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229 [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252 [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284 [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311 [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313 [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320 [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322 [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325 [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327 [Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328 [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499 [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509 [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763 [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850 [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887 [Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938 [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301 [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149 [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321 [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374 [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432 [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544 [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367 [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904 [Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090 [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141 [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733 [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848 [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607 [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503 [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569 [Intel XE#6627]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6627 [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886 [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964 [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974 [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059 [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061 [Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085 [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178 [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283 [Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308 [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342 [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351 [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356 [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358 [Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361 [Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367 [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370 [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372 [Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376 [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399 [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417 [Intel XE#7419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7419 [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437 [Intel XE#7443]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7443 [Intel XE#7444]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7444 [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590 [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679 [Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760 [Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795 [Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992 [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007 [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265 [Intel XE#8303]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8303 [Intel XE#8340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8340 [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364 [Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370 [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374 [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378 [Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399 [Intel XE#8583]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8583 [Intel XE#8680]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8680 [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 Build changes ------------- * IGT: IGT_9052 -> IGTPW_15659 IGTPW_15659: 8ae4ee54c55da4726d69fa81f836d76e3b599579 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_9052: 9052 xe-5578-aabf41c0ea0ad661a2e384e51955b24343f6ca25: aabf41c0ea0ad661a2e384e51955b24343f6ca25 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15659/index.html [-- Attachment #2: Type: text/html, Size: 28237 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-11 16:14 [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check Jason-JH Lin ` (2 preceding siblings ...) 2026-08-11 22:33 ` ✓ Xe.CI.FULL: " Patchwork @ 2026-08-12 19:28 ` Manasi Navare 2026-08-13 3:37 ` Karthik B S 4 siblings, 0 replies; 11+ messages in thread From: Manasi Navare @ 2026-08-12 19:28 UTC (permalink / raw) To: Jason-JH Lin Cc: igt-dev, Karthik B S, Swati Sharma, Kamil Konieczny, Ville Syrjala, Fei Shao, Jani, Paul-PL Chen, Lancelot Wu, Gil Dekel, Yacoub, Project_Global_Chrome_Upstream_Group [-- Attachment #1: Type: text/plain, Size: 1741 bytes --] Thanks @Jason-JH Lin <jason-jh.lin@mediatek.com> for the patch. @Karthik B S <karthik.b.s@intel.com> this addresses your review comments, could you PTAL and help get this landed? Regards Manasi On Tue, Aug 11, 2026 at 9:14 AM Jason-JH Lin <jason-jh.lin@mediatek.com> wrote: > The capture_crc() function validated that the CRC frame sequence > returned by igt_pipe_crc_get_for_frame() matches the expected value. > However, igt_pipe_crc_get_for_frame() already guarantees > crc->frame >= expected via its internal loop: > > do { > read_one_crc(pipe_crc, crc); > } while (igt_vblank_before(crc->frame, vblank)); > > The additional check in capture_crc() is therefore redundant. > Remove it and rely on the library's existing guarantee. > > Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com> > --- > tests/kms_plane.c | 5 ----- > 1 file changed, 5 deletions(-) > > diff --git a/tests/kms_plane.c b/tests/kms_plane.c > index 12dfbfe1d82b..fe8ee2ab26ab 100644 > --- a/tests/kms_plane.c > +++ b/tests/kms_plane.c > @@ -765,11 +765,6 @@ static int num_unique_crcs(const igt_crc_t crc[], int > num_crc) > static void capture_crc(data_t *data, unsigned int vblank, igt_crc_t *crc) > { > igt_pipe_crc_get_for_frame(data->drm_fd, data->pipe_crc, vblank, > crc); > - > - igt_fail_on_f(!igt_skip_crc_compare && !igt_run_in_simulation() && > - crc->has_valid_frame && crc->frame != vblank, > - "Got CRC for the wrong frame (got %u, expected %u). > CRC buffer overflow?\n", > - crc->frame, vblank); > } > > static void capture_format_crcs_single(data_t *data, igt_crtc_t *crtc, > -- > 2.43.0 > > [-- Attachment #2: Type: text/html, Size: 2512 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-11 16:14 [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check Jason-JH Lin ` (3 preceding siblings ...) 2026-08-12 19:28 ` [PATCH i-g-t v2] " Manasi Navare @ 2026-08-13 3:37 ` Karthik B S 2026-08-13 5:36 ` Jason-JH Lin (林睿祥) 2026-08-13 11:07 ` Juha-Pekka Heikkilä 4 siblings, 2 replies; 11+ messages in thread From: Karthik B S @ 2026-08-13 3:37 UTC (permalink / raw) To: Jason-JH Lin, igt-dev, Swati Sharma, Kamil Konieczny, Ville Syrjala, Fei Shao, Juha-Pekka Heikkila Cc: Jani, Paul-PL Chen, Lancelot Wu, Manasi Navare, Gil Dekel, Yacoub, Project_Global_Chrome_Upstream_Group Hi Jason-JH, On 8/11/2026 9:44 PM, Jason-JH Lin wrote: > The capture_crc() function validated that the CRC frame sequence > returned by igt_pipe_crc_get_for_frame() matches the expected value. > However, igt_pipe_crc_get_for_frame() already guarantees > crc->frame >= expected via its internal loop: > > do { > read_one_crc(pipe_crc, crc); > } while (igt_vblank_before(crc->frame, vblank)); This isn't fully true IMHO. The capture CRC function actually ensured the exact match of frame sequence and with this patch we're just guaranteeing '>='. So we need more context here from: https://patchwork.freedesktop.org/series/168037/ > > The additional check in capture_crc() is therefore redundant. > Remove it and rely on the library's existing guarantee. > > Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com> > --- > tests/kms_plane.c | 5 ----- > 1 file changed, 5 deletions(-) > > diff --git a/tests/kms_plane.c b/tests/kms_plane.c > index 12dfbfe1d82b..fe8ee2ab26ab 100644 > --- a/tests/kms_plane.c > +++ b/tests/kms_plane.c > @@ -765,11 +765,6 @@ static int num_unique_crcs(const igt_crc_t crc[], int num_crc) > static void capture_crc(data_t *data, unsigned int vblank, igt_crc_t *crc) > { > igt_pipe_crc_get_for_frame(data->drm_fd, data->pipe_crc, vblank, crc); Also if this is only igt_pipe_crc_get_for_frame now, ideally we can just remove this function itself and call the helper directly. But before doing that, as the existing assert was added by a patch from Ville and rb'ed by JP, I'll request an ack from them or if they have any inputs on this. Regards, Karthik.B.S > - > - igt_fail_on_f(!igt_skip_crc_compare && !igt_run_in_simulation() && > - crc->has_valid_frame && crc->frame != vblank, > - "Got CRC for the wrong frame (got %u, expected %u). CRC buffer overflow?\n", > - crc->frame, vblank); > } > > static void capture_format_crcs_single(data_t *data, igt_crtc_t *crtc, ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-13 3:37 ` Karthik B S @ 2026-08-13 5:36 ` Jason-JH Lin (林睿祥) 2026-08-13 11:07 ` Juha-Pekka Heikkilä 1 sibling, 0 replies; 11+ messages in thread From: Jason-JH Lin (林睿祥) @ 2026-08-13 5:36 UTC (permalink / raw) To: ville.syrjala@linux.intel.com, igt-dev@lists.freedesktop.org, fshao@chromium.org, karthik.b.s@intel.com, swati2.sharma@intel.com, kamil.konieczny@linux.intel.com, juhapekka.heikkila@gmail.com Cc: Project_Global_Chrome_Upstream_Group, markyacoub@chromium.org, jani.nikula@intel.com, Paul-pl Chen (陳柏霖), navaremanasi@google.com, Lancelot Wu (吳瑋晟), gildekel@google.com > > diff --git a/tests/kms_plane.c b/tests/kms_plane.c > > index 12dfbfe1d82b..fe8ee2ab26ab 100644 > > --- a/tests/kms_plane.c > > +++ b/tests/kms_plane.c > > @@ -765,11 +765,6 @@ static int num_unique_crcs(const igt_crc_t > > crc[], int num_crc) > > static void capture_crc(data_t *data, unsigned int vblank, > > igt_crc_t *crc) > > { > > igt_pipe_crc_get_for_frame(data->drm_fd, data->pipe_crc, > > vblank, crc); > > Also if this is only igt_pipe_crc_get_for_frame now, ideally we can > just > remove this function itself and call the helper directly. No problem. > But before > doing that, as the existing assert was added by a patch from Ville > and > rb'ed by JP, I'll request an ack from them or if they have any inputs > on > this. > That's great! Thank you for your help! Regards, Jason-JH Lin > Regards, > Karthik.B.S > > - > > - igt_fail_on_f(!igt_skip_crc_compare && > > !igt_run_in_simulation() && > > - crc->has_valid_frame && crc->frame != > > vblank, > > - "Got CRC for the wrong frame (got %u, > > expected %u). CRC buffer overflow?\n", > > - crc->frame, vblank); > > } > > > > static void capture_format_crcs_single(data_t *data, igt_crtc_t > > *crtc, ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-13 3:37 ` Karthik B S 2026-08-13 5:36 ` Jason-JH Lin (林睿祥) @ 2026-08-13 11:07 ` Juha-Pekka Heikkilä 2026-08-14 2:46 ` Jason-JH Lin (林睿祥) 1 sibling, 1 reply; 11+ messages in thread From: Juha-Pekka Heikkilä @ 2026-08-13 11:07 UTC (permalink / raw) To: Karthik B S, Jason-JH Lin, igt-dev, Swati Sharma, Kamil Konieczny, Ville Syrjala, Fei Shao Cc: Jani, Paul-PL Chen, Lancelot Wu, Manasi Navare, Gil Dekel, Yacoub, Project_Global_Chrome_Upstream_Group Hi, On 13/08/2026 06.37, Karthik B S wrote: > Hi Jason-JH, > > On 8/11/2026 9:44 PM, Jason-JH Lin wrote: >> The capture_crc() function validated that the CRC frame sequence >> returned by igt_pipe_crc_get_for_frame() matches the expected value. >> However, igt_pipe_crc_get_for_frame() already guarantees >> crc->frame >= expected via its internal loop: >> >> do { >> read_one_crc(pipe_crc, crc); >> } while (igt_vblank_before(crc->frame, vblank)); > This isn't fully true IMHO. The capture CRC function actually ensured > the exact match of frame sequence and with this patch we're just > guaranteeing '>='. as Karthik said; the claim it not true. What this change would do is relax the sequence check to be open ended .. while current check is making exact expectation. In other words, we _expect_ to see certain crc with correct vblank number, with the proposed change if expected crc never arrived in correct sequence we would be unaware of it. Let's not do this. > So we need more context here from: https://patchwork.freedesktop.org/ > series/168037/ >> >> The additional check in capture_crc() is therefore redundant. >> Remove it and rely on the library's existing guarantee. >> >> Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com> >> --- >> tests/kms_plane.c | 5 ----- >> 1 file changed, 5 deletions(-) >> >> diff --git a/tests/kms_plane.c b/tests/kms_plane.c >> index 12dfbfe1d82b..fe8ee2ab26ab 100644 >> --- a/tests/kms_plane.c >> +++ b/tests/kms_plane.c >> @@ -765,11 +765,6 @@ static int num_unique_crcs(const igt_crc_t crc[], >> int num_crc) >> static void capture_crc(data_t *data, unsigned int vblank, igt_crc_t >> *crc) >> { >> igt_pipe_crc_get_for_frame(data->drm_fd, data->pipe_crc, vblank, >> crc); > > Also if this is only igt_pipe_crc_get_for_frame now, ideally we can just > remove this function itself and call the helper directly. But before > doing that, as the existing assert was added by a patch from Ville and > rb'ed by JP, I'll request an ack from them or if they have any inputs on > this. > > Regards, > Karthik.B.S >> - >> - igt_fail_on_f(!igt_skip_crc_compare && !igt_run_in_simulation() && >> - crc->has_valid_frame && crc->frame != vblank, >> - "Got CRC for the wrong frame (got %u, expected %u). CRC >> buffer overflow?\n", >> - crc->frame, vblank); >> } >> static void capture_format_crcs_single(data_t *data, igt_crtc_t *crtc, ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-13 11:07 ` Juha-Pekka Heikkilä @ 2026-08-14 2:46 ` Jason-JH Lin (林睿祥) 2026-08-14 10:57 ` Juha-Pekka Heikkilä 0 siblings, 1 reply; 11+ messages in thread From: Jason-JH Lin (林睿祥) @ 2026-08-14 2:46 UTC (permalink / raw) To: juhapekka.heikkila@gmail.com, igt-dev@lists.freedesktop.org, ville.syrjala@linux.intel.com, karthik.b.s@intel.com, swati2.sharma@intel.com, kamil.konieczny@linux.intel.com, fshao@chromium.org Cc: Project_Global_Chrome_Upstream_Group, markyacoub@chromium.org, jani.nikula@intel.com, Paul-pl Chen (陳柏霖), navaremanasi@google.com, Lancelot Wu (吳瑋晟), gildekel@google.com On Thu, 2026-08-13 at 14:07 +0300, Juha-Pekka Heikkilä wrote: > > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > Hi, > > On 13/08/2026 06.37, Karthik B S wrote: > > Hi Jason-JH, > > > > On 8/11/2026 9:44 PM, Jason-JH Lin wrote: > > > The capture_crc() function validated that the CRC frame sequence > > > returned by igt_pipe_crc_get_for_frame() matches the expected > > > value. > > > However, igt_pipe_crc_get_for_frame() already guarantees > > > crc->frame >= expected via its internal loop: > > > > > > do { > > > read_one_crc(pipe_crc, crc); > > > } while (igt_vblank_before(crc->frame, vblank)); > > This isn't fully true IMHO. The capture CRC function actually > > ensured > > the exact match of frame sequence and with this patch we're just > > guaranteeing '>='. > > as Karthik said; the claim it not true. What this change would do is > relax the sequence check to be open ended .. while current check is > making exact expectation. In other words, we _expect_ to see certain > crc > with correct vblank number, with the proposed change if expected crc > never arrived in correct sequence we would be unaware of it. > > Let's not do this. Hi JP, Thanks for the review. Let me explain the background of this issue. MediaTek CRC Internal Queue Mechanism: MediaTek's DRM driver uses a per-commit CRC queue rather than continuous frame-by-frame reporting. CRC entries are reported only after the hardware pipeline has stabilized (3 vblanks after commit), and the frame number reflects the vblank count at the time of CRC readout, not the original commit latch time. For example, consider 4 consecutive flips: Timeline: Frame 100: Flip 0 latches → ev.sequence=100 Frame 101: Flip 1 latches → ev.sequence=101 Frame 102: Flip 2 latches → ev.sequence=102 Frame 103: Flip 3 latches → ev.sequence=103 (last flip) Queue reports CRCs with 3-vblank delay: Frame 103: Reports flip 0 CRC → frame=103 Frame 104: Reports flip 1 CRC → frame=104 Frame 105: Reports flip 2 CRC → frame=105 Frame 106: Reports flip 3 CRC → frame=106 PlaneTest expected vblanks: vblank[0] = 101 (flip 1's ev.sequence, for flip 0's CRC) vblank[1] = 102 (flip 2's ev.sequence, for flip 1's CRC) vblank[2] = 103 (flip 3's ev.sequence, for flip 2's CRC) vblank[3] = 103 + 1 = 104 (last frame) capture_crc checks (== exact match): flip 0: expected=101, got=103 → 103 != 101 → FAIL flip 1: expected=102, got=104 → 104 != 102 → FAIL flip 2: expected=103, got=105 → 105 != 103 → FAIL flip 3: expected=104, got=106 → 106 != 104 → FAIL Library behavior: igt_pipe_crc_get_for_frame(expected=104) → returns CRC with frame=106 Since 106 >= 104, the library considers this valid and returns it. The CRC value is correct (it corresponds to the right framebuffer content), but the frame number is larger than expected due to the queue processing delay. This is an inherent characteristic of hardware that batches CRC reporting, and does not indicate data corruption or buffer overflow. Consistency with other IGT tests and library contract Looking at how other tests handle igt_pipe_crc_get_for_frame(): 1. kms_rotation_crc also calls igt_pipe_crc_get_for_frame() but does NOT validate that crc.frame == expected. It only compares CRC values between software and hardware rotated frames (igt_assert_crc_equal). 2. kms_pipe_crc_basic (read-crc-frame-sequence subtest) validates that consecutive CRCs have frame + 1 == next_frame (relative increment), but does NOT validate absolute match against an expected vblank count. 3. The library API igt_pipe_crc_get_for_frame() is explicitly designed with >= semantics: do { read_one_crc(pipe_crc, crc); } while (igt_vblank_before(crc->frame, vblank)); Its contract is "return the first CRC at or after the requested frame." No other caller in IGT adds a stricter == check on top of this. The capture_crc() exact-match check in kms_plane is the only place in the entire IGT codebase that imposes a stricter requirement than the library's own API contract. This makes it incompatible with drivers that use queued CRC reporting, while the actual CRC validation (comparing pixel content) remains correct. Given that the library's API contract is >=, and no other caller enforces ==, what would be the preferred approach here? Thanks, Jason-JH Lin ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-14 2:46 ` Jason-JH Lin (林睿祥) @ 2026-08-14 10:57 ` Juha-Pekka Heikkilä 2026-08-14 17:12 ` Jason-JH Lin (林睿祥) 0 siblings, 1 reply; 11+ messages in thread From: Juha-Pekka Heikkilä @ 2026-08-14 10:57 UTC (permalink / raw) To: Jason-JH Lin (林睿祥), igt-dev@lists.freedesktop.org, ville.syrjala@linux.intel.com, karthik.b.s@intel.com, swati2.sharma@intel.com, kamil.konieczny@linux.intel.com, fshao@chromium.org Cc: Project_Global_Chrome_Upstream_Group, markyacoub@chromium.org, jani.nikula@intel.com, Paul-pl Chen (陳柏霖), navaremanasi@google.com, Lancelot Wu (吳瑋晟), gildekel@google.com Hi Jason-JH, On 14/08/2026 05.46, Jason-JH Lin (林睿祥) wrote: > On Thu, 2026-08-13 at 14:07 +0300, Juha-Pekka Heikkilä wrote: >> >> External email : Please do not click links or open attachments until >> you have verified the sender or the content. >> >> >> Hi, >> >> On 13/08/2026 06.37, Karthik B S wrote: >> > Hi Jason-JH, >> > >> > On 8/11/2026 9:44 PM, Jason-JH Lin wrote: >> > > The capture_crc() function validated that the CRC frame sequence >> > > returned by igt_pipe_crc_get_for_frame() matches the expected >> > > value. >> > > However, igt_pipe_crc_get_for_frame() already guarantees >> > > crc->frame >= expected via its internal loop: >> > > >> > > do { >> > > read_one_crc(pipe_crc, crc); >> > > } while (igt_vblank_before(crc->frame, vblank)); >> > This isn't fully true IMHO. The capture CRC function actually >> > ensured >> > the exact match of frame sequence and with this patch we're just >> > guaranteeing '>='. >> >> as Karthik said; the claim it not true. What this change would do is >> relax the sequence check to be open ended .. while current check is >> making exact expectation. In other words, we _expect_ to see certain >> crc >> with correct vblank number, with the proposed change if expected crc >> never arrived in correct sequence we would be unaware of it. >> >> Let's not do this. > > Hi JP, > > Thanks for the review. Let me explain the background of this issue. > > MediaTek CRC Internal Queue Mechanism: > MediaTek's DRM driver uses a per-commit CRC queue rather than > continuous frame-by-frame reporting. CRC entries are reported only > after the hardware pipeline has stabilized (3 vblanks after commit), > and the frame number reflects the vblank count at the time of CRC > readout, not the original commit latch time. > > For example, consider 4 consecutive flips: > > Timeline: > Frame 100: Flip 0 latches → ev.sequence=100 > Frame 101: Flip 1 latches → ev.sequence=101 > Frame 102: Flip 2 latches → ev.sequence=102 > Frame 103: Flip 3 latches → ev.sequence=103 (last flip) > > Queue reports CRCs with 3-vblank delay: > Frame 103: Reports flip 0 CRC → frame=103 > Frame 104: Reports flip 1 CRC → frame=104 > Frame 105: Reports flip 2 CRC → frame=105 > Frame 106: Reports flip 3 CRC → frame=106 > > PlaneTest expected vblanks: > vblank[0] = 101 (flip 1's ev.sequence, for flip 0's CRC) > vblank[1] = 102 (flip 2's ev.sequence, for flip 1's CRC) > vblank[2] = 103 (flip 3's ev.sequence, for flip 2's CRC) > vblank[3] = 103 + 1 = 104 (last frame) > > capture_crc checks (== exact match): > flip 0: expected=101, got=103 → 103 != 101 → FAIL > flip 1: expected=102, got=104 → 104 != 102 → FAIL > flip 2: expected=103, got=105 → 105 != 103 → FAIL > flip 3: expected=104, got=106 → 106 != 104 → FAIL > > Library behavior: > igt_pipe_crc_get_for_frame(expected=104) → returns CRC with frame=106 > Since 106 >= 104, the library considers this valid and returns it. > > The CRC value is correct (it corresponds to the right framebuffer > content), but the frame number is larger than expected due to the > queue processing delay. This is an inherent characteristic of hardware > that batches CRC reporting, and does not indicate data corruption or > buffer overflow. > that's all MediaTek specific behavior. It doesn't change the fact that this check you are trying to remove is what catches wrong-frame crcs for every other driver too. > > Consistency with other IGT tests and library contract > > Looking at how other tests handle igt_pipe_crc_get_for_frame(): > 1. kms_rotation_crc also calls igt_pipe_crc_get_for_frame() but does > NOT validate that crc.frame == expected. It only compares CRC values > between software and hardware rotated frames (igt_assert_crc_equal). > 2. kms_pipe_crc_basic (read-crc-frame-sequence subtest) validates that > consecutive CRCs have frame + 1 == next_frame (relative increment), > but does NOT validate absolute match against an expected vblank count. > 3. The library API igt_pipe_crc_get_for_frame() is explicitly designed > with >= semantics: > do { > read_one_crc(pipe_crc, crc); > } while (igt_vblank_before(crc->frame, vblank)); > Its contract is "return the first CRC at or after the requested frame." > No other caller in IGT adds a stricter == check on top of this. > > The capture_crc() exact-match check in kms_plane is the only place in > the entire IGT codebase that imposes a stricter requirement than the > library's own API contract. This makes it incompatible with drivers > that use queued CRC reporting, while the actual CRC validation > (comparing pixel content) remains correct. > > Given that the library's API contract is >=, and no other caller > enforces ==, what would be the preferred approach here? The "no other test does ==" argument doesn't apply here either. Other tests don't reconstruct per-frame crc/vblank mapping the way this test does, so they don't need it. This one does. Disable the check for MediaTek specifically if you don't want to care about this check (e.g. is_mtk_device() like other mtk workarounds already in this file), don't remove a correctness check that other drivers rely on. /Juha-Pekka ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check 2026-08-14 10:57 ` Juha-Pekka Heikkilä @ 2026-08-14 17:12 ` Jason-JH Lin (林睿祥) 0 siblings, 0 replies; 11+ messages in thread From: Jason-JH Lin (林睿祥) @ 2026-08-14 17:12 UTC (permalink / raw) To: juhapekka.heikkila@gmail.com, igt-dev@lists.freedesktop.org, fshao@chromium.org, ville.syrjala@linux.intel.com, karthik.b.s@intel.com, swati2.sharma@intel.com, kamil.konieczny@linux.intel.com Cc: gildekel@google.com, jani.nikula@intel.com, Project_Global_Chrome_Upstream_Group, markyacoub@chromium.org, Paul-pl Chen (陳柏霖), Lancelot Wu (吳瑋晟), navaremanasi@google.com On Fri, 2026-08-14 at 13:57 +0300, Juha-Pekka Heikkilä wrote: > > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > Hi Jason-JH, > > On 14/08/2026 05.46, Jason-JH Lin (林睿祥) wrote: > > On Thu, 2026-08-13 at 14:07 +0300, Juha-Pekka Heikkilä wrote: > > > > > > External email : Please do not click links or open attachments > > > until > > > you have verified the sender or the content. > > > > > > > > > Hi, > > > > > > On 13/08/2026 06.37, Karthik B S wrote: > > > > Hi Jason-JH, > > > > > > > > On 8/11/2026 9:44 PM, Jason-JH Lin wrote: > > > > > The capture_crc() function validated that the CRC frame > > > > > sequence > > > > > returned by igt_pipe_crc_get_for_frame() matches the expected > > > > > value. > > > > > However, igt_pipe_crc_get_for_frame() already guarantees > > > > > crc->frame >= expected via its internal loop: > > > > > > > > > > do { > > > > > read_one_crc(pipe_crc, crc); > > > > > } while (igt_vblank_before(crc->frame, vblank)); > > > > This isn't fully true IMHO. The capture CRC function actually > > > > ensured > > > > the exact match of frame sequence and with this patch we're > > > > just > > > > guaranteeing '>='. > > > > > > as Karthik said; the claim it not true. What this change would do > > > is > > > relax the sequence check to be open ended .. while current check > > > is > > > making exact expectation. In other words, we _expect_ to see > > > certain > > > crc > > > with correct vblank number, with the proposed change if expected > > > crc > > > never arrived in correct sequence we would be unaware of it. > > > > > > Let's not do this. > > > > Hi JP, > > > > Thanks for the review. Let me explain the background of this issue. > > > > MediaTek CRC Internal Queue Mechanism: > > MediaTek's DRM driver uses a per-commit CRC queue rather than > > continuous frame-by-frame reporting. CRC entries are reported only > > after the hardware pipeline has stabilized (3 vblanks after > > commit), > > and the frame number reflects the vblank count at the time of CRC > > readout, not the original commit latch time. > > > > For example, consider 4 consecutive flips: > > > > Timeline: > > Frame 100: Flip 0 latches → ev.sequence=100 > > Frame 101: Flip 1 latches → ev.sequence=101 > > Frame 102: Flip 2 latches → ev.sequence=102 > > Frame 103: Flip 3 latches → ev.sequence=103 (last flip) > > > > Queue reports CRCs with 3-vblank delay: > > Frame 103: Reports flip 0 CRC → frame=103 > > Frame 104: Reports flip 1 CRC → frame=104 > > Frame 105: Reports flip 2 CRC → frame=105 > > Frame 106: Reports flip 3 CRC → frame=106 > > > > PlaneTest expected vblanks: > > vblank[0] = 101 (flip 1's ev.sequence, for flip 0's CRC) > > vblank[1] = 102 (flip 2's ev.sequence, for flip 1's CRC) > > vblank[2] = 103 (flip 3's ev.sequence, for flip 2's CRC) > > vblank[3] = 103 + 1 = 104 (last frame) > > > > capture_crc checks (== exact match): > > flip 0: expected=101, got=103 → 103 != 101 → FAIL > > flip 1: expected=102, got=104 → 104 != 102 → FAIL > > flip 2: expected=103, got=105 → 105 != 103 → FAIL > > flip 3: expected=104, got=106 → 106 != 104 → FAIL > > > > Library behavior: > > igt_pipe_crc_get_for_frame(expected=104) → returns CRC with > > frame=106 > > Since 106 >= 104, the library considers this valid and returns > > it. > > > > The CRC value is correct (it corresponds to the right framebuffer > > content), but the frame number is larger than expected due to the > > queue processing delay. This is an inherent characteristic of > > hardware > > that batches CRC reporting, and does not indicate data corruption > > or > > buffer overflow. > > > > that's all MediaTek specific behavior. It doesn't change the fact > that > this check you are trying to remove is what catches wrong-frame crcs > for > every other driver too. > I understand your point that the strict == check is crucial for other drivers to correctly detect wrong-frame CRCs, and removing it entirely would break that correctness verification for them. > > > > Consistency with other IGT tests and library contract > > > > Looking at how other tests handle igt_pipe_crc_get_for_frame(): > > 1. kms_rotation_crc also calls igt_pipe_crc_get_for_frame() but > > does > > NOT validate that crc.frame == expected. It only compares CRC > > values > > between software and hardware rotated frames > > (igt_assert_crc_equal). > > 2. kms_pipe_crc_basic (read-crc-frame-sequence subtest) validates > > that > > consecutive CRCs have frame + 1 == next_frame (relative increment), > > but does NOT validate absolute match against an expected vblank > > count. > > 3. The library API igt_pipe_crc_get_for_frame() is explicitly > > designed > > with >= semantics: > > do { > > read_one_crc(pipe_crc, crc); > > } while (igt_vblank_before(crc->frame, vblank)); > > Its contract is "return the first CRC at or after the requested > > frame." > > No other caller in IGT adds a stricter == check on top of this. > > > > The capture_crc() exact-match check in kms_plane is the only place > > in > > the entire IGT codebase that imposes a stricter requirement than > > the > > library's own API contract. This makes it incompatible with drivers > > that use queued CRC reporting, while the actual CRC validation > > (comparing pixel content) remains correct. > > > > Given that the library's API contract is >=, and no other caller > > enforces ==, what would be the preferred approach here? > > The "no other test does ==" argument doesn't apply here either. Other > tests don't reconstruct per-frame crc/vblank mapping the way this > test > does, so they don't need it. This one does. > > Disable the check for MediaTek specifically if you don't want to care > about this check (e.g. is_mtk_device() like other mtk workarounds > already in this file), don't remove a correctness check that other > drivers rely on. > > /Juha-Pekka I agree with your suggestion to make this a MediaTek-specific skip. We will update the patch to use is_mtk_device() and only skip the check for MediaTek devices. This preserves the strict == correctness check for other drivers while allowing our queued CRC reporting mechanism to pass on MTK hardware. Thanks, Jason-JH Lin ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-08-14 17:13 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-08-11 16:14 [PATCH i-g-t v2] tests/kms_plane: Remove redundant CRC frame sequence check Jason-JH Lin 2026-08-11 20:31 ` ✓ i915.CI.BAT: success for " Patchwork 2026-08-11 20:38 ` ✓ Xe.CI.BAT: " Patchwork 2026-08-11 22:33 ` ✓ Xe.CI.FULL: " Patchwork 2026-08-12 19:28 ` [PATCH i-g-t v2] " Manasi Navare 2026-08-13 3:37 ` Karthik B S 2026-08-13 5:36 ` Jason-JH Lin (林睿祥) 2026-08-13 11:07 ` Juha-Pekka Heikkilä 2026-08-14 2:46 ` Jason-JH Lin (林睿祥) 2026-08-14 10:57 ` Juha-Pekka Heikkilä 2026-08-14 17:12 ` Jason-JH Lin (林睿祥)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox