[igt-dev] [HAX] tests/kms_ccs: Leave CRC collection enabled

Dhinakaran Pandiyan dhinakaran.pandiyan at intel.com
Thu Mar 14 22:21:21 UTC 2019


There are sporadic failures of this test due to CRC mismatches, but
nothing stands out in dmesg. Unlike the earlier CRC failures, there is no
visible corruption and the test consistently passes on the ICL's I tested.
So, the failures in CI look independent of the CCS functionality. Since
PSR can affect CRCs, let's try leaving CRC generation turned on for the
duration of a plane test. This prevents the kernel from flip-flop'ing
between PSR2 and PSR1 in the middle.

Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
---
 tests/intel-ci/fast-feedback.testlist | 177 +-------------------------
 tests/kms_ccs.c                       |   6 +-
 2 files changed, 8 insertions(+), 175 deletions(-)

diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 9b711946..13545f95 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -22,116 +22,6 @@ igt at gem_exec_basic@basic-bsd2
 igt at gem_exec_basic@basic-default
 igt at gem_exec_basic@basic-render
 igt at gem_exec_basic@basic-vebox
-igt at gem_exec_basic@gtt-blt
-igt at gem_exec_basic@gtt-bsd
-igt at gem_exec_basic@gtt-bsd1
-igt at gem_exec_basic@gtt-bsd2
-igt at gem_exec_basic@gtt-default
-igt at gem_exec_basic@gtt-render
-igt at gem_exec_basic@gtt-vebox
-igt at gem_exec_basic@readonly-blt
-igt at gem_exec_basic@readonly-bsd
-igt at gem_exec_basic@readonly-bsd1
-igt at gem_exec_basic@readonly-bsd2
-igt at gem_exec_basic@readonly-default
-igt at gem_exec_basic@readonly-render
-igt at gem_exec_basic@readonly-vebox
-igt at gem_exec_create@basic
-igt at gem_exec_fence@basic-busy-default
-igt at gem_exec_fence@basic-wait-default
-igt at gem_exec_fence@basic-await-default
-igt at gem_exec_fence@nb-await-default
-igt at gem_exec_gttfill@basic
-igt at gem_exec_parallel@basic
-igt at gem_exec_parse@basic-allowed
-igt at gem_exec_parse@basic-rejected
-igt at gem_exec_reloc@basic-cpu
-igt at gem_exec_reloc@basic-gtt
-igt at gem_exec_reloc@basic-cpu-gtt
-igt at gem_exec_reloc@basic-gtt-cpu
-igt at gem_exec_reloc@basic-cpu-read
-igt at gem_exec_reloc@basic-gtt-read
-igt at gem_exec_reloc@basic-write-cpu
-igt at gem_exec_reloc@basic-write-gtt
-igt at gem_exec_reloc@basic-write-read
-igt at gem_exec_reloc@basic-cpu-noreloc
-igt at gem_exec_reloc@basic-gtt-noreloc
-igt at gem_exec_reloc@basic-cpu-gtt-noreloc
-igt at gem_exec_reloc@basic-gtt-cpu-noreloc
-igt at gem_exec_reloc@basic-cpu-read-noreloc
-igt at gem_exec_reloc@basic-gtt-read-noreloc
-igt at gem_exec_reloc@basic-write-cpu-noreloc
-igt at gem_exec_reloc@basic-write-gtt-noreloc
-igt at gem_exec_reloc@basic-write-read-noreloc
-igt at gem_exec_reloc@basic-cpu-active
-igt at gem_exec_reloc@basic-gtt-active
-igt at gem_exec_reloc@basic-cpu-gtt-active
-igt at gem_exec_reloc@basic-gtt-cpu-active
-igt at gem_exec_reloc@basic-cpu-read-active
-igt at gem_exec_reloc@basic-gtt-read-active
-igt at gem_exec_reloc@basic-write-cpu-active
-igt at gem_exec_reloc@basic-write-gtt-active
-igt at gem_exec_reloc@basic-write-read-active
-igt at gem_exec_reloc@basic-softpin
-igt at gem_exec_store@basic-all
-igt at gem_exec_store@basic-blt
-igt at gem_exec_store@basic-bsd
-igt at gem_exec_store@basic-bsd1
-igt at gem_exec_store@basic-bsd2
-igt at gem_exec_store@basic-default
-igt at gem_exec_store@basic-render
-igt at gem_exec_store@basic-vebox
-igt at gem_exec_suspend@basic
-igt at gem_exec_suspend@basic-s3
-igt at gem_exec_suspend@basic-s4-devices
-igt at gem_flink_basic@bad-flink
-igt at gem_flink_basic@bad-open
-igt at gem_flink_basic@basic
-igt at gem_flink_basic@double-flink
-igt at gem_flink_basic@flink-lifetime
-igt at gem_linear_blits@basic
-igt at gem_mmap@basic
-igt at gem_mmap@basic-small-bo
-igt at gem_mmap_gtt@basic
-igt at gem_mmap_gtt@basic-copy
-igt at gem_mmap_gtt@basic-read
-igt at gem_mmap_gtt@basic-read-no-prefault
-igt at gem_mmap_gtt@basic-read-write
-igt at gem_mmap_gtt@basic-read-write-distinct
-igt at gem_mmap_gtt@basic-short
-igt at gem_mmap_gtt@basic-small-bo
-igt at gem_mmap_gtt@basic-small-bo-tiledx
-igt at gem_mmap_gtt@basic-small-bo-tiledy
-igt at gem_mmap_gtt@basic-small-copy
-igt at gem_mmap_gtt@basic-small-copy-xy
-igt at gem_mmap_gtt@basic-wc
-igt at gem_mmap_gtt@basic-write
-igt at gem_mmap_gtt@basic-write-cpu-read-gtt
-igt at gem_mmap_gtt@basic-write-gtt
-igt at gem_mmap_gtt@basic-write-gtt-no-prefault
-igt at gem_mmap_gtt@basic-write-no-prefault
-igt at gem_mmap_gtt@basic-write-read
-igt at gem_mmap_gtt@basic-write-read-distinct
-igt at gem_pread@basic
-igt at gem_pwrite@basic
-igt at gem_render_linear_blits@basic
-igt at gem_render_tiled_blits@basic
-igt at gem_ringfill@basic-default
-igt at gem_ringfill@basic-default-interruptible
-igt at gem_ringfill@basic-default-forked
-igt at gem_ringfill@basic-default-fd
-igt at gem_sync@basic-all
-igt at gem_sync@basic-each
-igt at gem_sync@basic-many-each
-igt at gem_sync@basic-store-all
-igt at gem_sync@basic-store-each
-igt at gem_tiled_blits@basic
-igt at gem_tiled_fence_blits@basic
-igt at gem_tiled_pread_basic
-igt at gem_wait@basic-busy-all
-igt at gem_wait@basic-wait-all
-igt at gem_wait@basic-await-all
-igt at gem_workarounds@basic-read
 igt at i915_getparams_basic@basic-eu-total
 igt at i915_getparams_basic@basic-subslice-total
 igt at i915_hangman@error-state-basic
@@ -164,32 +54,9 @@ igt at kms_addfb_basic@invalid-set-prop
 igt at kms_addfb_basic@invalid-set-prop-any
 igt at kms_addfb_basic@no-handle
 igt at kms_addfb_basic@size-max
-igt at kms_addfb_basic@small-bo
-igt at kms_addfb_basic@tile-pitch-mismatch
-igt at kms_addfb_basic@too-high
-igt at kms_addfb_basic@too-wide
-igt at kms_addfb_basic@unused-handle
-igt at kms_addfb_basic@unused-modifier
-igt at kms_addfb_basic@unused-offsets
-igt at kms_addfb_basic@unused-pitches
-igt at kms_busy@basic-flip-a
-igt at kms_busy@basic-flip-b
-igt at kms_busy@basic-flip-c
-igt at kms_chamelium@dp-hpd-fast
-igt at kms_chamelium@dp-edid-read
-igt at kms_chamelium@dp-crc-fast
-igt at kms_chamelium@hdmi-hpd-fast
-igt at kms_chamelium@hdmi-edid-read
-igt at kms_chamelium@hdmi-crc-fast
-igt at kms_chamelium@vga-hpd-fast
-igt at kms_chamelium@vga-edid-read
-igt at kms_chamelium@common-hpd-after-suspend
-igt at kms_prop_blob@basic
 igt at kms_cursor_legacy@basic-busy-flip-before-cursor-atomic
 igt at kms_cursor_legacy@basic-busy-flip-before-cursor-legacy
 igt at kms_cursor_legacy@basic-flip-after-cursor-atomic
-igt at kms_cursor_legacy@basic-flip-after-cursor-legacy
-igt at kms_cursor_legacy@basic-flip-after-cursor-varying-size
 igt at kms_cursor_legacy@basic-flip-before-cursor-atomic
 igt at kms_cursor_legacy@basic-flip-before-cursor-legacy
 igt at kms_cursor_legacy@basic-flip-before-cursor-varying-size
@@ -202,6 +69,9 @@ igt at kms_force_connector_basic@force-edid
 igt at kms_force_connector_basic@force-load-detect
 igt at kms_force_connector_basic@prune-stale-modes
 igt at kms_frontbuffer_tracking@basic
+igt at kms_ccs@pipe-B-crc-sprite-planes-basic
+igt at kms_ccs@pipe-A-crc-sprite-planes-basic
+igt at kms_ccs@pipe-C-crc-sprite-planes-basic
 igt at kms_pipe_crc_basic@bad-source
 igt at kms_pipe_crc_basic@hang-read-crc-pipe-a
 igt at kms_pipe_crc_basic@hang-read-crc-pipe-b
@@ -218,55 +88,14 @@ igt at kms_pipe_crc_basic@read-crc-pipe-b
 igt at kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence
 igt at kms_pipe_crc_basic@read-crc-pipe-c
 igt at kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence
-igt at kms_pipe_crc_basic@suspend-read-crc-pipe-a
-igt at kms_pipe_crc_basic@suspend-read-crc-pipe-b
-igt at kms_pipe_crc_basic@suspend-read-crc-pipe-c
 igt at kms_psr@primary_page_flip
 igt at kms_psr@cursor_plane_move
 igt at kms_psr@sprite_plane_onoff
 igt at kms_psr@primary_mmap_gtt
-igt at kms_setmode@basic-clone-single-crtc
-igt at i915_pm_backlight@basic-brightness
-igt at i915_pm_rpm@basic-pci-d3-state
-igt at i915_pm_rpm@basic-rte
-igt at i915_pm_rps@basic-api
 igt at prime_busy@basic-after-default
 igt at prime_busy@basic-before-default
-igt at prime_busy@basic-wait-after-default
-igt at prime_busy@basic-wait-before-default
-igt at prime_self_import@basic-llseek-bad
-igt at prime_self_import@basic-llseek-size
-igt at prime_self_import@basic-with_fd_dup
-igt at prime_self_import@basic-with_one_bo
-igt at prime_self_import@basic-with_one_bo_two_files
-igt at prime_self_import@basic-with_two_bos
-igt at prime_vgem@basic-busy-default
-igt at prime_vgem@basic-fence-flip
-igt at prime_vgem@basic-fence-mmap
-igt at prime_vgem@basic-fence-read
-igt at prime_vgem@basic-fence-wait-default
-igt at prime_vgem@basic-gtt
-igt at prime_vgem@basic-read
-igt at prime_vgem@basic-sync-default
-igt at prime_vgem@basic-wait-default
-igt at prime_vgem@basic-write
-igt at vgem_basic@setversion
-igt at vgem_basic@create
-igt at vgem_basic@debugfs
-igt at vgem_basic@dmabuf-export
-igt at vgem_basic@dmabuf-fence
-igt at vgem_basic@dmabuf-fence-before
-igt at vgem_basic@dmabuf-mmap
-igt at vgem_basic@mmap
-igt at vgem_basic@second-client
-igt at vgem_basic@sysfs
 
 # All tests that do module unloading and reloading are executed last.
 # They will sometimes reveal issues of earlier tests leaving the
 # driver in a broken state that is not otherwise noticed in that test.
 
-igt at vgem_basic@unload
-igt at i915_module_load@reload
-igt at i915_module_load@reload-no-display
-igt at i915_module_load@reload-with-fault-injection
-igt at i915_pm_rpm@module-reload
diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index a74bd706..f34fd80e 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -347,7 +347,7 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
 		igt_assert_eq(ret, 0);
 
 		if (crc)
-			igt_pipe_crc_collect_crc(data->pipe_crc, crc);
+			igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, crc);
 	}
 
 	igt_debug_wait_for_keypress("ccs");
@@ -384,16 +384,20 @@ static int test_output(data_t *data)
 	}
 
 	igt_output_set_pipe(data->output, data->pipe);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
 	if (data->flags & TEST_CRC) {
 		data->pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
+		igt_pipe_crc_start(data->pipe_crc);
 
 		if (try_config(data, fb_flags | FB_COMPRESSED, &ref_crc) &&
 		    try_config(data, fb_flags, &crc)) {
 			igt_assert_crc_equal(&crc, &ref_crc);
+			igt_warn("compressed %x ref %x\n", ref_crc.crc[0], crc.crc[0]);
 			valid_tests++;
 		}
 
+		igt_pipe_crc_stop(data->pipe_crc);
 		igt_pipe_crc_free(data->pipe_crc);
 		data->pipe_crc = NULL;
 	}
-- 
2.17.1



More information about the igt-dev mailing list