From 356b9409f0ec25e6e2fa65ef3040b902a3e5204a Mon Sep 17 00:00:00 2001 From: Arkadiusz Hiler Date: Fri, 15 Mar 2019 14:53:32 +0200 Subject: tests/kms_plane: Print count of mismatched colors Currently we are printing one igt_warn for each CRC mismatch, which gets quite overwhelming with having to see the same error 8 times for each color tested: WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 Since the most interesting information here is which format on which pipe/plane is broken we can skip igt_warn just once. For those weirder and rarer case where just certain colors would fail we still provide the count and the mask of color array indices that failed: WARNING: CRC mismatches with format NV12 (0x3231564e) on A.3 with 8/8 solid colors tested (0xFF) v2 (Petri): Print a mask so it's possible to know which colors failed. Cc: Martin Peres Cc: Dhinakaran Pandiyan Signed-off-by: Arkadiusz Hiler Reviewed-by: Martin Peres Signed-off-by: Petri Latvala Acked-by: Dhinakaran Pandiyan --- tests/kms_plane.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'tests/kms_plane.c') diff --git a/tests/kms_plane.c b/tests/kms_plane.c index 969a61c8..82d4d1d0 100644 --- a/tests/kms_plane.c +++ b/tests/kms_plane.c @@ -547,6 +547,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe, } for (int i = 0; i < plane->drm_plane->count_formats; i++) { + int crc_mismatch_count = 0; + int crc_mismatch_mask = 0; igt_crc_t crc; format = plane->drm_plane->formats[i]; @@ -562,21 +564,22 @@ static bool test_format_plane(data_t *data, enum pipe pipe, kmstest_pipe_name(pipe), plane->index); for (int j = 0; j < ARRAY_SIZE(colors); j++) { - bool crc_equal; - test_format_plane_color(data, pipe, plane, format, width, height, dst_w, dst_h, j, &crc, &fb); - crc_equal = igt_check_crc_equal(&crc, &ref_crc[j]); - result &= crc_equal; - - if (!crc_equal) - igt_warn("CRC mismatch with format " IGT_FORMAT_FMT " on %s.%u\n", - IGT_FORMAT_ARGS(format), - kmstest_pipe_name(pipe), plane->index); + if (!igt_check_crc_equal(&crc, &ref_crc[j])) { + crc_mismatch_count++; + crc_mismatch_mask |= (1 << j); + result = false; + } } + + if (crc_mismatch_count) + igt_warn("CRC mismatches with format " IGT_FORMAT_FMT " on %s.%u with %d/%d solid colors tested (0x%X)\n", + IGT_FORMAT_ARGS(format), kmstest_pipe_name(pipe), + plane->index, crc_mismatch_count, (int)ARRAY_SIZE(colors), crc_mismatch_mask); } igt_pipe_crc_stop(data->pipe_crc); -- cgit v1.2.3