* [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup @ 2022-06-30 8:55 Bhanuprakash Modem 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic Bhanuprakash Modem ` (6 more replies) 0 siblings, 7 replies; 17+ messages in thread From: Bhanuprakash Modem @ 2022-06-30 8:55 UTC (permalink / raw) To: igt-dev, swati2.sharma, kamil.konieczny Convert all possible subtests to dynamic and sanitize the system state before starting/exiting the subtest. Bhanuprakash Modem (2): tests/kms_color: Convert tests to dynamic tests/kms_color: Test Cleanup tests/kms_color.c | 622 +++++++++++++++++++++------------------ tests/kms_color_helper.h | 2 + 2 files changed, 341 insertions(+), 283 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem @ 2022-06-30 8:55 ` Bhanuprakash Modem 2022-07-04 16:39 ` Kamil Konieczny 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 2/2] tests/kms_color: Test Cleanup Bhanuprakash Modem ` (5 subsequent siblings) 6 siblings, 1 reply; 17+ messages in thread From: Bhanuprakash Modem @ 2022-06-30 8:55 UTC (permalink / raw) To: igt-dev, swati2.sharma, kamil.konieczny Convert the existing subtests to dynamic subtests at pipe level. V2: * Fix nested igt_fixture in igt_subtest V3: * Fix to not dereferencing a NULL pointer V4: * Add output name to subtest V5: * Rebase V6: * Fix typos in test description V7: * Added comments back to ctm tets. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/kms_color.c | 556 +++++++++++++++++++++------------------ tests/kms_color_helper.h | 1 + 2 files changed, 298 insertions(+), 259 deletions(-) diff --git a/tests/kms_color.c b/tests/kms_color.c index ba06947b..85f3b32d 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -203,7 +203,7 @@ static bool test_pipe_gamma(data_t *data, * gamma LUT and verify we have the same CRC as drawing solid color rectangles * with linear legacy gamma LUT. */ -static void test_pipe_legacy_gamma(data_t *data, +static bool test_pipe_legacy_gamma(data_t *data, igt_plane_t *primary) { igt_output_t *output; @@ -220,6 +220,7 @@ static void test_pipe_legacy_gamma(data_t *data, struct igt_fb fb_modeset, fb; igt_crc_t crc_fullgamma, crc_fullcolors; int fb_id, fb_modeset_id; + bool ret; kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); legacy_lut_size = kms_crtc->gamma_size; @@ -285,7 +286,7 @@ static void test_pipe_legacy_gamma(data_t *data, /* Verify that the CRC of the software computed output is * equal to the CRC of the gamma LUT transformation output. */ - igt_assert_crc_equal(&crc_fullgamma, &crc_fullcolors); + ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); /* Reset output. */ for (i = 1; i < legacy_lut_size; i++) @@ -303,13 +304,15 @@ static void test_pipe_legacy_gamma(data_t *data, free(red_lut); free(green_lut); free(blue_lut); + + return ret; } /* * Verify that setting the legacy gamma LUT resets the gamma LUT set * through the GAMMA_LUT property. */ -static void test_pipe_legacy_gamma_reset(data_t *data, +static bool test_pipe_legacy_gamma_reset(data_t *data, igt_plane_t *primary) { const double ctm_identity[] = { @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, struct drm_color_lut *lut; drmModePropertyBlobPtr blob; igt_output_t *output; + bool ret = true; igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, data->gamma_lut_size)); lut = (struct drm_color_lut *) blob->data; for (i = 0; i < data->gamma_lut_size; i++) - igt_assert(lut[i].red == 0 && + ret &=(lut[i].red == 0 && lut[i].green == 0 && lut[i].blue == 0); drmModeFreePropertyBlob(blob); + if(!ret) + goto end; /* Set a gamma LUT using the legacy ioctl and verify * the content of the GAMMA_LUT property is changed @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, legacy_lut_size)); lut = (struct drm_color_lut *) blob->data; for (i = 0; i < legacy_lut_size; i++) - igt_assert(lut[i].red == 0xffff && + ret &= (lut[i].red == 0xffff && lut[i].green == 0xffff && lut[i].blue == 0xffff); drmModeFreePropertyBlob(blob); @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, free_lut(degamma_linear); free_lut(gamma_zero); +end: + return ret; } /* @@ -677,130 +685,99 @@ prep_pipe(data_t *data, enum pipe p) } } -static void -run_tests_for_pipe(data_t *data, enum pipe p) +static void test_setup(data_t *data, enum pipe p) { igt_pipe_t *pipe; - igt_plane_t *primary; - double delta; - int i; - color_t red_green_blue[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - igt_fixture { - prep_pipe(data, p); + prep_pipe(data, p); + igt_require_pipe_crc(data->drm_fd); - igt_require_pipe_crc(data->drm_fd); + pipe = &data->display.pipes[p]; + igt_require(pipe->n_planes >= 0); - pipe = &data->display.pipes[p]; - igt_require(pipe->n_planes >= 0); + data->primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); + data->pipe_crc = igt_pipe_crc_new(data->drm_fd, + data->primary->pipe->pipe, + INTEL_PIPE_CRC_SOURCE_AUTO); - primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); + igt_display_require_output_on_pipe(&data->display, p); + data->output = igt_get_single_output_for_pipe(&data->display, p); + igt_require(data->output); +} - data->pipe_crc = igt_pipe_crc_new(data->drm_fd, - primary->pipe->pipe, - INTEL_PIPE_CRC_SOURCE_AUTO); +static void test_cleanup(data_t *data) +{ + igt_plane_t *primary = data->primary; - igt_display_require_output_on_pipe(&data->display, p); - data->output = igt_get_single_output_for_pipe(&data->display, p); - igt_require(data->output); - } + disable_degamma(primary->pipe); + disable_gamma(primary->pipe); + disable_ctm(primary->pipe); + igt_display_commit(&data->display); + + igt_pipe_crc_free(data->pipe_crc); + data->pipe_crc = NULL; +} + +static void +run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, + bool (*test_t)(data_t*, igt_plane_t*)) +{ + test_setup(data, p); /* We assume an 8bits depth per color for degamma/gamma LUTs * for CRC checks with framebuffer references. */ data->color_depth = 8; - delta = 1.0 / (1 << data->color_depth); data->drm_format = DRM_FORMAT_XRGB8888; - igt_describe("Check the color transformation from red to blue"); - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) { - color_t blue_green_blue[] = { - { 0.0, 0.0, 1.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 0.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 1.0, 0.0, 1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - blue_green_blue, ctm)); - } + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) + igt_assert(test_t(data, data->primary)); - igt_describe("Check the color transformation from green to red"); - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) { - color_t red_red_blue[] = { - { 1.0, 0.0, 0.0 }, - { 1.0, 0.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 1.0, 1.0, 0.0, - 0.0, 0.0, 0.0, - 0.0, 0.0, 1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - red_red_blue, ctm)); - } + test_cleanup(data); +} - igt_describe("Check the color transformation from blue to red"); - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) { - color_t red_green_red[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 1.0, 0.0, 0.0 } - }; - double ctm[] = { 1.0, 0.0, 1.0, - 0.0, 1.0, 0.0, - 0.0, 0.0, 0.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - red_green_red, ctm)); - } +static void +run_ctm_tests_for_pipe(data_t *data, enum pipe p, + color_t *expected_colors, + double *ctm, + int iter) +{ + double delta; + color_t red_green_blue[] = { + { 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; - /* We tests a few values around the expected result because - * the it depends on the hardware we're dealing with, we can - * either get clamped or rounded values and we also need to - * account for odd number of items in the LUTs. */ - igt_describe("Check the color transformation for 0.25 transparency"); - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.25, 0.0, 0.0, - 0.0, 0.25, 0.0, - 0.0, 0.0, 0.25 }; - bool success = false; + test_setup(data, p); - for (i = 0; i < 5; i++) { - expected_colors[0].r = - expected_colors[1].g = - expected_colors[2].b = - 0.25 + delta * (i - 2); - if (test_pipe_ctm(data, primary, red_green_blue, - expected_colors, ctm)) { - success = true; - break; - } - } - igt_assert(success); - } + /* + * We assume an 8bits depth per color for degamma/gamma LUTs + * for CRC checks with framebuffer references. + */ + data->color_depth = 8; + delta = 1.0 / (1 << data->color_depth); + data->drm_format = DRM_FORMAT_XRGB8888; - igt_describe("Check the color transformation for 0.5 transparency"); - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.5, 0.0, 0.0, - 0.0, 0.5, 0.0, - 0.0, 0.0, 0.5 }; + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { bool success = false; + int i; - for (i = 0; i < 5; i++) { + if (!iter) + success = test_pipe_ctm(data, data->primary, red_green_blue, + expected_colors, ctm); + + /* + * We tests a few values around the expected result because + * it depends on the hardware we're dealing with, we can either + * get clamped or rounded values and we also need to account + * for odd number of items in the LUTs. + */ + for (i = 0; i < iter; i++) { expected_colors[0].r = expected_colors[1].g = expected_colors[2].b = 0.5 + delta * (i - 2); - if (test_pipe_ctm(data, primary, red_green_blue, + if (test_pipe_ctm(data, data->primary, red_green_blue, expected_colors, ctm)) { success = true; break; @@ -809,186 +786,249 @@ run_tests_for_pipe(data_t *data, enum pipe p) igt_assert(success); } - igt_describe("Check the color transformation for 0.75 transparency"); - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.75, 0.0, 0.0, - 0.0, 0.75, 0.0, - 0.0, 0.0, 0.75 }; - bool success = false; - - for (i = 0; i < 7; i++) { - expected_colors[0].r = - expected_colors[1].g = - expected_colors[2].b = - 0.75 + delta * (i - 3); - if (test_pipe_ctm(data, primary, red_green_blue, - expected_colors, ctm)) { - success = true; - break; - } - } - igt_assert(success); - } + test_cleanup(data); +} - igt_describe("Check the color transformation for maximum transparency"); - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) { - color_t full_rgb[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 100.0, 0.0, 0.0, - 0.0, 100.0, 0.0, - 0.0, 0.0, 100.0 }; - - /* CherryView generates values on 10bits that we - * produce with an 8 bits per color framebuffer. */ - igt_require(!IS_CHERRYVIEW(data->devid)); - - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - full_rgb, ctm)); - } +static void +run_deep_color_tests_for_pipe(data_t *data, enum pipe p) +{ + igt_output_t *output; + color_t blue_green_blue[] = { + { 0.0, 0.0, 1.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; + color_t red_green_blue[] = { + { 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; + double ctm[] = { 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 1.0, 0.0, 1.0 }; - igt_describe("Check the color transformation for negative transparency"); - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) { - color_t all_black[] = { - { 0.0, 0.0, 0.0 }, - { 0.0, 0.0, 0.0 }, - { 0.0, 0.0, 0.0 } - }; - double ctm[] = { -1.0, 0.0, 0.0, - 0.0, -1.0, 0.0, - 0.0, 0.0, -1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - all_black, ctm)); - } + if (is_i915_device(data->drm_fd)) + igt_require_f((intel_display_ver(data->devid) >= 11), + "At least GEN 11 is required to validate Deep-color.\n"); -#if 0 - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p)) - test_pipe_limited_range_ctm(data, primary); -#endif + test_setup(data, p); - igt_describe("Verify that degamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p)) - igt_assert(test_pipe_degamma(data, primary)); + for_each_valid_output_on_pipe(&data->display, p, output) { + uint64_t max_bpc = get_max_bpc(output); + bool ret; - igt_describe("Verify that gamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p)) - igt_assert(test_pipe_gamma(data, primary)); + if (!max_bpc) + continue; - igt_describe("Verify that legacy gamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p)) - test_pipe_legacy_gamma(data, primary); + if (!panel_supports_deep_color(data->drm_fd, output->name)) + continue; - igt_describe("Verify that setting the legacy gamma LUT resets the gamma LUT set through " - "GAMMA_LUT property"); - igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p)) - test_pipe_legacy_gamma_reset(data, primary); + data->color_depth = 10; + data->drm_format = DRM_FORMAT_XRGB2101010; + data->output = output; + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); + igt_output_set_pipe(output, p); + igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - igt_fixture - igt_require(data->display.is_atomic); + if (is_i915_device(data->drm_fd) && + !i915_clock_constraint(data, p, 10)) + continue; - igt_describe("Verify that deep color works correctly"); - igt_subtest_with_dynamic_f("pipe-%s-deep-color", kmstest_pipe_name(p)) { - igt_output_t *output; - color_t blue_green_blue[] = { - { 0.0, 0.0, 1.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 0.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 1.0, 0.0, 1.0 }; - - if (is_i915_device(data->drm_fd)) - igt_require_f((intel_display_ver(data->devid) >= 11), - "At least GEN 11 is required to validate Deep-color.\n"); - - for_each_valid_output_on_pipe(&data->display, p, output) { - uint64_t max_bpc = get_max_bpc(output); - bool ret; - - if (!max_bpc) - continue; - - if (!panel_supports_deep_color(data->drm_fd, output->name)) - continue; - - data->color_depth = 10; - data->drm_format = DRM_FORMAT_XRGB2101010; - data->output = output; - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); - igt_output_set_pipe(output, p); - igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - - if (is_i915_device(data->drm_fd) && - !i915_clock_constraint(data, p, 10)) - continue; - - igt_dynamic_f("gamma-%s", output->name) { - ret = test_pipe_gamma(data, primary); - - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { + ret = test_pipe_gamma(data, data->primary); - igt_dynamic_f("degamma-%s", output->name) { - ret = test_pipe_degamma(data, primary); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); + } - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { + ret = test_pipe_degamma(data, data->primary); - igt_dynamic_f("ctm-%s", output->name) { - ret = test_pipe_ctm(data, primary, - red_green_blue, - blue_green_blue, ctm); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); + } - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { + ret = test_pipe_ctm(data, data->primary, + red_green_blue, + blue_green_blue, ctm); - break; + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); } + + break; } - igt_fixture { - disable_degamma(primary->pipe); - disable_gamma(primary->pipe); - disable_ctm(primary->pipe); - igt_display_commit(&data->display); + test_cleanup(data); +} + +static void +run_invalid_tests_for_pipe(data_t *data) +{ + enum pipe pipe; + struct { + const char *name; + void (*test_t) (data_t *data, enum pipe pipe); + const char *desc; + } tests[] = { + { "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes, + "Negative check for invalid gamma lut sizes" }, + + { "invalid-degamma-lut-sizes", invalid_degamma_lut_sizes, + "Negative check for invalid degamma lut sizes" }, + + { "invalid-ctm-matrix-sizes", invalid_ctm_matrix_sizes, + "Negative check for color tranformation matrix sizes" }, + }; + int i; - igt_pipe_crc_free(data->pipe_crc); - data->pipe_crc = NULL; + for (i = 0; i < ARRAY_SIZE(tests); i++) { + igt_describe_f("%s", tests[i].desc); + igt_subtest_with_dynamic_f("%s", tests[i].name) { + for_each_pipe(&data->display, pipe) { + prep_pipe(data, pipe); + + igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) + tests[i].test_t(data, pipe); + } + } } } static void -run_invalid_tests_for_pipe(data_t *data, enum pipe p) +run_tests_for_pipe(data_t *data) { - igt_fixture - prep_pipe(data, p); + enum pipe pipe; + struct { + const char *name; + bool (*test_t)(data_t*, igt_plane_t*); + const char *desc; + } gamma_degamma_tests[] = { + { "degamma", test_pipe_degamma, + "Verify that degamma LUT transformation works correctly" }, + + { "gamma", test_pipe_gamma, + "Verify that gamma LUT transformation works correctly" }, + + { "legacy-gamma", test_pipe_legacy_gamma, + "Verify that legacy gamma LUT transformation works correctly" }, + + { "legacy-gamma-reset", test_pipe_legacy_gamma_reset, + "Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property" }, + }; + struct { + const char *name; + int iter; + color_t colors[3]; + double ctm[9]; + const char *desc; + } ctm_tests[] = { + { "ctm-red-to-blue", 0, + {{ 0.0, 0.0, 1.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 1.0, 0.0, 1.0 }, + "Check the color transformation from red to blue" + }, + { "ctm-green-to-red", 0, + {{ 1.0, 0.0, 0.0 }, + { 1.0, 0.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 1.0, 1.0, 0.0, + 0.0, 0.0, 0.0, + 0.0, 0.0, 1.0 }, + "Check the color transformation from green to red" + }, + { "ctm-blue-to-red", 0, + {{ 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 1.0, 0.0, 0.0 }}, + { 1.0, 0.0, 1.0, + 0.0, 1.0, 0.0, + 0.0, 0.0, 0.0 }, + "Check the color transformation from blue to red" + }, + { "ctm-max", 0, + {{ 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 100.0, 0.0, 0.0, + 0.0, 100.0, 0.0, + 0.0, 0.0, 100.0 }, + "Check the color transformation for maximum transparency" + }, + { "ctm-negative", 0, + {{ 0.0, 0.0, 0.0 }, + { 0.0, 0.0, 0.0 }, + { 0.0, 0.0, 0.0 }}, + { -1.0, 0.0, 0.0, + 0.0, -1.0, 0.0, + 0.0, 0.0, -1.0 }, + "Check the color transformation for negative transparency" + }, + { "ctm-0-25", 5, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.25, 0.0, 0.0, + 0.0, 0.25, 0.0, + 0.0, 0.0, 0.25 }, + "Check the color transformation for 0.25 transparency" + }, + { "ctm-0-50", 5, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.5, 0.0, 0.0, + 0.0, 0.5, 0.0, + 0.0, 0.0, 0.5 }, + "Check the color transformation for 0.5 transparency" + }, + { "ctm-0-75", 7, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.75, 0.0, 0.0, + 0.0, 0.75, 0.0, + 0.0, 0.0, 0.75 }, + "Check the color transformation for 0.75 transparency" + }, + }; + int i; + + for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) { + igt_describe_f("%s", gamma_degamma_tests[i].desc); + igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) { + for_each_pipe(&data->display, pipe) { + run_gamma_degamma_tests_for_pipe(data, pipe, + gamma_degamma_tests[i].test_t); + } + } + } - igt_describe("Negative check for invalid gamma lut sizes"); - igt_subtest_f("pipe-%s-invalid-gamma-lut-sizes", kmstest_pipe_name(p)) - invalid_gamma_lut_sizes(data, p); + for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) { + igt_describe_f("%s", ctm_tests[i].desc); + igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) { + for_each_pipe(&data->display, pipe) { + run_ctm_tests_for_pipe(data, pipe, + ctm_tests[i].colors, + ctm_tests[i].ctm, + ctm_tests[i].iter); + } + } + } - igt_describe("Negative check for invalid degamma lut sizes"); - igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p)) - invalid_degamma_lut_sizes(data, p); + igt_fixture + igt_require(data->display.is_atomic); - igt_describe("Negative check for color tranformation matrix sizes"); - igt_subtest_f("pipe-%s-invalid-ctm-matrix-sizes", kmstest_pipe_name(p)) - invalid_ctm_matrix_sizes(data, p); + igt_describe("Verify that deep color works correctly"); + igt_subtest_with_dynamic("deep-color") { + for_each_pipe(&data->display, pipe) { + run_deep_color_tests_for_pipe(data, pipe); + } + } } igt_main { data_t data = {}; - enum pipe pipe; igt_fixture { data.drm_fd = drm_open_driver_master(DRIVER_ANY); @@ -999,13 +1039,11 @@ igt_main igt_display_require(&data.display, data.drm_fd); } - for_each_pipe_static(pipe) { - igt_subtest_group - run_tests_for_pipe(&data, pipe); + igt_subtest_group + run_tests_for_pipe(&data); - igt_subtest_group - run_invalid_tests_for_pipe(&data, pipe); - } + igt_subtest_group + run_invalid_tests_for_pipe(&data); igt_fixture { igt_display_fini(&data.display); diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h index cc07f5ee..2ea15bcd 100644 --- a/tests/kms_color_helper.h +++ b/tests/kms_color_helper.h @@ -50,6 +50,7 @@ typedef struct { igt_display_t display; igt_pipe_crc_t *pipe_crc; igt_output_t *output; + igt_plane_t *primary; uint32_t drm_format; uint32_t color_depth; -- 2.35.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic Bhanuprakash Modem @ 2022-07-04 16:39 ` Kamil Konieczny 2022-07-04 17:14 ` Modem, Bhanuprakash 0 siblings, 1 reply; 17+ messages in thread From: Kamil Konieczny @ 2022-07-04 16:39 UTC (permalink / raw) To: igt-dev Hi Bhanuprakash, On 2022-06-30 at 14:25:22 +0530, Bhanuprakash Modem wrote: > Convert the existing subtests to dynamic subtests at pipe level. > > V2: > * Fix nested igt_fixture in igt_subtest > V3: > * Fix to not dereferencing a NULL pointer > V4: > * Add output name to subtest > V5: > * Rebase > V6: > * Fix typos in test description > V7: > * Added comments back to ctm tets. > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > --- > tests/kms_color.c | 556 +++++++++++++++++++++------------------ > tests/kms_color_helper.h | 1 + > 2 files changed, 298 insertions(+), 259 deletions(-) > > diff --git a/tests/kms_color.c b/tests/kms_color.c > index ba06947b..85f3b32d 100644 > --- a/tests/kms_color.c > +++ b/tests/kms_color.c > @@ -203,7 +203,7 @@ static bool test_pipe_gamma(data_t *data, > * gamma LUT and verify we have the same CRC as drawing solid color rectangles > * with linear legacy gamma LUT. > */ > -static void test_pipe_legacy_gamma(data_t *data, > +static bool test_pipe_legacy_gamma(data_t *data, > igt_plane_t *primary) > { > igt_output_t *output; > @@ -220,6 +220,7 @@ static void test_pipe_legacy_gamma(data_t *data, > struct igt_fb fb_modeset, fb; > igt_crc_t crc_fullgamma, crc_fullcolors; > int fb_id, fb_modeset_id; > + bool ret; > > kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); > legacy_lut_size = kms_crtc->gamma_size; > @@ -285,7 +286,7 @@ static void test_pipe_legacy_gamma(data_t *data, > /* Verify that the CRC of the software computed output is > * equal to the CRC of the gamma LUT transformation output. > */ > - igt_assert_crc_equal(&crc_fullgamma, &crc_fullcolors); > + ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); > > /* Reset output. */ > for (i = 1; i < legacy_lut_size; i++) > @@ -303,13 +304,15 @@ static void test_pipe_legacy_gamma(data_t *data, > free(red_lut); > free(green_lut); > free(blue_lut); > + > + return ret; > } > > /* > * Verify that setting the legacy gamma LUT resets the gamma LUT set > * through the GAMMA_LUT property. > */ > -static void test_pipe_legacy_gamma_reset(data_t *data, > +static bool test_pipe_legacy_gamma_reset(data_t *data, > igt_plane_t *primary) > { > const double ctm_identity[] = { > @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > struct drm_color_lut *lut; > drmModePropertyBlobPtr blob; > igt_output_t *output; > + bool ret = true; > > igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); > > @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > data->gamma_lut_size)); > lut = (struct drm_color_lut *) blob->data; > for (i = 0; i < data->gamma_lut_size; i++) > - igt_assert(lut[i].red == 0 && > + ret &=(lut[i].red == 0 && > lut[i].green == 0 && > lut[i].blue == 0); > drmModeFreePropertyBlob(blob); > + if(!ret) > + goto end; > > /* Set a gamma LUT using the legacy ioctl and verify > * the content of the GAMMA_LUT property is changed > @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > legacy_lut_size)); > lut = (struct drm_color_lut *) blob->data; > for (i = 0; i < legacy_lut_size; i++) > - igt_assert(lut[i].red == 0xffff && > + ret &= (lut[i].red == 0xffff && > lut[i].green == 0xffff && > lut[i].blue == 0xffff); > drmModeFreePropertyBlob(blob); > @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > > free_lut(degamma_linear); > free_lut(gamma_zero); > +end: Should this be before free ? Regards, Kamil > + return ret; > } > > /* > @@ -677,130 +685,99 @@ prep_pipe(data_t *data, enum pipe p) > } > } > > -static void > -run_tests_for_pipe(data_t *data, enum pipe p) > +static void test_setup(data_t *data, enum pipe p) > { > igt_pipe_t *pipe; > - igt_plane_t *primary; > - double delta; > - int i; > - color_t red_green_blue[] = { > - { 1.0, 0.0, 0.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > > - igt_fixture { > - prep_pipe(data, p); > + prep_pipe(data, p); > + igt_require_pipe_crc(data->drm_fd); > > - igt_require_pipe_crc(data->drm_fd); > + pipe = &data->display.pipes[p]; > + igt_require(pipe->n_planes >= 0); > > - pipe = &data->display.pipes[p]; > - igt_require(pipe->n_planes >= 0); > + data->primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); > + data->pipe_crc = igt_pipe_crc_new(data->drm_fd, > + data->primary->pipe->pipe, > + INTEL_PIPE_CRC_SOURCE_AUTO); > > - primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); > + igt_display_require_output_on_pipe(&data->display, p); > + data->output = igt_get_single_output_for_pipe(&data->display, p); > + igt_require(data->output); > +} > > - data->pipe_crc = igt_pipe_crc_new(data->drm_fd, > - primary->pipe->pipe, > - INTEL_PIPE_CRC_SOURCE_AUTO); > +static void test_cleanup(data_t *data) > +{ > + igt_plane_t *primary = data->primary; > > - igt_display_require_output_on_pipe(&data->display, p); > - data->output = igt_get_single_output_for_pipe(&data->display, p); > - igt_require(data->output); > - } > + disable_degamma(primary->pipe); > + disable_gamma(primary->pipe); > + disable_ctm(primary->pipe); > + igt_display_commit(&data->display); > + > + igt_pipe_crc_free(data->pipe_crc); > + data->pipe_crc = NULL; > +} > + > +static void > +run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, > + bool (*test_t)(data_t*, igt_plane_t*)) > +{ > + test_setup(data, p); > > /* We assume an 8bits depth per color for degamma/gamma LUTs > * for CRC checks with framebuffer references. */ > data->color_depth = 8; > - delta = 1.0 / (1 << data->color_depth); > data->drm_format = DRM_FORMAT_XRGB8888; > > - igt_describe("Check the color transformation from red to blue"); > - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) { > - color_t blue_green_blue[] = { > - { 0.0, 0.0, 1.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 0.0, 0.0, 0.0, > - 0.0, 1.0, 0.0, > - 1.0, 0.0, 1.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - blue_green_blue, ctm)); > - } > + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) > + igt_assert(test_t(data, data->primary)); > > - igt_describe("Check the color transformation from green to red"); > - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) { > - color_t red_red_blue[] = { > - { 1.0, 0.0, 0.0 }, > - { 1.0, 0.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 1.0, 1.0, 0.0, > - 0.0, 0.0, 0.0, > - 0.0, 0.0, 1.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - red_red_blue, ctm)); > - } > + test_cleanup(data); > +} > > - igt_describe("Check the color transformation from blue to red"); > - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) { > - color_t red_green_red[] = { > - { 1.0, 0.0, 0.0 }, > - { 0.0, 1.0, 0.0 }, > - { 1.0, 0.0, 0.0 } > - }; > - double ctm[] = { 1.0, 0.0, 1.0, > - 0.0, 1.0, 0.0, > - 0.0, 0.0, 0.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - red_green_red, ctm)); > - } > +static void > +run_ctm_tests_for_pipe(data_t *data, enum pipe p, > + color_t *expected_colors, > + double *ctm, > + int iter) > +{ > + double delta; > + color_t red_green_blue[] = { > + { 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 } > + }; > > - /* We tests a few values around the expected result because > - * the it depends on the hardware we're dealing with, we can > - * either get clamped or rounded values and we also need to > - * account for odd number of items in the LUTs. */ > - igt_describe("Check the color transformation for 0.25 transparency"); > - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) { > - color_t expected_colors[] = { > - { 0.0, }, { 0.0, }, { 0.0, } > - }; > - double ctm[] = { 0.25, 0.0, 0.0, > - 0.0, 0.25, 0.0, > - 0.0, 0.0, 0.25 }; > - bool success = false; > + test_setup(data, p); > > - for (i = 0; i < 5; i++) { > - expected_colors[0].r = > - expected_colors[1].g = > - expected_colors[2].b = > - 0.25 + delta * (i - 2); > - if (test_pipe_ctm(data, primary, red_green_blue, > - expected_colors, ctm)) { > - success = true; > - break; > - } > - } > - igt_assert(success); > - } > + /* > + * We assume an 8bits depth per color for degamma/gamma LUTs > + * for CRC checks with framebuffer references. > + */ > + data->color_depth = 8; > + delta = 1.0 / (1 << data->color_depth); > + data->drm_format = DRM_FORMAT_XRGB8888; > > - igt_describe("Check the color transformation for 0.5 transparency"); > - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) { > - color_t expected_colors[] = { > - { 0.0, }, { 0.0, }, { 0.0, } > - }; > - double ctm[] = { 0.5, 0.0, 0.0, > - 0.0, 0.5, 0.0, > - 0.0, 0.0, 0.5 }; > + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { > bool success = false; > + int i; > > - for (i = 0; i < 5; i++) { > + if (!iter) > + success = test_pipe_ctm(data, data->primary, red_green_blue, > + expected_colors, ctm); > + > + /* > + * We tests a few values around the expected result because > + * it depends on the hardware we're dealing with, we can either > + * get clamped or rounded values and we also need to account > + * for odd number of items in the LUTs. > + */ > + for (i = 0; i < iter; i++) { > expected_colors[0].r = > expected_colors[1].g = > expected_colors[2].b = > 0.5 + delta * (i - 2); > - if (test_pipe_ctm(data, primary, red_green_blue, > + if (test_pipe_ctm(data, data->primary, red_green_blue, > expected_colors, ctm)) { > success = true; > break; > @@ -809,186 +786,249 @@ run_tests_for_pipe(data_t *data, enum pipe p) > igt_assert(success); > } > > - igt_describe("Check the color transformation for 0.75 transparency"); > - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) { > - color_t expected_colors[] = { > - { 0.0, }, { 0.0, }, { 0.0, } > - }; > - double ctm[] = { 0.75, 0.0, 0.0, > - 0.0, 0.75, 0.0, > - 0.0, 0.0, 0.75 }; > - bool success = false; > - > - for (i = 0; i < 7; i++) { > - expected_colors[0].r = > - expected_colors[1].g = > - expected_colors[2].b = > - 0.75 + delta * (i - 3); > - if (test_pipe_ctm(data, primary, red_green_blue, > - expected_colors, ctm)) { > - success = true; > - break; > - } > - } > - igt_assert(success); > - } > + test_cleanup(data); > +} > > - igt_describe("Check the color transformation for maximum transparency"); > - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) { > - color_t full_rgb[] = { > - { 1.0, 0.0, 0.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 100.0, 0.0, 0.0, > - 0.0, 100.0, 0.0, > - 0.0, 0.0, 100.0 }; > - > - /* CherryView generates values on 10bits that we > - * produce with an 8 bits per color framebuffer. */ > - igt_require(!IS_CHERRYVIEW(data->devid)); > - > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - full_rgb, ctm)); > - } > +static void > +run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > +{ > + igt_output_t *output; > + color_t blue_green_blue[] = { > + { 0.0, 0.0, 1.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 } > + }; > + color_t red_green_blue[] = { > + { 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 } > + }; > + double ctm[] = { 0.0, 0.0, 0.0, > + 0.0, 1.0, 0.0, > + 1.0, 0.0, 1.0 }; > > - igt_describe("Check the color transformation for negative transparency"); > - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) { > - color_t all_black[] = { > - { 0.0, 0.0, 0.0 }, > - { 0.0, 0.0, 0.0 }, > - { 0.0, 0.0, 0.0 } > - }; > - double ctm[] = { -1.0, 0.0, 0.0, > - 0.0, -1.0, 0.0, > - 0.0, 0.0, -1.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - all_black, ctm)); > - } > + if (is_i915_device(data->drm_fd)) > + igt_require_f((intel_display_ver(data->devid) >= 11), > + "At least GEN 11 is required to validate Deep-color.\n"); > > -#if 0 > - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p)) > - test_pipe_limited_range_ctm(data, primary); > -#endif > + test_setup(data, p); > > - igt_describe("Verify that degamma LUT transformation works correctly"); > - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p)) > - igt_assert(test_pipe_degamma(data, primary)); > + for_each_valid_output_on_pipe(&data->display, p, output) { > + uint64_t max_bpc = get_max_bpc(output); > + bool ret; > > - igt_describe("Verify that gamma LUT transformation works correctly"); > - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p)) > - igt_assert(test_pipe_gamma(data, primary)); > + if (!max_bpc) > + continue; > > - igt_describe("Verify that legacy gamma LUT transformation works correctly"); > - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p)) > - test_pipe_legacy_gamma(data, primary); > + if (!panel_supports_deep_color(data->drm_fd, output->name)) > + continue; > > - igt_describe("Verify that setting the legacy gamma LUT resets the gamma LUT set through " > - "GAMMA_LUT property"); > - igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p)) > - test_pipe_legacy_gamma_reset(data, primary); > + data->color_depth = 10; > + data->drm_format = DRM_FORMAT_XRGB2101010; > + data->output = output; > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > + igt_output_set_pipe(output, p); > + igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); > > - igt_fixture > - igt_require(data->display.is_atomic); > + if (is_i915_device(data->drm_fd) && > + !i915_clock_constraint(data, p, 10)) > + continue; > > - igt_describe("Verify that deep color works correctly"); > - igt_subtest_with_dynamic_f("pipe-%s-deep-color", kmstest_pipe_name(p)) { > - igt_output_t *output; > - color_t blue_green_blue[] = { > - { 0.0, 0.0, 1.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 0.0, 0.0, 0.0, > - 0.0, 1.0, 0.0, > - 1.0, 0.0, 1.0 }; > - > - if (is_i915_device(data->drm_fd)) > - igt_require_f((intel_display_ver(data->devid) >= 11), > - "At least GEN 11 is required to validate Deep-color.\n"); > - > - for_each_valid_output_on_pipe(&data->display, p, output) { > - uint64_t max_bpc = get_max_bpc(output); > - bool ret; > - > - if (!max_bpc) > - continue; > - > - if (!panel_supports_deep_color(data->drm_fd, output->name)) > - continue; > - > - data->color_depth = 10; > - data->drm_format = DRM_FORMAT_XRGB2101010; > - data->output = output; > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > - igt_output_set_pipe(output, p); > - igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); > - > - if (is_i915_device(data->drm_fd) && > - !i915_clock_constraint(data, p, 10)) > - continue; > - > - igt_dynamic_f("gamma-%s", output->name) { > - ret = test_pipe_gamma(data, primary); > - > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > - igt_assert(ret); > - } > + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { > + ret = test_pipe_gamma(data, data->primary); > > - igt_dynamic_f("degamma-%s", output->name) { > - ret = test_pipe_degamma(data, primary); > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > + igt_assert(ret); > + } > > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > - igt_assert(ret); > - } > + igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { > + ret = test_pipe_degamma(data, data->primary); > > - igt_dynamic_f("ctm-%s", output->name) { > - ret = test_pipe_ctm(data, primary, > - red_green_blue, > - blue_green_blue, ctm); > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > + igt_assert(ret); > + } > > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > - igt_assert(ret); > - } > + igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { > + ret = test_pipe_ctm(data, data->primary, > + red_green_blue, > + blue_green_blue, ctm); > > - break; > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > + igt_assert(ret); > } > + > + break; > } > > - igt_fixture { > - disable_degamma(primary->pipe); > - disable_gamma(primary->pipe); > - disable_ctm(primary->pipe); > - igt_display_commit(&data->display); > + test_cleanup(data); > +} > + > +static void > +run_invalid_tests_for_pipe(data_t *data) > +{ > + enum pipe pipe; > + struct { > + const char *name; > + void (*test_t) (data_t *data, enum pipe pipe); > + const char *desc; > + } tests[] = { > + { "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes, > + "Negative check for invalid gamma lut sizes" }, > + > + { "invalid-degamma-lut-sizes", invalid_degamma_lut_sizes, > + "Negative check for invalid degamma lut sizes" }, > + > + { "invalid-ctm-matrix-sizes", invalid_ctm_matrix_sizes, > + "Negative check for color tranformation matrix sizes" }, > + }; > + int i; > > - igt_pipe_crc_free(data->pipe_crc); > - data->pipe_crc = NULL; > + for (i = 0; i < ARRAY_SIZE(tests); i++) { > + igt_describe_f("%s", tests[i].desc); > + igt_subtest_with_dynamic_f("%s", tests[i].name) { > + for_each_pipe(&data->display, pipe) { > + prep_pipe(data, pipe); > + > + igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) > + tests[i].test_t(data, pipe); > + } > + } > } > } > > static void > -run_invalid_tests_for_pipe(data_t *data, enum pipe p) > +run_tests_for_pipe(data_t *data) > { > - igt_fixture > - prep_pipe(data, p); > + enum pipe pipe; > + struct { > + const char *name; > + bool (*test_t)(data_t*, igt_plane_t*); > + const char *desc; > + } gamma_degamma_tests[] = { > + { "degamma", test_pipe_degamma, > + "Verify that degamma LUT transformation works correctly" }, > + > + { "gamma", test_pipe_gamma, > + "Verify that gamma LUT transformation works correctly" }, > + > + { "legacy-gamma", test_pipe_legacy_gamma, > + "Verify that legacy gamma LUT transformation works correctly" }, > + > + { "legacy-gamma-reset", test_pipe_legacy_gamma_reset, > + "Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property" }, > + }; > + struct { > + const char *name; > + int iter; > + color_t colors[3]; > + double ctm[9]; > + const char *desc; > + } ctm_tests[] = { > + { "ctm-red-to-blue", 0, > + {{ 0.0, 0.0, 1.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 }}, > + { 0.0, 0.0, 0.0, > + 0.0, 1.0, 0.0, > + 1.0, 0.0, 1.0 }, > + "Check the color transformation from red to blue" > + }, > + { "ctm-green-to-red", 0, > + {{ 1.0, 0.0, 0.0 }, > + { 1.0, 0.0, 0.0 }, > + { 0.0, 0.0, 1.0 }}, > + { 1.0, 1.0, 0.0, > + 0.0, 0.0, 0.0, > + 0.0, 0.0, 1.0 }, > + "Check the color transformation from green to red" > + }, > + { "ctm-blue-to-red", 0, > + {{ 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 1.0, 0.0, 0.0 }}, > + { 1.0, 0.0, 1.0, > + 0.0, 1.0, 0.0, > + 0.0, 0.0, 0.0 }, > + "Check the color transformation from blue to red" > + }, > + { "ctm-max", 0, > + {{ 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 }}, > + { 100.0, 0.0, 0.0, > + 0.0, 100.0, 0.0, > + 0.0, 0.0, 100.0 }, > + "Check the color transformation for maximum transparency" > + }, > + { "ctm-negative", 0, > + {{ 0.0, 0.0, 0.0 }, > + { 0.0, 0.0, 0.0 }, > + { 0.0, 0.0, 0.0 }}, > + { -1.0, 0.0, 0.0, > + 0.0, -1.0, 0.0, > + 0.0, 0.0, -1.0 }, > + "Check the color transformation for negative transparency" > + }, > + { "ctm-0-25", 5, > + {{ 0.0, }, { 0.0, }, { 0.0, }}, > + { 0.25, 0.0, 0.0, > + 0.0, 0.25, 0.0, > + 0.0, 0.0, 0.25 }, > + "Check the color transformation for 0.25 transparency" > + }, > + { "ctm-0-50", 5, > + {{ 0.0, }, { 0.0, }, { 0.0, }}, > + { 0.5, 0.0, 0.0, > + 0.0, 0.5, 0.0, > + 0.0, 0.0, 0.5 }, > + "Check the color transformation for 0.5 transparency" > + }, > + { "ctm-0-75", 7, > + {{ 0.0, }, { 0.0, }, { 0.0, }}, > + { 0.75, 0.0, 0.0, > + 0.0, 0.75, 0.0, > + 0.0, 0.0, 0.75 }, > + "Check the color transformation for 0.75 transparency" > + }, > + }; > + int i; > + > + for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) { > + igt_describe_f("%s", gamma_degamma_tests[i].desc); > + igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) { > + for_each_pipe(&data->display, pipe) { > + run_gamma_degamma_tests_for_pipe(data, pipe, > + gamma_degamma_tests[i].test_t); > + } > + } > + } > > - igt_describe("Negative check for invalid gamma lut sizes"); > - igt_subtest_f("pipe-%s-invalid-gamma-lut-sizes", kmstest_pipe_name(p)) > - invalid_gamma_lut_sizes(data, p); > + for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) { > + igt_describe_f("%s", ctm_tests[i].desc); > + igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) { > + for_each_pipe(&data->display, pipe) { > + run_ctm_tests_for_pipe(data, pipe, > + ctm_tests[i].colors, > + ctm_tests[i].ctm, > + ctm_tests[i].iter); > + } > + } > + } > > - igt_describe("Negative check for invalid degamma lut sizes"); > - igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p)) > - invalid_degamma_lut_sizes(data, p); > + igt_fixture > + igt_require(data->display.is_atomic); > > - igt_describe("Negative check for color tranformation matrix sizes"); > - igt_subtest_f("pipe-%s-invalid-ctm-matrix-sizes", kmstest_pipe_name(p)) > - invalid_ctm_matrix_sizes(data, p); > + igt_describe("Verify that deep color works correctly"); > + igt_subtest_with_dynamic("deep-color") { > + for_each_pipe(&data->display, pipe) { > + run_deep_color_tests_for_pipe(data, pipe); > + } > + } > } > > igt_main > { > data_t data = {}; > - enum pipe pipe; > > igt_fixture { > data.drm_fd = drm_open_driver_master(DRIVER_ANY); > @@ -999,13 +1039,11 @@ igt_main > igt_display_require(&data.display, data.drm_fd); > } > > - for_each_pipe_static(pipe) { > - igt_subtest_group > - run_tests_for_pipe(&data, pipe); > + igt_subtest_group > + run_tests_for_pipe(&data); > > - igt_subtest_group > - run_invalid_tests_for_pipe(&data, pipe); > - } > + igt_subtest_group > + run_invalid_tests_for_pipe(&data); > > igt_fixture { > igt_display_fini(&data.display); > diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h > index cc07f5ee..2ea15bcd 100644 > --- a/tests/kms_color_helper.h > +++ b/tests/kms_color_helper.h > @@ -50,6 +50,7 @@ typedef struct { > igt_display_t display; > igt_pipe_crc_t *pipe_crc; > igt_output_t *output; > + igt_plane_t *primary; > > uint32_t drm_format; > uint32_t color_depth; > -- > 2.35.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic 2022-07-04 16:39 ` Kamil Konieczny @ 2022-07-04 17:14 ` Modem, Bhanuprakash 2022-07-05 16:30 ` Kamil Konieczny 0 siblings, 1 reply; 17+ messages in thread From: Modem, Bhanuprakash @ 2022-07-04 17:14 UTC (permalink / raw) To: Kamil Konieczny, igt-dev On Mon-04-07-2022 10:09 pm, Kamil Konieczny wrote: > Hi Bhanuprakash, > > On 2022-06-30 at 14:25:22 +0530, Bhanuprakash Modem wrote: >> Convert the existing subtests to dynamic subtests at pipe level. >> >> V2: >> * Fix nested igt_fixture in igt_subtest >> V3: >> * Fix to not dereferencing a NULL pointer >> V4: >> * Add output name to subtest >> V5: >> * Rebase >> V6: >> * Fix typos in test description >> V7: >> * Added comments back to ctm tets. >> >> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> >> --- >> tests/kms_color.c | 556 +++++++++++++++++++++------------------ >> tests/kms_color_helper.h | 1 + >> 2 files changed, 298 insertions(+), 259 deletions(-) >> >> diff --git a/tests/kms_color.c b/tests/kms_color.c >> index ba06947b..85f3b32d 100644 >> --- a/tests/kms_color.c >> +++ b/tests/kms_color.c >> @@ -203,7 +203,7 @@ static bool test_pipe_gamma(data_t *data, >> * gamma LUT and verify we have the same CRC as drawing solid color rectangles >> * with linear legacy gamma LUT. >> */ >> -static void test_pipe_legacy_gamma(data_t *data, >> +static bool test_pipe_legacy_gamma(data_t *data, >> igt_plane_t *primary) >> { >> igt_output_t *output; >> @@ -220,6 +220,7 @@ static void test_pipe_legacy_gamma(data_t *data, >> struct igt_fb fb_modeset, fb; >> igt_crc_t crc_fullgamma, crc_fullcolors; >> int fb_id, fb_modeset_id; >> + bool ret; >> >> kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); >> legacy_lut_size = kms_crtc->gamma_size; >> @@ -285,7 +286,7 @@ static void test_pipe_legacy_gamma(data_t *data, >> /* Verify that the CRC of the software computed output is >> * equal to the CRC of the gamma LUT transformation output. >> */ >> - igt_assert_crc_equal(&crc_fullgamma, &crc_fullcolors); >> + ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); >> >> /* Reset output. */ >> for (i = 1; i < legacy_lut_size; i++) >> @@ -303,13 +304,15 @@ static void test_pipe_legacy_gamma(data_t *data, >> free(red_lut); >> free(green_lut); >> free(blue_lut); >> + >> + return ret; >> } >> >> /* >> * Verify that setting the legacy gamma LUT resets the gamma LUT set >> * through the GAMMA_LUT property. >> */ >> -static void test_pipe_legacy_gamma_reset(data_t *data, >> +static bool test_pipe_legacy_gamma_reset(data_t *data, >> igt_plane_t *primary) >> { >> const double ctm_identity[] = { >> @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> struct drm_color_lut *lut; >> drmModePropertyBlobPtr blob; >> igt_output_t *output; >> + bool ret = true; >> >> igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); >> >> @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> data->gamma_lut_size)); >> lut = (struct drm_color_lut *) blob->data; >> for (i = 0; i < data->gamma_lut_size; i++) >> - igt_assert(lut[i].red == 0 && >> + ret &=(lut[i].red == 0 && >> lut[i].green == 0 && >> lut[i].blue == 0); >> drmModeFreePropertyBlob(blob); >> + if(!ret) >> + goto end; >> >> /* Set a gamma LUT using the legacy ioctl and verify >> * the content of the GAMMA_LUT property is changed >> @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> legacy_lut_size)); >> lut = (struct drm_color_lut *) blob->data; >> for (i = 0; i < legacy_lut_size; i++) >> - igt_assert(lut[i].red == 0xffff && >> + ret &= (lut[i].red == 0xffff && >> lut[i].green == 0xffff && >> lut[i].blue == 0xffff); >> drmModeFreePropertyBlob(blob); >> @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> >> free_lut(degamma_linear); >> free_lut(gamma_zero); >> +end: > > Should this be before free ? Thanks Kamil, It seems, Yes. You have great eyes :-) I am fine if you want to submit a fix, else I'll do. - Bhanu > > Regards, > Kamil > >> + return ret; >> } >> >> /* >> @@ -677,130 +685,99 @@ prep_pipe(data_t *data, enum pipe p) >> } >> } >> >> -static void >> -run_tests_for_pipe(data_t *data, enum pipe p) >> +static void test_setup(data_t *data, enum pipe p) >> { >> igt_pipe_t *pipe; >> - igt_plane_t *primary; >> - double delta; >> - int i; >> - color_t red_green_blue[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> >> - igt_fixture { >> - prep_pipe(data, p); >> + prep_pipe(data, p); >> + igt_require_pipe_crc(data->drm_fd); >> >> - igt_require_pipe_crc(data->drm_fd); >> + pipe = &data->display.pipes[p]; >> + igt_require(pipe->n_planes >= 0); >> >> - pipe = &data->display.pipes[p]; >> - igt_require(pipe->n_planes >= 0); >> + data->primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); >> + data->pipe_crc = igt_pipe_crc_new(data->drm_fd, >> + data->primary->pipe->pipe, >> + INTEL_PIPE_CRC_SOURCE_AUTO); >> >> - primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); >> + igt_display_require_output_on_pipe(&data->display, p); >> + data->output = igt_get_single_output_for_pipe(&data->display, p); >> + igt_require(data->output); >> +} >> >> - data->pipe_crc = igt_pipe_crc_new(data->drm_fd, >> - primary->pipe->pipe, >> - INTEL_PIPE_CRC_SOURCE_AUTO); >> +static void test_cleanup(data_t *data) >> +{ >> + igt_plane_t *primary = data->primary; >> >> - igt_display_require_output_on_pipe(&data->display, p); >> - data->output = igt_get_single_output_for_pipe(&data->display, p); >> - igt_require(data->output); >> - } >> + disable_degamma(primary->pipe); >> + disable_gamma(primary->pipe); >> + disable_ctm(primary->pipe); >> + igt_display_commit(&data->display); >> + >> + igt_pipe_crc_free(data->pipe_crc); >> + data->pipe_crc = NULL; >> +} >> + >> +static void >> +run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, >> + bool (*test_t)(data_t*, igt_plane_t*)) >> +{ >> + test_setup(data, p); >> >> /* We assume an 8bits depth per color for degamma/gamma LUTs >> * for CRC checks with framebuffer references. */ >> data->color_depth = 8; >> - delta = 1.0 / (1 << data->color_depth); >> data->drm_format = DRM_FORMAT_XRGB8888; >> >> - igt_describe("Check the color transformation from red to blue"); >> - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) { >> - color_t blue_green_blue[] = { >> - { 0.0, 0.0, 1.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 0.0, 0.0, 0.0, >> - 0.0, 1.0, 0.0, >> - 1.0, 0.0, 1.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - blue_green_blue, ctm)); >> - } >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) >> + igt_assert(test_t(data, data->primary)); >> >> - igt_describe("Check the color transformation from green to red"); >> - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) { >> - color_t red_red_blue[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 1.0, 1.0, 0.0, >> - 0.0, 0.0, 0.0, >> - 0.0, 0.0, 1.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - red_red_blue, ctm)); >> - } >> + test_cleanup(data); >> +} >> >> - igt_describe("Check the color transformation from blue to red"); >> - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) { >> - color_t red_green_red[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 1.0, 0.0, 0.0 } >> - }; >> - double ctm[] = { 1.0, 0.0, 1.0, >> - 0.0, 1.0, 0.0, >> - 0.0, 0.0, 0.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - red_green_red, ctm)); >> - } >> +static void >> +run_ctm_tests_for_pipe(data_t *data, enum pipe p, >> + color_t *expected_colors, >> + double *ctm, >> + int iter) >> +{ >> + double delta; >> + color_t red_green_blue[] = { >> + { 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 } >> + }; >> >> - /* We tests a few values around the expected result because >> - * the it depends on the hardware we're dealing with, we can >> - * either get clamped or rounded values and we also need to >> - * account for odd number of items in the LUTs. */ >> - igt_describe("Check the color transformation for 0.25 transparency"); >> - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) { >> - color_t expected_colors[] = { >> - { 0.0, }, { 0.0, }, { 0.0, } >> - }; >> - double ctm[] = { 0.25, 0.0, 0.0, >> - 0.0, 0.25, 0.0, >> - 0.0, 0.0, 0.25 }; >> - bool success = false; >> + test_setup(data, p); >> >> - for (i = 0; i < 5; i++) { >> - expected_colors[0].r = >> - expected_colors[1].g = >> - expected_colors[2].b = >> - 0.25 + delta * (i - 2); >> - if (test_pipe_ctm(data, primary, red_green_blue, >> - expected_colors, ctm)) { >> - success = true; >> - break; >> - } >> - } >> - igt_assert(success); >> - } >> + /* >> + * We assume an 8bits depth per color for degamma/gamma LUTs >> + * for CRC checks with framebuffer references. >> + */ >> + data->color_depth = 8; >> + delta = 1.0 / (1 << data->color_depth); >> + data->drm_format = DRM_FORMAT_XRGB8888; >> >> - igt_describe("Check the color transformation for 0.5 transparency"); >> - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) { >> - color_t expected_colors[] = { >> - { 0.0, }, { 0.0, }, { 0.0, } >> - }; >> - double ctm[] = { 0.5, 0.0, 0.0, >> - 0.0, 0.5, 0.0, >> - 0.0, 0.0, 0.5 }; >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { >> bool success = false; >> + int i; >> >> - for (i = 0; i < 5; i++) { >> + if (!iter) >> + success = test_pipe_ctm(data, data->primary, red_green_blue, >> + expected_colors, ctm); >> + >> + /* >> + * We tests a few values around the expected result because >> + * it depends on the hardware we're dealing with, we can either >> + * get clamped or rounded values and we also need to account >> + * for odd number of items in the LUTs. >> + */ >> + for (i = 0; i < iter; i++) { >> expected_colors[0].r = >> expected_colors[1].g = >> expected_colors[2].b = >> 0.5 + delta * (i - 2); >> - if (test_pipe_ctm(data, primary, red_green_blue, >> + if (test_pipe_ctm(data, data->primary, red_green_blue, >> expected_colors, ctm)) { >> success = true; >> break; >> @@ -809,186 +786,249 @@ run_tests_for_pipe(data_t *data, enum pipe p) >> igt_assert(success); >> } >> >> - igt_describe("Check the color transformation for 0.75 transparency"); >> - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) { >> - color_t expected_colors[] = { >> - { 0.0, }, { 0.0, }, { 0.0, } >> - }; >> - double ctm[] = { 0.75, 0.0, 0.0, >> - 0.0, 0.75, 0.0, >> - 0.0, 0.0, 0.75 }; >> - bool success = false; >> - >> - for (i = 0; i < 7; i++) { >> - expected_colors[0].r = >> - expected_colors[1].g = >> - expected_colors[2].b = >> - 0.75 + delta * (i - 3); >> - if (test_pipe_ctm(data, primary, red_green_blue, >> - expected_colors, ctm)) { >> - success = true; >> - break; >> - } >> - } >> - igt_assert(success); >> - } >> + test_cleanup(data); >> +} >> >> - igt_describe("Check the color transformation for maximum transparency"); >> - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) { >> - color_t full_rgb[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 100.0, 0.0, 0.0, >> - 0.0, 100.0, 0.0, >> - 0.0, 0.0, 100.0 }; >> - >> - /* CherryView generates values on 10bits that we >> - * produce with an 8 bits per color framebuffer. */ >> - igt_require(!IS_CHERRYVIEW(data->devid)); >> - >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - full_rgb, ctm)); >> - } >> +static void >> +run_deep_color_tests_for_pipe(data_t *data, enum pipe p) >> +{ >> + igt_output_t *output; >> + color_t blue_green_blue[] = { >> + { 0.0, 0.0, 1.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 } >> + }; >> + color_t red_green_blue[] = { >> + { 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 } >> + }; >> + double ctm[] = { 0.0, 0.0, 0.0, >> + 0.0, 1.0, 0.0, >> + 1.0, 0.0, 1.0 }; >> >> - igt_describe("Check the color transformation for negative transparency"); >> - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) { >> - color_t all_black[] = { >> - { 0.0, 0.0, 0.0 }, >> - { 0.0, 0.0, 0.0 }, >> - { 0.0, 0.0, 0.0 } >> - }; >> - double ctm[] = { -1.0, 0.0, 0.0, >> - 0.0, -1.0, 0.0, >> - 0.0, 0.0, -1.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - all_black, ctm)); >> - } >> + if (is_i915_device(data->drm_fd)) >> + igt_require_f((intel_display_ver(data->devid) >= 11), >> + "At least GEN 11 is required to validate Deep-color.\n"); >> >> -#if 0 >> - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p)) >> - test_pipe_limited_range_ctm(data, primary); >> -#endif >> + test_setup(data, p); >> >> - igt_describe("Verify that degamma LUT transformation works correctly"); >> - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p)) >> - igt_assert(test_pipe_degamma(data, primary)); >> + for_each_valid_output_on_pipe(&data->display, p, output) { >> + uint64_t max_bpc = get_max_bpc(output); >> + bool ret; >> >> - igt_describe("Verify that gamma LUT transformation works correctly"); >> - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p)) >> - igt_assert(test_pipe_gamma(data, primary)); >> + if (!max_bpc) >> + continue; >> >> - igt_describe("Verify that legacy gamma LUT transformation works correctly"); >> - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p)) >> - test_pipe_legacy_gamma(data, primary); >> + if (!panel_supports_deep_color(data->drm_fd, output->name)) >> + continue; >> >> - igt_describe("Verify that setting the legacy gamma LUT resets the gamma LUT set through " >> - "GAMMA_LUT property"); >> - igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p)) >> - test_pipe_legacy_gamma_reset(data, primary); >> + data->color_depth = 10; >> + data->drm_format = DRM_FORMAT_XRGB2101010; >> + data->output = output; >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); >> + igt_output_set_pipe(output, p); >> + igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); >> >> - igt_fixture >> - igt_require(data->display.is_atomic); >> + if (is_i915_device(data->drm_fd) && >> + !i915_clock_constraint(data, p, 10)) >> + continue; >> >> - igt_describe("Verify that deep color works correctly"); >> - igt_subtest_with_dynamic_f("pipe-%s-deep-color", kmstest_pipe_name(p)) { >> - igt_output_t *output; >> - color_t blue_green_blue[] = { >> - { 0.0, 0.0, 1.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 0.0, 0.0, 0.0, >> - 0.0, 1.0, 0.0, >> - 1.0, 0.0, 1.0 }; >> - >> - if (is_i915_device(data->drm_fd)) >> - igt_require_f((intel_display_ver(data->devid) >= 11), >> - "At least GEN 11 is required to validate Deep-color.\n"); >> - >> - for_each_valid_output_on_pipe(&data->display, p, output) { >> - uint64_t max_bpc = get_max_bpc(output); >> - bool ret; >> - >> - if (!max_bpc) >> - continue; >> - >> - if (!panel_supports_deep_color(data->drm_fd, output->name)) >> - continue; >> - >> - data->color_depth = 10; >> - data->drm_format = DRM_FORMAT_XRGB2101010; >> - data->output = output; >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); >> - igt_output_set_pipe(output, p); >> - igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); >> - >> - if (is_i915_device(data->drm_fd) && >> - !i915_clock_constraint(data, p, 10)) >> - continue; >> - >> - igt_dynamic_f("gamma-%s", output->name) { >> - ret = test_pipe_gamma(data, primary); >> - >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> - igt_assert(ret); >> - } >> + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { >> + ret = test_pipe_gamma(data, data->primary); >> >> - igt_dynamic_f("degamma-%s", output->name) { >> - ret = test_pipe_degamma(data, primary); >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> + igt_assert(ret); >> + } >> >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> - igt_assert(ret); >> - } >> + igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { >> + ret = test_pipe_degamma(data, data->primary); >> >> - igt_dynamic_f("ctm-%s", output->name) { >> - ret = test_pipe_ctm(data, primary, >> - red_green_blue, >> - blue_green_blue, ctm); >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> + igt_assert(ret); >> + } >> >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> - igt_assert(ret); >> - } >> + igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { >> + ret = test_pipe_ctm(data, data->primary, >> + red_green_blue, >> + blue_green_blue, ctm); >> >> - break; >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> + igt_assert(ret); >> } >> + >> + break; >> } >> >> - igt_fixture { >> - disable_degamma(primary->pipe); >> - disable_gamma(primary->pipe); >> - disable_ctm(primary->pipe); >> - igt_display_commit(&data->display); >> + test_cleanup(data); >> +} >> + >> +static void >> +run_invalid_tests_for_pipe(data_t *data) >> +{ >> + enum pipe pipe; >> + struct { >> + const char *name; >> + void (*test_t) (data_t *data, enum pipe pipe); >> + const char *desc; >> + } tests[] = { >> + { "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes, >> + "Negative check for invalid gamma lut sizes" }, >> + >> + { "invalid-degamma-lut-sizes", invalid_degamma_lut_sizes, >> + "Negative check for invalid degamma lut sizes" }, >> + >> + { "invalid-ctm-matrix-sizes", invalid_ctm_matrix_sizes, >> + "Negative check for color tranformation matrix sizes" }, >> + }; >> + int i; >> >> - igt_pipe_crc_free(data->pipe_crc); >> - data->pipe_crc = NULL; >> + for (i = 0; i < ARRAY_SIZE(tests); i++) { >> + igt_describe_f("%s", tests[i].desc); >> + igt_subtest_with_dynamic_f("%s", tests[i].name) { >> + for_each_pipe(&data->display, pipe) { >> + prep_pipe(data, pipe); >> + >> + igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) >> + tests[i].test_t(data, pipe); >> + } >> + } >> } >> } >> >> static void >> -run_invalid_tests_for_pipe(data_t *data, enum pipe p) >> +run_tests_for_pipe(data_t *data) >> { >> - igt_fixture >> - prep_pipe(data, p); >> + enum pipe pipe; >> + struct { >> + const char *name; >> + bool (*test_t)(data_t*, igt_plane_t*); >> + const char *desc; >> + } gamma_degamma_tests[] = { >> + { "degamma", test_pipe_degamma, >> + "Verify that degamma LUT transformation works correctly" }, >> + >> + { "gamma", test_pipe_gamma, >> + "Verify that gamma LUT transformation works correctly" }, >> + >> + { "legacy-gamma", test_pipe_legacy_gamma, >> + "Verify that legacy gamma LUT transformation works correctly" }, >> + >> + { "legacy-gamma-reset", test_pipe_legacy_gamma_reset, >> + "Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property" }, >> + }; >> + struct { >> + const char *name; >> + int iter; >> + color_t colors[3]; >> + double ctm[9]; >> + const char *desc; >> + } ctm_tests[] = { >> + { "ctm-red-to-blue", 0, >> + {{ 0.0, 0.0, 1.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 }}, >> + { 0.0, 0.0, 0.0, >> + 0.0, 1.0, 0.0, >> + 1.0, 0.0, 1.0 }, >> + "Check the color transformation from red to blue" >> + }, >> + { "ctm-green-to-red", 0, >> + {{ 1.0, 0.0, 0.0 }, >> + { 1.0, 0.0, 0.0 }, >> + { 0.0, 0.0, 1.0 }}, >> + { 1.0, 1.0, 0.0, >> + 0.0, 0.0, 0.0, >> + 0.0, 0.0, 1.0 }, >> + "Check the color transformation from green to red" >> + }, >> + { "ctm-blue-to-red", 0, >> + {{ 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 1.0, 0.0, 0.0 }}, >> + { 1.0, 0.0, 1.0, >> + 0.0, 1.0, 0.0, >> + 0.0, 0.0, 0.0 }, >> + "Check the color transformation from blue to red" >> + }, >> + { "ctm-max", 0, >> + {{ 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 }}, >> + { 100.0, 0.0, 0.0, >> + 0.0, 100.0, 0.0, >> + 0.0, 0.0, 100.0 }, >> + "Check the color transformation for maximum transparency" >> + }, >> + { "ctm-negative", 0, >> + {{ 0.0, 0.0, 0.0 }, >> + { 0.0, 0.0, 0.0 }, >> + { 0.0, 0.0, 0.0 }}, >> + { -1.0, 0.0, 0.0, >> + 0.0, -1.0, 0.0, >> + 0.0, 0.0, -1.0 }, >> + "Check the color transformation for negative transparency" >> + }, >> + { "ctm-0-25", 5, >> + {{ 0.0, }, { 0.0, }, { 0.0, }}, >> + { 0.25, 0.0, 0.0, >> + 0.0, 0.25, 0.0, >> + 0.0, 0.0, 0.25 }, >> + "Check the color transformation for 0.25 transparency" >> + }, >> + { "ctm-0-50", 5, >> + {{ 0.0, }, { 0.0, }, { 0.0, }}, >> + { 0.5, 0.0, 0.0, >> + 0.0, 0.5, 0.0, >> + 0.0, 0.0, 0.5 }, >> + "Check the color transformation for 0.5 transparency" >> + }, >> + { "ctm-0-75", 7, >> + {{ 0.0, }, { 0.0, }, { 0.0, }}, >> + { 0.75, 0.0, 0.0, >> + 0.0, 0.75, 0.0, >> + 0.0, 0.0, 0.75 }, >> + "Check the color transformation for 0.75 transparency" >> + }, >> + }; >> + int i; >> + >> + for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) { >> + igt_describe_f("%s", gamma_degamma_tests[i].desc); >> + igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) { >> + for_each_pipe(&data->display, pipe) { >> + run_gamma_degamma_tests_for_pipe(data, pipe, >> + gamma_degamma_tests[i].test_t); >> + } >> + } >> + } >> >> - igt_describe("Negative check for invalid gamma lut sizes"); >> - igt_subtest_f("pipe-%s-invalid-gamma-lut-sizes", kmstest_pipe_name(p)) >> - invalid_gamma_lut_sizes(data, p); >> + for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) { >> + igt_describe_f("%s", ctm_tests[i].desc); >> + igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) { >> + for_each_pipe(&data->display, pipe) { >> + run_ctm_tests_for_pipe(data, pipe, >> + ctm_tests[i].colors, >> + ctm_tests[i].ctm, >> + ctm_tests[i].iter); >> + } >> + } >> + } >> >> - igt_describe("Negative check for invalid degamma lut sizes"); >> - igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p)) >> - invalid_degamma_lut_sizes(data, p); >> + igt_fixture >> + igt_require(data->display.is_atomic); >> >> - igt_describe("Negative check for color tranformation matrix sizes"); >> - igt_subtest_f("pipe-%s-invalid-ctm-matrix-sizes", kmstest_pipe_name(p)) >> - invalid_ctm_matrix_sizes(data, p); >> + igt_describe("Verify that deep color works correctly"); >> + igt_subtest_with_dynamic("deep-color") { >> + for_each_pipe(&data->display, pipe) { >> + run_deep_color_tests_for_pipe(data, pipe); >> + } >> + } >> } >> >> igt_main >> { >> data_t data = {}; >> - enum pipe pipe; >> >> igt_fixture { >> data.drm_fd = drm_open_driver_master(DRIVER_ANY); >> @@ -999,13 +1039,11 @@ igt_main >> igt_display_require(&data.display, data.drm_fd); >> } >> >> - for_each_pipe_static(pipe) { >> - igt_subtest_group >> - run_tests_for_pipe(&data, pipe); >> + igt_subtest_group >> + run_tests_for_pipe(&data); >> >> - igt_subtest_group >> - run_invalid_tests_for_pipe(&data, pipe); >> - } >> + igt_subtest_group >> + run_invalid_tests_for_pipe(&data); >> >> igt_fixture { >> igt_display_fini(&data.display); >> diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h >> index cc07f5ee..2ea15bcd 100644 >> --- a/tests/kms_color_helper.h >> +++ b/tests/kms_color_helper.h >> @@ -50,6 +50,7 @@ typedef struct { >> igt_display_t display; >> igt_pipe_crc_t *pipe_crc; >> igt_output_t *output; >> + igt_plane_t *primary; >> >> uint32_t drm_format; >> uint32_t color_depth; >> -- >> 2.35.1 >> ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic 2022-07-04 17:14 ` Modem, Bhanuprakash @ 2022-07-05 16:30 ` Kamil Konieczny 0 siblings, 0 replies; 17+ messages in thread From: Kamil Konieczny @ 2022-07-05 16:30 UTC (permalink / raw) To: igt-dev On 2022-07-04 at 22:44:05 +0530, Modem, Bhanuprakash wrote: > On Mon-04-07-2022 10:09 pm, Kamil Konieczny wrote: > > Hi Bhanuprakash, > > > > On 2022-06-30 at 14:25:22 +0530, Bhanuprakash Modem wrote: > > > Convert the existing subtests to dynamic subtests at pipe level. > > > > > > V2: > > > * Fix nested igt_fixture in igt_subtest > > > V3: > > > * Fix to not dereferencing a NULL pointer > > > V4: > > > * Add output name to subtest > > > V5: > > > * Rebase > > > V6: > > > * Fix typos in test description > > > V7: > > > * Added comments back to ctm tets. > > > > > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > > > --- > > > tests/kms_color.c | 556 +++++++++++++++++++++------------------ > > > tests/kms_color_helper.h | 1 + > > > 2 files changed, 298 insertions(+), 259 deletions(-) > > > > > > diff --git a/tests/kms_color.c b/tests/kms_color.c > > > index ba06947b..85f3b32d 100644 > > > --- a/tests/kms_color.c > > > +++ b/tests/kms_color.c [cut] > > > * through the GAMMA_LUT property. > > > */ > > > -static void test_pipe_legacy_gamma_reset(data_t *data, > > > +static bool test_pipe_legacy_gamma_reset(data_t *data, > > > igt_plane_t *primary) > > > { > > > const double ctm_identity[] = { > > > @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > > > struct drm_color_lut *lut; > > > drmModePropertyBlobPtr blob; > > > igt_output_t *output; > > > + bool ret = true; > > > igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); > > > @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > > > data->gamma_lut_size)); > > > lut = (struct drm_color_lut *) blob->data; > > > for (i = 0; i < data->gamma_lut_size; i++) > > > - igt_assert(lut[i].red == 0 && > > > + ret &=(lut[i].red == 0 && > > > lut[i].green == 0 && > > > lut[i].blue == 0); > > > drmModeFreePropertyBlob(blob); > > > + if(!ret) > > > + goto end; > > > /* Set a gamma LUT using the legacy ioctl and verify > > > * the content of the GAMMA_LUT property is changed > > > @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > > > legacy_lut_size)); > > > lut = (struct drm_color_lut *) blob->data; > > > for (i = 0; i < legacy_lut_size; i++) > > > - igt_assert(lut[i].red == 0xffff && > > > + ret &= (lut[i].red == 0xffff && > > > lut[i].green == 0xffff && > > > lut[i].blue == 0xffff); > > > drmModeFreePropertyBlob(blob); > > > @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > > > free_lut(degamma_linear); > > > free_lut(gamma_zero); > > > +end: > > > > Should this be before free ? > > Thanks Kamil, > > It seems, Yes. You have great eyes :-) > I am fine if you want to submit a fix, else I'll do. > > - Bhanu Feel free to send it, Regards, Kamil > > > > > Regards, > > Kamil > > > > > + return ret; > > > } > > > /* > > > @@ -677,130 +685,99 @@ prep_pipe(data_t *data, enum pipe p) [cut] ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [i-g-t V7 2/2] tests/kms_color: Test Cleanup 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic Bhanuprakash Modem @ 2022-06-30 8:55 ` Bhanuprakash Modem 2022-07-04 6:48 ` Sharma, Swati2 2022-06-30 10:04 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev9) Patchwork ` (4 subsequent siblings) 6 siblings, 1 reply; 17+ messages in thread From: Bhanuprakash Modem @ 2022-06-30 8:55 UTC (permalink / raw) To: igt-dev, swati2.sharma, kamil.konieczny Sanitize the system state before starting the subtest. V2: * Fix multiline comments. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/kms_color.c | 96 ++++++++++++++++++++++++---------------- tests/kms_color_helper.h | 1 + 2 files changed, 58 insertions(+), 39 deletions(-) diff --git a/tests/kms_color.c b/tests/kms_color.c index 85f3b32d..0b03fb9a 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -37,7 +37,7 @@ static bool test_pipe_degamma(data_t *data, { 0.0, 1.0, 0.0 }, { 0.0, 0.0, 1.0 } }; - drmModeModeInfo *mode; + drmModeModeInfo *mode = data->mode; struct igt_fb fb_modeset, fb; igt_crc_t crc_fullgamma, crc_fullcolors; int fb_id, fb_modeset_id; @@ -50,7 +50,7 @@ static bool test_pipe_degamma(data_t *data, degamma_full = generate_table_max(data->degamma_lut_size); igt_output_set_pipe(output, primary->pipe->pipe); - mode = igt_output_get_mode(output); + igt_output_override_mode(output, mode); /* Create a framebuffer at the size of the output. */ fb_id = igt_create_fb(data->drm_fd, @@ -83,7 +83,8 @@ static bool test_pipe_degamma(data_t *data, display->pipes[primary->pipe->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullcolors); - /* Draw a gradient with degamma LUT to remap all + /* + * Draw a gradient with degamma LUT to remap all * values to max red/green/blue. */ paint_gradient_rectangles(data, mode, red_green_blue, &fb); @@ -94,7 +95,8 @@ static bool test_pipe_degamma(data_t *data, display->pipes[primary->pipe->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullgamma); - /* Verify that the CRC of the software computed output is + /* + * Verify that the CRC of the software computed output is * equal to the CRC of the degamma LUT transformation output. */ ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); @@ -127,7 +129,7 @@ static bool test_pipe_gamma(data_t *data, { 0.0, 1.0, 0.0 }, { 0.0, 0.0, 1.0 } }; - drmModeModeInfo *mode; + drmModeModeInfo *mode = data->mode; struct igt_fb fb_modeset, fb; igt_crc_t crc_fullgamma, crc_fullcolors; int fb_id, fb_modeset_id; @@ -138,7 +140,7 @@ static bool test_pipe_gamma(data_t *data, gamma_full = generate_table_max(data->gamma_lut_size); igt_output_set_pipe(output, primary->pipe->pipe); - mode = igt_output_get_mode(output); + igt_output_override_mode(output, mode); /* Create a framebuffer at the size of the output. */ fb_id = igt_create_fb(data->drm_fd, @@ -171,7 +173,8 @@ static bool test_pipe_gamma(data_t *data, display->pipes[primary->pipe->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullcolors); - /* Draw a gradient with gamma LUT to remap all values + /* + * Draw a gradient with gamma LUT to remap all values * to max red/green/blue. */ paint_gradient_rectangles(data, mode, red_green_blue, &fb); @@ -181,7 +184,8 @@ static bool test_pipe_gamma(data_t *data, display->pipes[primary->pipe->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullgamma); - /* Verify that the CRC of the software computed output is + /* + * Verify that the CRC of the software computed output is * equal to the CRC of the gamma LUT transformation output. */ ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); @@ -206,7 +210,7 @@ static bool test_pipe_gamma(data_t *data, static bool test_pipe_legacy_gamma(data_t *data, igt_plane_t *primary) { - igt_output_t *output; + igt_output_t *output = data->output; igt_display_t *display = &data->display; color_t red_green_blue[] = { { 1.0, 0.0, 0.0 }, @@ -216,7 +220,7 @@ static bool test_pipe_legacy_gamma(data_t *data, drmModeCrtc *kms_crtc; uint32_t i, legacy_lut_size; uint16_t *red_lut, *green_lut, *blue_lut; - drmModeModeInfo *mode; + drmModeModeInfo *mode = data->mode; struct igt_fb fb_modeset, fb; igt_crc_t crc_fullgamma, crc_fullcolors; int fb_id, fb_modeset_id; @@ -230,11 +234,8 @@ static bool test_pipe_legacy_gamma(data_t *data, green_lut = malloc(sizeof(uint16_t) * legacy_lut_size); blue_lut = malloc(sizeof(uint16_t) * legacy_lut_size); - output = igt_get_single_output_for_pipe(&data->display, primary->pipe->pipe); - igt_require(output); - igt_output_set_pipe(output, primary->pipe->pipe); - mode = igt_output_get_mode(output); + igt_output_override_mode(output, mode); /* Create a framebuffer at the size of the output. */ fb_id = igt_create_fb(data->drm_fd, @@ -267,7 +268,8 @@ static bool test_pipe_legacy_gamma(data_t *data, display->pipes[primary->pipe->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullcolors); - /* Draw a gradient with gamma LUT to remap all values + /* + * Draw a gradient with gamma LUT to remap all values * to max red/green/blue. */ paint_gradient_rectangles(data, mode, red_green_blue, &fb); @@ -283,7 +285,8 @@ static bool test_pipe_legacy_gamma(data_t *data, display->pipes[primary->pipe->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullgamma); - /* Verify that the CRC of the software computed output is + /* + * Verify that the CRC of the software computed output is * equal to the CRC of the gamma LUT transformation output. */ ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); @@ -298,6 +301,7 @@ static bool test_pipe_legacy_gamma(data_t *data, igt_plane_set_fb(primary, NULL); igt_output_set_pipe(output, PIPE_NONE); + igt_display_commit(&data->display); igt_remove_fb(data->drm_fd, &fb); igt_remove_fb(data->drm_fd, &fb_modeset); @@ -326,7 +330,7 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, uint16_t *red_lut, *green_lut, *blue_lut; struct drm_color_lut *lut; drmModePropertyBlobPtr blob; - igt_output_t *output; + igt_output_t *output = data->output; bool ret = true; igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); @@ -335,9 +339,6 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, degamma_linear = generate_table(data->degamma_lut_size, 1.0); gamma_zero = generate_table_zero(data->gamma_lut_size); - output = igt_get_single_output_for_pipe(&data->display, primary->pipe->pipe); - igt_require(output); - igt_output_set_pipe(output, primary->pipe->pipe); /* Ensure we have a clean state to start with. */ @@ -346,9 +347,11 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, disable_gamma(primary->pipe); igt_display_commit(&data->display); - /* Set a degama & gamma LUT and a CTM using the + /* + * Set a degama & gamma LUT and a CTM using the * properties and verify the content of the - * properties. */ + * properties. + */ if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_DEGAMMA_LUT)) set_degamma(data, primary->pipe, degamma_linear); if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_CTM)) @@ -384,9 +387,11 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, if(!ret) goto end; - /* Set a gamma LUT using the legacy ioctl and verify + /* + * Set a gamma LUT using the legacy ioctl and verify * the content of the GAMMA_LUT property is changed - * and that CTM and DEGAMMA_LUT are empty. */ + * and that CTM and DEGAMMA_LUT are empty. + */ kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); legacy_lut_size = kms_crtc->gamma_size; drmModeFreeCrtc(kms_crtc); @@ -424,6 +429,7 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, igt_plane_set_fb(primary, NULL); igt_output_set_pipe(output, PIPE_NONE); + igt_display_commit(&data->display); free_lut(degamma_linear); free_lut(gamma_zero); @@ -450,7 +456,7 @@ static bool test_pipe_ctm(data_t *data, igt_output_t *output = data->output; bool ret = true; igt_display_t *display = &data->display; - drmModeModeInfo *mode; + drmModeModeInfo *mode = data->mode; struct igt_fb fb_modeset, fb; igt_crc_t crc_software, crc_hardware; int fb_id, fb_modeset_id; @@ -461,7 +467,7 @@ static bool test_pipe_ctm(data_t *data, gamma_linear = generate_table(data->gamma_lut_size, 1.0); igt_output_set_pipe(output, primary->pipe->pipe); - mode = igt_output_get_mode(output); + igt_output_override_mode(output, mode); /* Create a framebuffer at the size of the output. */ fb_id = igt_create_fb(data->drm_fd, @@ -515,13 +521,15 @@ static bool test_pipe_ctm(data_t *data, display->pipes[primary->pipe->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_hardware); - /* Verify that the CRC of the software computed output is + /* + * Verify that the CRC of the software computed output is * equal to the CRC of the CTM matrix transformation output. */ ret &= !igt_skip_crc_compare || igt_check_crc_equal(&crc_software, &crc_hardware); igt_plane_set_fb(primary, NULL); igt_output_set_pipe(output, PIPE_NONE); + igt_display_commit(&data->display); igt_remove_fb(data->drm_fd, &fb); igt_remove_fb(data->drm_fd, &fb_modeset); @@ -703,17 +711,12 @@ static void test_setup(data_t *data, enum pipe p) igt_display_require_output_on_pipe(&data->display, p); data->output = igt_get_single_output_for_pipe(&data->display, p); igt_require(data->output); + + igt_display_reset(&data->display); } static void test_cleanup(data_t *data) { - igt_plane_t *primary = data->primary; - - disable_degamma(primary->pipe); - disable_gamma(primary->pipe); - disable_ctm(primary->pipe); - igt_display_commit(&data->display); - igt_pipe_crc_free(data->pipe_crc); data->pipe_crc = NULL; } @@ -724,10 +727,13 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, { test_setup(data, p); - /* We assume an 8bits depth per color for degamma/gamma LUTs - * for CRC checks with framebuffer references. */ + /* + * We assume an 8bits depth per color for degamma/gamma LUTs + * for CRC checks with framebuffer references. + */ data->color_depth = 8; data->drm_format = DRM_FORMAT_XRGB8888; + data->mode = igt_output_get_mode(data->output); igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) igt_assert(test_t(data, data->primary)); @@ -757,6 +763,7 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p, data->color_depth = 8; delta = 1.0 / (1 << data->color_depth); data->drm_format = DRM_FORMAT_XRGB8888; + data->mode = igt_output_get_mode(data->output); igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { bool success = false; @@ -823,9 +830,6 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) if (!panel_supports_deep_color(data->drm_fd, output->name)) continue; - data->color_depth = 10; - data->drm_format = DRM_FORMAT_XRGB2101010; - data->output = output; igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); igt_output_set_pipe(output, p); igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); @@ -834,7 +838,15 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) !i915_clock_constraint(data, p, 10)) continue; + data->color_depth = 10; + data->drm_format = DRM_FORMAT_XRGB2101010; + data->output = output; + data->mode = igt_output_get_mode(data->output); + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { + igt_display_reset(&data->display); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); + ret = test_pipe_gamma(data, data->primary); igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); @@ -842,6 +854,9 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) } igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { + igt_display_reset(&data->display); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); + ret = test_pipe_degamma(data, data->primary); igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); @@ -849,6 +864,9 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) } igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { + igt_display_reset(&data->display); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); + ret = test_pipe_ctm(data, data->primary, red_green_blue, blue_green_blue, ctm); diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h index 2ea15bcd..f0ae30e3 100644 --- a/tests/kms_color_helper.h +++ b/tests/kms_color_helper.h @@ -51,6 +51,7 @@ typedef struct { igt_pipe_crc_t *pipe_crc; igt_output_t *output; igt_plane_t *primary; + drmModeModeInfo *mode; uint32_t drm_format; uint32_t color_depth; -- 2.35.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [i-g-t V7 2/2] tests/kms_color: Test Cleanup 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 2/2] tests/kms_color: Test Cleanup Bhanuprakash Modem @ 2022-07-04 6:48 ` Sharma, Swati2 0 siblings, 0 replies; 17+ messages in thread From: Sharma, Swati2 @ 2022-07-04 6:48 UTC (permalink / raw) To: Bhanuprakash Modem, igt-dev, kamil.konieczny LGTM Reviewed-by: Swati Sharma <swati2.sharma@intel.com> On 30-Jun-22 2:25 PM, Bhanuprakash Modem wrote: > Sanitize the system state before starting the subtest. > > V2: > * Fix multiline comments. > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > --- > tests/kms_color.c | 96 ++++++++++++++++++++++++---------------- > tests/kms_color_helper.h | 1 + > 2 files changed, 58 insertions(+), 39 deletions(-) > > diff --git a/tests/kms_color.c b/tests/kms_color.c > index 85f3b32d..0b03fb9a 100644 > --- a/tests/kms_color.c > +++ b/tests/kms_color.c > @@ -37,7 +37,7 @@ static bool test_pipe_degamma(data_t *data, > { 0.0, 1.0, 0.0 }, > { 0.0, 0.0, 1.0 } > }; > - drmModeModeInfo *mode; > + drmModeModeInfo *mode = data->mode; > struct igt_fb fb_modeset, fb; > igt_crc_t crc_fullgamma, crc_fullcolors; > int fb_id, fb_modeset_id; > @@ -50,7 +50,7 @@ static bool test_pipe_degamma(data_t *data, > degamma_full = generate_table_max(data->degamma_lut_size); > > igt_output_set_pipe(output, primary->pipe->pipe); > - mode = igt_output_get_mode(output); > + igt_output_override_mode(output, mode); > > /* Create a framebuffer at the size of the output. */ > fb_id = igt_create_fb(data->drm_fd, > @@ -83,7 +83,8 @@ static bool test_pipe_degamma(data_t *data, > display->pipes[primary->pipe->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullcolors); > > - /* Draw a gradient with degamma LUT to remap all > + /* > + * Draw a gradient with degamma LUT to remap all > * values to max red/green/blue. > */ > paint_gradient_rectangles(data, mode, red_green_blue, &fb); > @@ -94,7 +95,8 @@ static bool test_pipe_degamma(data_t *data, > display->pipes[primary->pipe->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullgamma); > > - /* Verify that the CRC of the software computed output is > + /* > + * Verify that the CRC of the software computed output is > * equal to the CRC of the degamma LUT transformation output. > */ > ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); > @@ -127,7 +129,7 @@ static bool test_pipe_gamma(data_t *data, > { 0.0, 1.0, 0.0 }, > { 0.0, 0.0, 1.0 } > }; > - drmModeModeInfo *mode; > + drmModeModeInfo *mode = data->mode; > struct igt_fb fb_modeset, fb; > igt_crc_t crc_fullgamma, crc_fullcolors; > int fb_id, fb_modeset_id; > @@ -138,7 +140,7 @@ static bool test_pipe_gamma(data_t *data, > gamma_full = generate_table_max(data->gamma_lut_size); > > igt_output_set_pipe(output, primary->pipe->pipe); > - mode = igt_output_get_mode(output); > + igt_output_override_mode(output, mode); > > /* Create a framebuffer at the size of the output. */ > fb_id = igt_create_fb(data->drm_fd, > @@ -171,7 +173,8 @@ static bool test_pipe_gamma(data_t *data, > display->pipes[primary->pipe->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullcolors); > > - /* Draw a gradient with gamma LUT to remap all values > + /* > + * Draw a gradient with gamma LUT to remap all values > * to max red/green/blue. > */ > paint_gradient_rectangles(data, mode, red_green_blue, &fb); > @@ -181,7 +184,8 @@ static bool test_pipe_gamma(data_t *data, > display->pipes[primary->pipe->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullgamma); > > - /* Verify that the CRC of the software computed output is > + /* > + * Verify that the CRC of the software computed output is > * equal to the CRC of the gamma LUT transformation output. > */ > ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); > @@ -206,7 +210,7 @@ static bool test_pipe_gamma(data_t *data, > static bool test_pipe_legacy_gamma(data_t *data, > igt_plane_t *primary) > { > - igt_output_t *output; > + igt_output_t *output = data->output; > igt_display_t *display = &data->display; > color_t red_green_blue[] = { > { 1.0, 0.0, 0.0 }, > @@ -216,7 +220,7 @@ static bool test_pipe_legacy_gamma(data_t *data, > drmModeCrtc *kms_crtc; > uint32_t i, legacy_lut_size; > uint16_t *red_lut, *green_lut, *blue_lut; > - drmModeModeInfo *mode; > + drmModeModeInfo *mode = data->mode; > struct igt_fb fb_modeset, fb; > igt_crc_t crc_fullgamma, crc_fullcolors; > int fb_id, fb_modeset_id; > @@ -230,11 +234,8 @@ static bool test_pipe_legacy_gamma(data_t *data, > green_lut = malloc(sizeof(uint16_t) * legacy_lut_size); > blue_lut = malloc(sizeof(uint16_t) * legacy_lut_size); > > - output = igt_get_single_output_for_pipe(&data->display, primary->pipe->pipe); > - igt_require(output); > - > igt_output_set_pipe(output, primary->pipe->pipe); > - mode = igt_output_get_mode(output); > + igt_output_override_mode(output, mode); > > /* Create a framebuffer at the size of the output. */ > fb_id = igt_create_fb(data->drm_fd, > @@ -267,7 +268,8 @@ static bool test_pipe_legacy_gamma(data_t *data, > display->pipes[primary->pipe->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullcolors); > > - /* Draw a gradient with gamma LUT to remap all values > + /* > + * Draw a gradient with gamma LUT to remap all values > * to max red/green/blue. > */ > paint_gradient_rectangles(data, mode, red_green_blue, &fb); > @@ -283,7 +285,8 @@ static bool test_pipe_legacy_gamma(data_t *data, > display->pipes[primary->pipe->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &crc_fullgamma); > > - /* Verify that the CRC of the software computed output is > + /* > + * Verify that the CRC of the software computed output is > * equal to the CRC of the gamma LUT transformation output. > */ > ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); > @@ -298,6 +301,7 @@ static bool test_pipe_legacy_gamma(data_t *data, > > igt_plane_set_fb(primary, NULL); > igt_output_set_pipe(output, PIPE_NONE); > + igt_display_commit(&data->display); > igt_remove_fb(data->drm_fd, &fb); > igt_remove_fb(data->drm_fd, &fb_modeset); > > @@ -326,7 +330,7 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, > uint16_t *red_lut, *green_lut, *blue_lut; > struct drm_color_lut *lut; > drmModePropertyBlobPtr blob; > - igt_output_t *output; > + igt_output_t *output = data->output; > bool ret = true; > > igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); > @@ -335,9 +339,6 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, > degamma_linear = generate_table(data->degamma_lut_size, 1.0); > gamma_zero = generate_table_zero(data->gamma_lut_size); > > - output = igt_get_single_output_for_pipe(&data->display, primary->pipe->pipe); > - igt_require(output); > - > igt_output_set_pipe(output, primary->pipe->pipe); > > /* Ensure we have a clean state to start with. */ > @@ -346,9 +347,11 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, > disable_gamma(primary->pipe); > igt_display_commit(&data->display); > > - /* Set a degama & gamma LUT and a CTM using the > + /* > + * Set a degama & gamma LUT and a CTM using the > * properties and verify the content of the > - * properties. */ > + * properties. > + */ > if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_DEGAMMA_LUT)) > set_degamma(data, primary->pipe, degamma_linear); > if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_CTM)) > @@ -384,9 +387,11 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, > if(!ret) > goto end; > > - /* Set a gamma LUT using the legacy ioctl and verify > + /* > + * Set a gamma LUT using the legacy ioctl and verify > * the content of the GAMMA_LUT property is changed > - * and that CTM and DEGAMMA_LUT are empty. */ > + * and that CTM and DEGAMMA_LUT are empty. > + */ > kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); > legacy_lut_size = kms_crtc->gamma_size; > drmModeFreeCrtc(kms_crtc); > @@ -424,6 +429,7 @@ static bool test_pipe_legacy_gamma_reset(data_t *data, > > igt_plane_set_fb(primary, NULL); > igt_output_set_pipe(output, PIPE_NONE); > + igt_display_commit(&data->display); > > free_lut(degamma_linear); > free_lut(gamma_zero); > @@ -450,7 +456,7 @@ static bool test_pipe_ctm(data_t *data, > igt_output_t *output = data->output; > bool ret = true; > igt_display_t *display = &data->display; > - drmModeModeInfo *mode; > + drmModeModeInfo *mode = data->mode; > struct igt_fb fb_modeset, fb; > igt_crc_t crc_software, crc_hardware; > int fb_id, fb_modeset_id; > @@ -461,7 +467,7 @@ static bool test_pipe_ctm(data_t *data, > gamma_linear = generate_table(data->gamma_lut_size, 1.0); > > igt_output_set_pipe(output, primary->pipe->pipe); > - mode = igt_output_get_mode(output); > + igt_output_override_mode(output, mode); > > /* Create a framebuffer at the size of the output. */ > fb_id = igt_create_fb(data->drm_fd, > @@ -515,13 +521,15 @@ static bool test_pipe_ctm(data_t *data, > display->pipes[primary->pipe->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &crc_hardware); > > - /* Verify that the CRC of the software computed output is > + /* > + * Verify that the CRC of the software computed output is > * equal to the CRC of the CTM matrix transformation output. > */ > ret &= !igt_skip_crc_compare || igt_check_crc_equal(&crc_software, &crc_hardware); > > igt_plane_set_fb(primary, NULL); > igt_output_set_pipe(output, PIPE_NONE); > + igt_display_commit(&data->display); > igt_remove_fb(data->drm_fd, &fb); > igt_remove_fb(data->drm_fd, &fb_modeset); > > @@ -703,17 +711,12 @@ static void test_setup(data_t *data, enum pipe p) > igt_display_require_output_on_pipe(&data->display, p); > data->output = igt_get_single_output_for_pipe(&data->display, p); > igt_require(data->output); > + > + igt_display_reset(&data->display); > } > > static void test_cleanup(data_t *data) > { > - igt_plane_t *primary = data->primary; > - > - disable_degamma(primary->pipe); > - disable_gamma(primary->pipe); > - disable_ctm(primary->pipe); > - igt_display_commit(&data->display); > - > igt_pipe_crc_free(data->pipe_crc); > data->pipe_crc = NULL; > } > @@ -724,10 +727,13 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, > { > test_setup(data, p); > > - /* We assume an 8bits depth per color for degamma/gamma LUTs > - * for CRC checks with framebuffer references. */ > + /* > + * We assume an 8bits depth per color for degamma/gamma LUTs > + * for CRC checks with framebuffer references. > + */ > data->color_depth = 8; > data->drm_format = DRM_FORMAT_XRGB8888; > + data->mode = igt_output_get_mode(data->output); > > igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) > igt_assert(test_t(data, data->primary)); > @@ -757,6 +763,7 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p, > data->color_depth = 8; > delta = 1.0 / (1 << data->color_depth); > data->drm_format = DRM_FORMAT_XRGB8888; > + data->mode = igt_output_get_mode(data->output); > > igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { > bool success = false; > @@ -823,9 +830,6 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > if (!panel_supports_deep_color(data->drm_fd, output->name)) > continue; > > - data->color_depth = 10; > - data->drm_format = DRM_FORMAT_XRGB2101010; > - data->output = output; > igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > igt_output_set_pipe(output, p); > igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); > @@ -834,7 +838,15 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > !i915_clock_constraint(data, p, 10)) > continue; > > + data->color_depth = 10; > + data->drm_format = DRM_FORMAT_XRGB2101010; > + data->output = output; > + data->mode = igt_output_get_mode(data->output); > + > igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { > + igt_display_reset(&data->display); > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > + > ret = test_pipe_gamma(data, data->primary); > > igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > @@ -842,6 +854,9 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > } > > igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { > + igt_display_reset(&data->display); > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > + > ret = test_pipe_degamma(data, data->primary); > > igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > @@ -849,6 +864,9 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > } > > igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { > + igt_display_reset(&data->display); > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > + > ret = test_pipe_ctm(data, data->primary, > red_green_blue, > blue_green_blue, ctm); > diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h > index 2ea15bcd..f0ae30e3 100644 > --- a/tests/kms_color_helper.h > +++ b/tests/kms_color_helper.h > @@ -51,6 +51,7 @@ typedef struct { > igt_pipe_crc_t *pipe_crc; > igt_output_t *output; > igt_plane_t *primary; > + drmModeModeInfo *mode; > > uint32_t drm_format; > uint32_t color_depth; -- ~Swati Sharma ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev9) 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic Bhanuprakash Modem 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 2/2] tests/kms_color: Test Cleanup Bhanuprakash Modem @ 2022-06-30 10:04 ` Patchwork 2022-07-01 1:44 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) Patchwork ` (3 subsequent siblings) 6 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2022-06-30 10:04 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 11048 bytes --] == Series Details == Series: tests/kms_color: IGT test cleanup (rev9) URL : https://patchwork.freedesktop.org/series/104972/ State : failure == Summary == CI Bug Log - changes from CI_DRM_11829 -> IGTPW_7443 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_7443 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_7443, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/index.html Participating hosts (43 -> 42) ------------------------------ Additional (1): fi-icl-u2 Missing (2): bat-dg2-8 bat-adlp-4 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_7443: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@migrate: - fi-bsw-n3050: [PASS][1] -> [DMESG-WARN][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-bsw-n3050/igt@i915_selftest@live@migrate.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-bsw-n3050/igt@i915_selftest@live@migrate.html Known issues ------------ Here are the changes found in IGTPW_7443 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@debugfs_test@read_all_entries: - fi-kbl-guc: [PASS][3] -> [FAIL][4] ([i915#6253]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-kbl-guc/igt@debugfs_test@read_all_entries.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-kbl-guc/igt@debugfs_test@read_all_entries.html * igt@gem_huc_copy@huc-copy: - fi-icl-u2: NOTRUN -> [SKIP][5] ([i915#2190]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@random-engines: - fi-icl-u2: NOTRUN -> [SKIP][6] ([i915#4613]) +3 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@gem_lmem_swapping@random-engines.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770: [PASS][7] -> [INCOMPLETE][8] ([i915#4785]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@requests: - fi-pnv-d510: [PASS][9] -> [DMESG-FAIL][10] ([i915#4528]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-pnv-d510/igt@i915_selftest@live@requests.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-pnv-d510/igt@i915_selftest@live@requests.html * igt@i915_suspend@basic-s3-without-i915: - fi-icl-u2: NOTRUN -> [SKIP][11] ([i915#5903]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_busy@basic@flip: - fi-tgl-u2: [PASS][12] -> [DMESG-WARN][13] ([i915#402]) +2 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-tgl-u2/igt@kms_busy@basic@flip.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-tgl-u2/igt@kms_busy@basic@flip.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-cfl-8109u: NOTRUN -> [SKIP][14] ([fdo#109271] / [fdo#111827]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-cfl-8109u/igt@kms_chamelium@common-hpd-after-suspend.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-icl-u2: NOTRUN -> [SKIP][15] ([fdo#111827]) +8 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor: - fi-icl-u2: NOTRUN -> [SKIP][16] ([i915#4103]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html * igt@kms_force_connector_basic@force-connector-state: - fi-icl-u2: NOTRUN -> [WARN][17] ([i915#6008]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@kms_force_connector_basic@force-connector-state.html * igt@kms_force_connector_basic@force-load-detect: - fi-icl-u2: NOTRUN -> [SKIP][18] ([fdo#109285]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_setmode@basic-clone-single-crtc: - fi-icl-u2: NOTRUN -> [SKIP][19] ([i915#3555]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-userptr: - fi-icl-u2: NOTRUN -> [SKIP][20] ([fdo#109295] / [i915#3301]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-icl-u2/igt@prime_vgem@basic-userptr.html * igt@runner@aborted: - fi-hsw-4770: NOTRUN -> [FAIL][21] ([fdo#109271] / [i915#4312] / [i915#5594] / [i915#6246]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-hsw-4770/igt@runner@aborted.html - fi-bsw-n3050: NOTRUN -> [FAIL][22] ([fdo#109271] / [i915#3428] / [i915#3690] / [i915#4312]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-bsw-n3050/igt@runner@aborted.html #### Possible fixes #### * igt@i915_pm_rpm@basic-rte: - fi-cfl-8109u: [DMESG-WARN][23] ([i915#1888] / [i915#62]) -> [PASS][24] [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-cfl-8109u/igt@i915_pm_rpm@basic-rte.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-cfl-8109u/igt@i915_pm_rpm@basic-rte.html * igt@i915_selftest@live@coherency: - {bat-dg2-9}: [DMESG-WARN][25] ([i915#5763]) -> [PASS][26] +13 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/bat-dg2-9/igt@i915_selftest@live@coherency.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/bat-dg2-9/igt@i915_selftest@live@coherency.html * igt@i915_selftest@live@hangcheck: - bat-dg1-5: [DMESG-FAIL][27] ([i915#4494] / [i915#4957]) -> [PASS][28] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/bat-dg1-5/igt@i915_selftest@live@hangcheck.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/bat-dg1-5/igt@i915_selftest@live@hangcheck.html - bat-dg1-6: [DMESG-FAIL][29] ([i915#4494] / [i915#4957]) -> [PASS][30] [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/bat-dg1-6/igt@i915_selftest@live@hangcheck.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/bat-dg1-6/igt@i915_selftest@live@hangcheck.html * igt@kms_busy@basic@flip: - {bat-adlp-6}: [DMESG-WARN][31] ([i915#3576]) -> [PASS][32] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/bat-adlp-6/igt@kms_busy@basic@flip.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/bat-adlp-6/igt@kms_busy@basic@flip.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size: - fi-bsw-kefka: [FAIL][33] ([i915#6298]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html * igt@kms_frontbuffer_tracking@basic: - fi-cfl-8109u: [DMESG-FAIL][35] ([i915#62]) -> [PASS][36] +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1: - fi-cfl-8109u: [DMESG-WARN][37] ([i915#62]) -> [PASS][38] +9 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11829/fi-cfl-8109u/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/fi-cfl-8109u/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-1.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3428]: https://gitlab.freedesktop.org/drm/intel/issues/3428 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576 [i915#3690]: https://gitlab.freedesktop.org/drm/intel/issues/3690 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957 [i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594 [i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763 [i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903 [i915#6008]: https://gitlab.freedesktop.org/drm/intel/issues/6008 [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62 [i915#6246]: https://gitlab.freedesktop.org/drm/intel/issues/6246 [i915#6253]: https://gitlab.freedesktop.org/drm/intel/issues/6253 [i915#6297]: https://gitlab.freedesktop.org/drm/intel/issues/6297 [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6552 -> IGTPW_7443 CI-20190529: 20190529 CI_DRM_11829: 3f759327f5d96d593c2f5b067228ee5938719d2d @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_7443: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/index.html IGT_6552: 9ed947c9610bf3b271b5f4d329db54922740c0ab @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +++ 16 lines --- 96 lines == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7443/index.html [-- Attachment #2: Type: text/html, Size: 12728 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem ` (2 preceding siblings ...) 2022-06-30 10:04 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev9) Patchwork @ 2022-07-01 1:44 ` Patchwork 2022-07-01 3:00 ` Modem, Bhanuprakash 2022-07-01 5:34 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork ` (2 subsequent siblings) 6 siblings, 1 reply; 17+ messages in thread From: Patchwork @ 2022-07-01 1:44 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 7646 bytes --] == Series Details == Series: tests/kms_color: IGT test cleanup (rev11) URL : https://patchwork.freedesktop.org/series/104972/ State : failure == Summary == CI Bug Log - changes from CI_DRM_11837 -> IGTPW_7448 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_7448 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_7448, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html Participating hosts (42 -> 41) ------------------------------ Missing (1): bat-dg2-9 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_7448: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@vma: - fi-bdw-5557u: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@i915_selftest@live@vma.html Known issues ------------ Here are the changes found in IGTPW_7448 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_pm_rpm@module-reload: - fi-cfl-8109u: [PASS][2] -> [DMESG-FAIL][3] ([i915#62]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html * igt@i915_selftest@live@hangcheck: - bat-dg1-6: [PASS][4] -> [DMESG-FAIL][5] ([i915#4494] / [i915#4957]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-6/igt@i915_selftest@live@hangcheck.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-6/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@late_gt_pm: - fi-cfl-8109u: [PASS][6] -> [DMESG-WARN][7] ([i915#5904]) +28 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html * igt@i915_selftest@live@requests: - fi-pnv-d510: [PASS][8] -> [DMESG-FAIL][9] ([i915#4528]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-pnv-d510/igt@i915_selftest@live@requests.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-pnv-d510/igt@i915_selftest@live@requests.html - fi-blb-e6850: [PASS][10] -> [DMESG-FAIL][11] ([i915#4528]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-blb-e6850/igt@i915_selftest@live@requests.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@i915_selftest@live@requests.html * igt@i915_suspend@basic-s2idle-without-i915: - fi-cfl-8109u: [PASS][12] -> [DMESG-WARN][13] ([i915#5904] / [i915#62]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html * igt@kms_busy@basic@flip: - fi-tgl-u2: [PASS][14] -> [DMESG-WARN][15] ([i915#402]) +1 similar issue [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-tgl-u2/igt@kms_busy@basic@flip.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-tgl-u2/igt@kms_busy@basic@flip.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-rkl-guc: NOTRUN -> [SKIP][16] ([fdo#111827]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@kms_chamelium@common-hpd-after-suspend.html * igt@kms_frontbuffer_tracking@basic: - fi-cfl-8109u: [PASS][17] -> [DMESG-WARN][18] ([i915#62]) +12 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html * igt@runner@aborted: - fi-blb-e6850: NOTRUN -> [FAIL][19] ([fdo#109271] / [i915#2403] / [i915#4312]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@runner@aborted.html #### Possible fixes #### * igt@i915_selftest@live@gt_lrc: - fi-rkl-guc: [INCOMPLETE][20] ([i915#4983]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html * igt@i915_selftest@live@hangcheck: - bat-dg1-5: [DMESG-FAIL][22] ([i915#4494] / [i915#4957]) -> [PASS][23] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-5/igt@i915_selftest@live@hangcheck.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-5/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@workarounds: - fi-bdw-5557u: [INCOMPLETE][24] ([i915#6307]) -> [PASS][25] [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: - fi-bsw-kefka: [FAIL][26] ([i915#6298]) -> [PASS][27] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2403]: https://gitlab.freedesktop.org/drm/intel/issues/2403 [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5904]: https://gitlab.freedesktop.org/drm/intel/issues/5904 [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62 [i915#6297]: https://gitlab.freedesktop.org/drm/intel/issues/6297 [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 [i915#6307]: https://gitlab.freedesktop.org/drm/intel/issues/6307 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6553 -> IGTPW_7448 CI-20190529: 20190529 CI_DRM_11837: e19040cd831f5ac1c94bb265ebd846c94f6fed80 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_7448: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html IGT_6553: 3cf110f8dcd1f4f02cf84339664b413abdaebf7d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +++ 16 lines --- 96 lines == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html [-- Attachment #2: Type: text/html, Size: 8886 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) 2022-07-01 1:44 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) Patchwork @ 2022-07-01 3:00 ` Modem, Bhanuprakash 2022-07-01 5:57 ` Vudum, Lakshminarayana 0 siblings, 1 reply; 17+ messages in thread From: Modem, Bhanuprakash @ 2022-07-01 3:00 UTC (permalink / raw) To: igt-dev, Lakshminarayana Vudum Hi Lakshmi, On Fri-01-07-2022 07:14 am, Patchwork wrote: > *Patch Details* > *Series:* tests/kms_color: IGT test cleanup (rev11) > *URL:* https://patchwork.freedesktop.org/series/104972/ > <https://patchwork.freedesktop.org/series/104972/> > *State:* failure > *Details:* > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html> > > > CI Bug Log - changes from CI_DRM_11837 -> IGTPW_7448 > > > Summary > > *FAILURE* > > Serious unknown changes coming with IGTPW_7448 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_7448, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in CI. > > External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html > > > Participating hosts (42 -> 41) > > Missing (1): bat-dg2-9 > > > Possible new issues > > Here are the unknown changes that may have been introduced in IGTPW_7448: > > > IGT changes > > > Possible regressions > > * igt@i915_selftest@live@vma: > o fi-bdw-5557u: NOTRUN -> INCOMPLETE > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@i915_selftest@live@vma.html> This failure is not related to my patch, please help to re-report. - Bhanu > > > Known issues > > Here are the changes found in IGTPW_7448 that come from known issues: > > > IGT changes > > > Issues hit > > * > > igt@i915_pm_rpm@module-reload: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html> > (i915#62 <https://gitlab.freedesktop.org/drm/intel/issues/62>) > * > > igt@i915_selftest@live@hangcheck: > > o bat-dg1-6: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-6/igt@i915_selftest@live@hangcheck.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-6/igt@i915_selftest@live@hangcheck.html> > (i915#4494 > <https://gitlab.freedesktop.org/drm/intel/issues/4494> / > i915#4957 <https://gitlab.freedesktop.org/drm/intel/issues/4957>) > * > > igt@i915_selftest@live@late_gt_pm: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html> > (i915#5904 > <https://gitlab.freedesktop.org/drm/intel/issues/5904>) +28 > similar issues > * > > igt@i915_selftest@live@requests: > > o > > fi-pnv-d510: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-pnv-d510/igt@i915_selftest@live@requests.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-pnv-d510/igt@i915_selftest@live@requests.html> > (i915#4528 <https://gitlab.freedesktop.org/drm/intel/issues/4528>) > > o > > fi-blb-e6850: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-blb-e6850/igt@i915_selftest@live@requests.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@i915_selftest@live@requests.html> > (i915#4528 <https://gitlab.freedesktop.org/drm/intel/issues/4528>) > > * > > igt@i915_suspend@basic-s2idle-without-i915: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html> > (i915#5904 > <https://gitlab.freedesktop.org/drm/intel/issues/5904> / i915#62 > <https://gitlab.freedesktop.org/drm/intel/issues/62>) > * > > igt@kms_busy@basic@flip: > > o fi-tgl-u2: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-tgl-u2/igt@kms_busy@basic@flip.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-tgl-u2/igt@kms_busy@basic@flip.html> > (i915#402 <https://gitlab.freedesktop.org/drm/intel/issues/402>) > +1 similar issue > * > > igt@kms_chamelium@common-hpd-after-suspend: > > o fi-rkl-guc: NOTRUN -> SKIP > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@kms_chamelium@common-hpd-after-suspend.html> > (fdo#111827 <https://bugs.freedesktop.org/show_bug.cgi?id=111827>) > * > > igt@kms_frontbuffer_tracking@basic: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html> > (i915#62 <https://gitlab.freedesktop.org/drm/intel/issues/62>) > +12 similar issues > * > > igt@runner@aborted: > > o fi-blb-e6850: NOTRUN -> FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@runner@aborted.html> > (fdo#109271 > <https://bugs.freedesktop.org/show_bug.cgi?id=109271> / > i915#2403 <https://gitlab.freedesktop.org/drm/intel/issues/2403> > / i915#4312 <https://gitlab.freedesktop.org/drm/intel/issues/4312>) > > > Possible fixes > > * > > igt@i915_selftest@live@gt_lrc: > > o fi-rkl-guc: INCOMPLETE > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html> > (i915#4983 > <https://gitlab.freedesktop.org/drm/intel/issues/4983>) -> PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html> > * > > igt@i915_selftest@live@hangcheck: > > o bat-dg1-5: DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-5/igt@i915_selftest@live@hangcheck.html> > (i915#4494 > <https://gitlab.freedesktop.org/drm/intel/issues/4494> / > i915#4957 > <https://gitlab.freedesktop.org/drm/intel/issues/4957>) -> PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-5/igt@i915_selftest@live@hangcheck.html> > * > > igt@i915_selftest@live@workarounds: > > o fi-bdw-5557u: INCOMPLETE > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html> > (i915#6307 > <https://gitlab.freedesktop.org/drm/intel/issues/6307>) -> PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html> > * > > igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: > > o fi-bsw-kefka: FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html> > (i915#6298 > <https://gitlab.freedesktop.org/drm/intel/issues/6298>) -> PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html> > > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > > Build changes > > * CI: CI-20190529 -> None > * IGT: IGT_6553 -> IGTPW_7448 > > CI-20190529: 20190529 > CI_DRM_11837: e19040cd831f5ac1c94bb265ebd846c94f6fed80 @ > git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_7448: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html > IGT_6553: 3cf110f8dcd1f4f02cf84339664b413abdaebf7d @ > https://gitlab.freedesktop.org/drm/igt-gpu-tools.git > > > Testlist changes > > +++ 16 lines > --- 96 lines > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) 2022-07-01 3:00 ` Modem, Bhanuprakash @ 2022-07-01 5:57 ` Vudum, Lakshminarayana 0 siblings, 0 replies; 17+ messages in thread From: Vudum, Lakshminarayana @ 2022-07-01 5:57 UTC (permalink / raw) To: Modem, Bhanuprakash, igt-dev Filed a new issue and re-reported. https://gitlab.freedesktop.org/drm/intel/-/issues/6332 igt@i915_selftest@live@vma - incomplete - No warnings/errors Lakshmi. -----Original Message----- From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com> Sent: Thursday, June 30, 2022 8:01 PM To: igt-dev@lists.freedesktop.org; Vudum, Lakshminarayana <lakshminarayana.vudum@intel.com> Subject: Re: ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) Hi Lakshmi, On Fri-01-07-2022 07:14 am, Patchwork wrote: > *Patch Details* > *Series:* tests/kms_color: IGT test cleanup (rev11) > *URL:* https://patchwork.freedesktop.org/series/104972/ > <https://patchwork.freedesktop.org/series/104972/> > *State:* failure > *Details:* > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html> > > > CI Bug Log - changes from CI_DRM_11837 -> IGTPW_7448 > > > Summary > > *FAILURE* > > Serious unknown changes coming with IGTPW_7448 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_7448, please notify your bug team to allow them to > document this new failure mode, which will reduce false positives in CI. > > External URL: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html > > > Participating hosts (42 -> 41) > > Missing (1): bat-dg2-9 > > > Possible new issues > > Here are the unknown changes that may have been introduced in IGTPW_7448: > > > IGT changes > > > Possible regressions > > * igt@i915_selftest@live@vma: > o fi-bdw-5557u: NOTRUN -> INCOMPLETE > > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@ > i915_selftest@live@vma.html> This failure is not related to my patch, please help to re-report. - Bhanu > > > Known issues > > Here are the changes found in IGTPW_7448 that come from known issues: > > > IGT changes > > > Issues hit > > * > > igt@i915_pm_rpm@module-reload: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html> > (i915#62 <https://gitlab.freedesktop.org/drm/intel/issues/62>) > * > > igt@i915_selftest@live@hangcheck: > > o bat-dg1-6: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-6/igt@i915_selftest@live@hangcheck.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-6/igt@i915_selftest@live@hangcheck.html> > (i915#4494 > <https://gitlab.freedesktop.org/drm/intel/issues/4494> / > i915#4957 <https://gitlab.freedesktop.org/drm/intel/issues/4957>) > * > > igt@i915_selftest@live@late_gt_pm: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html> > (i915#5904 > <https://gitlab.freedesktop.org/drm/intel/issues/5904>) +28 > similar issues > * > > igt@i915_selftest@live@requests: > > o > > fi-pnv-d510: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-pnv-d510/igt@i915_selftest@live@requests.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-pnv-d510/igt@i915_selftest@live@requests.html> > (i915#4528 > <https://gitlab.freedesktop.org/drm/intel/issues/4528>) > > o > > fi-blb-e6850: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-blb-e6850/igt@i915_selftest@live@requests.html> > -> DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@i915_selftest@live@requests.html> > (i915#4528 > <https://gitlab.freedesktop.org/drm/intel/issues/4528>) > > * > > igt@i915_suspend@basic-s2idle-without-i915: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html> > (i915#5904 > <https://gitlab.freedesktop.org/drm/intel/issues/5904> / i915#62 > <https://gitlab.freedesktop.org/drm/intel/issues/62>) > * > > igt@kms_busy@basic@flip: > > o fi-tgl-u2: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-tgl-u2/igt@kms_busy@basic@flip.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-tgl-u2/igt@kms_busy@basic@flip.html> > (i915#402 <https://gitlab.freedesktop.org/drm/intel/issues/402>) > +1 similar issue > * > > igt@kms_chamelium@common-hpd-after-suspend: > > o fi-rkl-guc: NOTRUN -> SKIP > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@kms_chamelium@common-hpd-after-suspend.html> > (fdo#111827 <https://bugs.freedesktop.org/show_bug.cgi?id=111827>) > * > > igt@kms_frontbuffer_tracking@basic: > > o fi-cfl-8109u: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html> > -> DMESG-WARN > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html> > (i915#62 <https://gitlab.freedesktop.org/drm/intel/issues/62>) > +12 similar issues > * > > igt@runner@aborted: > > o fi-blb-e6850: NOTRUN -> FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@runner@aborted.html> > (fdo#109271 > <https://bugs.freedesktop.org/show_bug.cgi?id=109271> / > i915#2403 <https://gitlab.freedesktop.org/drm/intel/issues/2403> > / i915#4312 > <https://gitlab.freedesktop.org/drm/intel/issues/4312>) > > > Possible fixes > > * > > igt@i915_selftest@live@gt_lrc: > > o fi-rkl-guc: INCOMPLETE > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html> > (i915#4983 > <https://gitlab.freedesktop.org/drm/intel/issues/4983>) -> PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html> > * > > igt@i915_selftest@live@hangcheck: > > o bat-dg1-5: DMESG-FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-5/igt@i915_selftest@live@hangcheck.html> > (i915#4494 > <https://gitlab.freedesktop.org/drm/intel/issues/4494> / > i915#4957 > <https://gitlab.freedesktop.org/drm/intel/issues/4957>) -> PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-5/igt@i915_selftest@live@hangcheck.html> > * > > igt@i915_selftest@live@workarounds: > > o fi-bdw-5557u: INCOMPLETE > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html> > (i915#6307 > <https://gitlab.freedesktop.org/drm/intel/issues/6307>) -> PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html> > * > > igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: > > o fi-bsw-kefka: FAIL > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html> > (i915#6298 > <https://gitlab.freedesktop.org/drm/intel/issues/6298>) -> PASS > > <https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bsw-kefka/igt@ > kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.htm > l> > > {name}: This element is suppressed. This means it is ignored when > computing the status of the difference (SUCCESS, WARNING, or FAILURE). > > > Build changes > > * CI: CI-20190529 -> None > * IGT: IGT_6553 -> IGTPW_7448 > > CI-20190529: 20190529 > CI_DRM_11837: e19040cd831f5ac1c94bb265ebd846c94f6fed80 @ > git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_7448: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html > IGT_6553: 3cf110f8dcd1f4f02cf84339664b413abdaebf7d @ > https://gitlab.freedesktop.org/drm/igt-gpu-tools.git > > > Testlist changes > > +++ 16 lines > --- 96 lines > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_color: IGT test cleanup (rev11) 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem ` (3 preceding siblings ...) 2022-07-01 1:44 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) Patchwork @ 2022-07-01 5:34 ` Patchwork 2022-07-01 21:57 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 2022-07-04 6:47 ` [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Sharma, Swati2 6 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2022-07-01 5:34 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 7263 bytes --] == Series Details == Series: tests/kms_color: IGT test cleanup (rev11) URL : https://patchwork.freedesktop.org/series/104972/ State : success == Summary == CI Bug Log - changes from CI_DRM_11837 -> IGTPW_7448 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html Participating hosts (42 -> 41) ------------------------------ Missing (1): bat-dg2-9 Known issues ------------ Here are the changes found in IGTPW_7448 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_pm_rpm@module-reload: - fi-cfl-8109u: [PASS][1] -> [DMESG-FAIL][2] ([i915#62]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html * igt@i915_selftest@live@hangcheck: - bat-dg1-6: [PASS][3] -> [DMESG-FAIL][4] ([i915#4494] / [i915#4957]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-6/igt@i915_selftest@live@hangcheck.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-6/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@late_gt_pm: - fi-cfl-8109u: [PASS][5] -> [DMESG-WARN][6] ([i915#5904]) +28 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html * igt@i915_selftest@live@requests: - fi-pnv-d510: [PASS][7] -> [DMESG-FAIL][8] ([i915#4528]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-pnv-d510/igt@i915_selftest@live@requests.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-pnv-d510/igt@i915_selftest@live@requests.html - fi-blb-e6850: [PASS][9] -> [DMESG-FAIL][10] ([i915#4528]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-blb-e6850/igt@i915_selftest@live@requests.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@i915_selftest@live@requests.html * igt@i915_selftest@live@vma: - fi-bdw-5557u: NOTRUN -> [INCOMPLETE][11] ([i915#6332]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@i915_selftest@live@vma.html * igt@i915_suspend@basic-s2idle-without-i915: - fi-cfl-8109u: [PASS][12] -> [DMESG-WARN][13] ([i915#5904] / [i915#62]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@i915_suspend@basic-s2idle-without-i915.html * igt@kms_busy@basic@flip: - fi-tgl-u2: [PASS][14] -> [DMESG-WARN][15] ([i915#402]) +1 similar issue [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-tgl-u2/igt@kms_busy@basic@flip.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-tgl-u2/igt@kms_busy@basic@flip.html * igt@kms_chamelium@common-hpd-after-suspend: - fi-rkl-guc: NOTRUN -> [SKIP][16] ([fdo#111827]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@kms_chamelium@common-hpd-after-suspend.html * igt@kms_frontbuffer_tracking@basic: - fi-cfl-8109u: [PASS][17] -> [DMESG-WARN][18] ([i915#62]) +12 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html * igt@runner@aborted: - fi-blb-e6850: NOTRUN -> [FAIL][19] ([fdo#109271] / [i915#2403] / [i915#4312]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-blb-e6850/igt@runner@aborted.html #### Possible fixes #### * igt@i915_selftest@live@gt_lrc: - fi-rkl-guc: [INCOMPLETE][20] ([i915#4983]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-rkl-guc/igt@i915_selftest@live@gt_lrc.html * igt@i915_selftest@live@hangcheck: - bat-dg1-5: [DMESG-FAIL][22] ([i915#4494] / [i915#4957]) -> [PASS][23] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/bat-dg1-5/igt@i915_selftest@live@hangcheck.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/bat-dg1-5/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@workarounds: - fi-bdw-5557u: [INCOMPLETE][24] ([i915#6307]) -> [PASS][25] [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bdw-5557u/igt@i915_selftest@live@workarounds.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: - fi-bsw-kefka: [FAIL][26] ([i915#6298]) -> [PASS][27] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2403]: https://gitlab.freedesktop.org/drm/intel/issues/2403 [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5904]: https://gitlab.freedesktop.org/drm/intel/issues/5904 [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62 [i915#6297]: https://gitlab.freedesktop.org/drm/intel/issues/6297 [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 [i915#6307]: https://gitlab.freedesktop.org/drm/intel/issues/6307 [i915#6332]: https://gitlab.freedesktop.org/drm/intel/issues/6332 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6553 -> IGTPW_7448 CI-20190529: 20190529 CI_DRM_11837: e19040cd831f5ac1c94bb265ebd846c94f6fed80 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_7448: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html IGT_6553: 3cf110f8dcd1f4f02cf84339664b413abdaebf7d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +++ 16 lines --- 96 lines == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html [-- Attachment #2: Type: text/html, Size: 8491 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for tests/kms_color: IGT test cleanup (rev11) 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem ` (4 preceding siblings ...) 2022-07-01 5:34 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork @ 2022-07-01 21:57 ` Patchwork 2022-07-04 6:47 ` [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Sharma, Swati2 6 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2022-07-01 21:57 UTC (permalink / raw) To: Modem, Bhanuprakash; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 76750 bytes --] == Series Details == Series: tests/kms_color: IGT test cleanup (rev11) URL : https://patchwork.freedesktop.org/series/104972/ State : failure == Summary == CI Bug Log - changes from CI_DRM_11837_full -> IGTPW_7448_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_7448_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_7448_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html Participating hosts (13 -> 10) ------------------------------ Missing (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_7448_full: ### IGT changes ### #### Possible regressions #### * igt@kms_color@deep-color: - shard-iclb: NOTRUN -> [SKIP][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb8/igt@kms_color@deep-color.html - shard-tglb: NOTRUN -> [SKIP][2] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@kms_color@deep-color.html * igt@kms_cursor_legacy@flip-vs-cursor@varying-size: - shard-iclb: [PASS][3] -> [FAIL][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb5/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@gem_exec_capture@capture-recoverable}: - shard-tglb: NOTRUN -> [SKIP][5] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@gem_exec_capture@capture-recoverable.html - shard-iclb: NOTRUN -> [SKIP][6] [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb5/igt@gem_exec_capture@capture-recoverable.html - {shard-rkl}: NOTRUN -> [SKIP][7] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-5/igt@gem_exec_capture@capture-recoverable.html - {shard-dg1}: NOTRUN -> [SKIP][8] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-dg1-12/igt@gem_exec_capture@capture-recoverable.html - {shard-tglu}: NOTRUN -> [SKIP][9] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglu-1/igt@gem_exec_capture@capture-recoverable.html * igt@i915_selftest@live@guc: - {shard-dg1}: NOTRUN -> [FAIL][10] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-dg1-15/igt@i915_selftest@live@guc.html New tests --------- New tests have been introduced between CI_DRM_11837_full and IGTPW_7448_full: ### New IGT tests (174) ### * igt@kms_color@ctm-0-25@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.45, 0.47] s * igt@kms_color@ctm-0-25@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.59, 0.72] s * igt@kms_color@ctm-0-25@pipe-a-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.24, 0.78] s * igt@kms_color@ctm-0-25@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-0-25@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.55, 0.59] s * igt@kms_color@ctm-0-25@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.35, 1.48] s * igt@kms_color@ctm-0-25@pipe-b-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.23, 0.43] s * igt@kms_color@ctm-0-25@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.56] s * igt@kms_color@ctm-0-25@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-0-25@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.60] s * igt@kms_color@ctm-0-25@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.37, 1.47] s * igt@kms_color@ctm-0-25@pipe-c-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.22, 0.55] s * igt@kms_color@ctm-0-25@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.36] s * igt@kms_color@ctm-0-25@pipe-d-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.22, 0.44] s * igt@kms_color@ctm-0-50@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.44, 0.48] s * igt@kms_color@ctm-0-50@pipe-a-edp-1: - Statuses : 3 pass(s) - Exec time: [0.56, 0.74] s * igt@kms_color@ctm-0-50@pipe-a-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.49, 0.56] s * igt@kms_color@ctm-0-50@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-0-50@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.53, 0.59] s * igt@kms_color@ctm-0-50@pipe-b-edp-1: - Statuses : 3 pass(s) - Exec time: [1.33, 1.52] s * igt@kms_color@ctm-0-50@pipe-b-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.42, 0.44] s * igt@kms_color@ctm-0-50@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-0-50@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.52, 0.59] s * igt@kms_color@ctm-0-50@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.34, 1.53] s * igt@kms_color@ctm-0-50@pipe-c-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.43, 0.45] s * igt@kms_color@ctm-0-50@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.34] s * igt@kms_color@ctm-0-50@pipe-d-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.45, 0.46] s * igt@kms_color@ctm-0-75@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.46, 0.47] s * igt@kms_color@ctm-0-75@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.58, 0.69] s * igt@kms_color@ctm-0-75@pipe-a-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.79] s * igt@kms_color@ctm-0-75@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-0-75@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.56, 0.60] s * igt@kms_color@ctm-0-75@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.49] s * igt@kms_color@ctm-0-75@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.59] s * igt@kms_color@ctm-0-75@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-0-75@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.61] s * igt@kms_color@ctm-0-75@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.47] s * igt@kms_color@ctm-0-75@pipe-c-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.58] s * igt@kms_color@ctm-0-75@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.34] s * igt@kms_color@ctm-blue-to-red@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.47, 0.48] s * igt@kms_color@ctm-blue-to-red@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.57, 0.71] s * igt@kms_color@ctm-blue-to-red@pipe-a-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.24, 0.82] s * igt@kms_color@ctm-blue-to-red@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-blue-to-red@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.59] s * igt@kms_color@ctm-blue-to-red@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.37, 1.46] s * igt@kms_color@ctm-blue-to-red@pipe-b-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.23] s * igt@kms_color@ctm-blue-to-red@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.57] s * igt@kms_color@ctm-blue-to-red@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-blue-to-red@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.61] s * igt@kms_color@ctm-blue-to-red@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.32, 1.47] s * igt@kms_color@ctm-blue-to-red@pipe-c-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.23, 0.60] s * igt@kms_color@ctm-blue-to-red@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.34] s * igt@kms_color@ctm-blue-to-red@pipe-d-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.23] s * igt@kms_color@ctm-green-to-red@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.48, 0.49] s * igt@kms_color@ctm-green-to-red@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.57, 0.71] s * igt@kms_color@ctm-green-to-red@pipe-a-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.25, 0.81] s * igt@kms_color@ctm-green-to-red@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-green-to-red@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.53, 0.60] s * igt@kms_color@ctm-green-to-red@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.46] s * igt@kms_color@ctm-green-to-red@pipe-b-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.24, 0.44] s * igt@kms_color@ctm-green-to-red@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.57] s * igt@kms_color@ctm-green-to-red@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-green-to-red@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.61] s * igt@kms_color@ctm-green-to-red@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.47] s * igt@kms_color@ctm-green-to-red@pipe-c-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.22, 0.56] s * igt@kms_color@ctm-green-to-red@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.35] s * igt@kms_color@ctm-green-to-red@pipe-d-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.22, 0.45] s * igt@kms_color@ctm-max@pipe-a-dp-1: - Statuses : 1 pass(s) - Exec time: [0.47] s * igt@kms_color@ctm-max@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.56, 0.71] s * igt@kms_color@ctm-max@pipe-a-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.23, 0.79] s * igt@kms_color@ctm-max@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-max@pipe-b-dp-1: - Statuses : 1 pass(s) - Exec time: [0.59] s * igt@kms_color@ctm-max@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.34, 1.48] s * igt@kms_color@ctm-max@pipe-b-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.22, 0.40] s * igt@kms_color@ctm-max@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.56] s * igt@kms_color@ctm-max@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-max@pipe-c-dp-1: - Statuses : 1 pass(s) - Exec time: [0.60] s * igt@kms_color@ctm-max@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.47] s * igt@kms_color@ctm-max@pipe-c-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.22, 0.56] s * igt@kms_color@ctm-max@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.34] s * igt@kms_color@ctm-max@pipe-d-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.22, 0.43] s * igt@kms_color@ctm-negative@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.45, 0.48] s * igt@kms_color@ctm-negative@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.59, 0.69] s * igt@kms_color@ctm-negative@pipe-a-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.83] s * igt@kms_color@ctm-negative@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-negative@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.58] s * igt@kms_color@ctm-negative@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.37, 1.49] s * igt@kms_color@ctm-negative@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.59] s * igt@kms_color@ctm-negative@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-negative@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.59] s * igt@kms_color@ctm-negative@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.39, 1.47] s * igt@kms_color@ctm-negative@pipe-c-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.66] s * igt@kms_color@ctm-negative@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.32] s * igt@kms_color@ctm-red-to-blue: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-red-to-blue@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.45, 0.48] s * igt@kms_color@ctm-red-to-blue@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.56, 0.69] s * igt@kms_color@ctm-red-to-blue@pipe-a-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.24, 0.79] s * igt@kms_color@ctm-red-to-blue@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-red-to-blue@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.55, 0.59] s * igt@kms_color@ctm-red-to-blue@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.35, 1.45] s * igt@kms_color@ctm-red-to-blue@pipe-b-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.24, 0.42] s * igt@kms_color@ctm-red-to-blue@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.58] s * igt@kms_color@ctm-red-to-blue@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@ctm-red-to-blue@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.59] s * igt@kms_color@ctm-red-to-blue@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.48] s * igt@kms_color@ctm-red-to-blue@pipe-c-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.23, 0.61] s * igt@kms_color@ctm-red-to-blue@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.35] s * igt@kms_color@ctm-red-to-blue@pipe-d-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.22, 0.45] s * igt@kms_color@degamma@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.49, 0.52] s * igt@kms_color@degamma@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.58, 0.72] s * igt@kms_color@degamma@pipe-a-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.23, 0.83] s * igt@kms_color@degamma@pipe-a-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@degamma@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.53, 0.65] s * igt@kms_color@degamma@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.50] s * igt@kms_color@degamma@pipe-b-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.25, 0.43] s * igt@kms_color@degamma@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.62] s * igt@kms_color@degamma@pipe-b-vga-1: - Statuses : 1 skip(s) - Exec time: [0.0] s * igt@kms_color@degamma@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.65] s * igt@kms_color@degamma@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.34, 1.47] s * igt@kms_color@degamma@pipe-c-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.22, 0.63] s * igt@kms_color@degamma@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.34] s * igt@kms_color@degamma@pipe-d-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.23, 0.42] s * igt@kms_color@gamma@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.47, 0.51] s * igt@kms_color@gamma@pipe-a-edp-1: - Statuses : 3 pass(s) - Exec time: [0.59, 0.82] s * igt@kms_color@gamma@pipe-a-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.23, 0.79] s * igt@kms_color@gamma@pipe-a-vga-1: - Statuses : 1 pass(s) - Exec time: [0.33] s * igt@kms_color@gamma@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.52, 0.63] s * igt@kms_color@gamma@pipe-b-edp-1: - Statuses : 3 pass(s) - Exec time: [1.34, 1.55] s * igt@kms_color@gamma@pipe-b-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.23] s * igt@kms_color@gamma@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.56] s * igt@kms_color@gamma@pipe-b-vga-1: - Statuses : 1 pass(s) - Exec time: [0.36] s * igt@kms_color@gamma@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.52, 0.63] s * igt@kms_color@gamma@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.33, 1.60] s * igt@kms_color@gamma@pipe-c-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.22, 0.58] s * igt@kms_color@gamma@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.33] s * igt@kms_color@gamma@pipe-d-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.22] s * igt@kms_color@invalid-ctm-matrix-sizes@pipe-a: - Statuses : 7 pass(s) - Exec time: [0.00, 0.05] s * igt@kms_color@invalid-ctm-matrix-sizes@pipe-b: - Statuses : 7 pass(s) - Exec time: [0.00, 0.05] s * igt@kms_color@invalid-ctm-matrix-sizes@pipe-c: - Statuses : 6 pass(s) - Exec time: [0.00, 0.07] s * igt@kms_color@invalid-ctm-matrix-sizes@pipe-d: - Statuses : 2 pass(s) - Exec time: [0.01] s * igt@kms_color@invalid-degamma-lut-sizes@pipe-a: - Statuses : 8 pass(s) 1 skip(s) - Exec time: [0.0, 0.37] s * igt@kms_color@invalid-degamma-lut-sizes@pipe-b: - Statuses : 8 pass(s) 1 skip(s) - Exec time: [0.0, 0.00] s * igt@kms_color@invalid-degamma-lut-sizes@pipe-c: - Statuses : 8 pass(s) - Exec time: [0.0, 0.01] s * igt@kms_color@invalid-degamma-lut-sizes@pipe-d: - Statuses : 3 pass(s) - Exec time: [0.0, 0.00] s * igt@kms_color@invalid-gamma-lut-sizes: - Statuses : - Exec time: [None] s * igt@kms_color@invalid-gamma-lut-sizes@pipe-d: - Statuses : 1 pass(s) - Exec time: [0.00] s * igt@kms_color@legacy-gamma-reset@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.08, 0.12] s * igt@kms_color@legacy-gamma-reset@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.37, 0.38] s * igt@kms_color@legacy-gamma-reset@pipe-a-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.08, 0.50] s * igt@kms_color@legacy-gamma-reset@pipe-a-vga-1: - Statuses : 1 pass(s) - Exec time: [0.07] s * igt@kms_color@legacy-gamma-reset@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.01, 0.02] s * igt@kms_color@legacy-gamma-reset@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [0.02] s * igt@kms_color@legacy-gamma-reset@pipe-b-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.02] s * igt@kms_color@legacy-gamma-reset@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.03] s * igt@kms_color@legacy-gamma-reset@pipe-b-vga-1: - Statuses : 1 pass(s) - Exec time: [0.00] s * igt@kms_color@legacy-gamma-reset@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.01, 0.02] s * igt@kms_color@legacy-gamma-reset@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [0.01, 0.02] s * igt@kms_color@legacy-gamma-reset@pipe-c-hdmi-a-1: - Statuses : 3 pass(s) - Exec time: [0.02, 0.03] s * igt@kms_color@legacy-gamma-reset@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [0.02] s * igt@kms_color@legacy-gamma-reset@pipe-d-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.02] s * igt@kms_color@legacy-gamma@pipe-a-dp-1: - Statuses : 2 pass(s) - Exec time: [0.43, 0.55] s * igt@kms_color@legacy-gamma@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.58, 0.70] s * igt@kms_color@legacy-gamma@pipe-a-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.26, 0.84] s * igt@kms_color@legacy-gamma@pipe-a-vga-1: - Statuses : 1 pass(s) - Exec time: [0.35] s * igt@kms_color@legacy-gamma@pipe-b-dp-1: - Statuses : 2 pass(s) - Exec time: [0.55, 0.67] s * igt@kms_color@legacy-gamma@pipe-b-edp-1: - Statuses : 2 pass(s) - Exec time: [1.36, 1.50] s * igt@kms_color@legacy-gamma@pipe-b-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.24] s * igt@kms_color@legacy-gamma@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.66] s * igt@kms_color@legacy-gamma@pipe-b-vga-1: - Statuses : 1 pass(s) - Exec time: [0.38] s * igt@kms_color@legacy-gamma@pipe-c-dp-1: - Statuses : 2 pass(s) - Exec time: [0.54, 0.68] s * igt@kms_color@legacy-gamma@pipe-c-edp-1: - Statuses : 2 pass(s) - Exec time: [1.34, 1.47] s * igt@kms_color@legacy-gamma@pipe-c-hdmi-a-1: - Statuses : 2 pass(s) - Exec time: [0.23, 0.63] s * igt@kms_color@legacy-gamma@pipe-d-edp-1: - Statuses : 1 pass(s) - Exec time: [1.34] s * igt@kms_color@legacy-gamma@pipe-d-hdmi-a-1: - Statuses : 1 pass(s) - Exec time: [0.23] s Known issues ------------ Here are the changes found in IGTPW_7448_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_create@create-massive: - shard-apl: NOTRUN -> [DMESG-WARN][11] ([i915#4991]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl4/igt@gem_create@create-massive.html * igt@gem_ctx_isolation@dirty-create@bcs0: - shard-glk: [PASS][12] -> [INCOMPLETE][13] ([i915#6310]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk6/igt@gem_ctx_isolation@dirty-create@bcs0.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk5/igt@gem_ctx_isolation@dirty-create@bcs0.html * igt@gem_ctx_param@set-priority-not-supported: - shard-tglb: NOTRUN -> [SKIP][14] ([fdo#109314]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb2/igt@gem_ctx_param@set-priority-not-supported.html - shard-iclb: NOTRUN -> [SKIP][15] ([fdo#109314]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb1/igt@gem_ctx_param@set-priority-not-supported.html * igt@gem_ctx_persistence@processes: - shard-snb: NOTRUN -> [SKIP][16] ([fdo#109271] / [i915#1099]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-snb5/igt@gem_ctx_persistence@processes.html * igt@gem_exec_balancer@parallel-contexts: - shard-iclb: [PASS][17] -> [SKIP][18] ([i915#4525]) +2 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb4/igt@gem_exec_balancer@parallel-contexts.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb3/igt@gem_exec_balancer@parallel-contexts.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-tglb: [PASS][19] -> [FAIL][20] ([i915#2842]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-tglb2/igt@gem_exec_fair@basic-none-share@rcs0.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb1/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none-solo@rcs0: - shard-glk: NOTRUN -> [FAIL][21] ([i915#2842]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk6/igt@gem_exec_fair@basic-none-solo@rcs0.html * igt@gem_exec_fair@basic-none@vcs0: - shard-apl: [PASS][22] -> [FAIL][23] ([i915#2842]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-apl6/igt@gem_exec_fair@basic-none@vcs0.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl2/igt@gem_exec_fair@basic-none@vcs0.html * igt@gem_exec_fair@basic-none@vcs1: - shard-iclb: NOTRUN -> [FAIL][24] ([i915#2842]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb1/igt@gem_exec_fair@basic-none@vcs1.html - shard-kbl: NOTRUN -> [FAIL][25] ([i915#2842]) +3 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@gem_exec_fair@basic-none@vcs1.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [PASS][26] -> [FAIL][27] ([i915#2842]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-kbl: [PASS][28] -> [FAIL][29] ([i915#2842]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gem_exec_params@no-blt: - shard-iclb: NOTRUN -> [SKIP][30] ([fdo#109283]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb8/igt@gem_exec_params@no-blt.html - shard-tglb: NOTRUN -> [SKIP][31] ([fdo#109283]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@gem_exec_params@no-blt.html * igt@gem_lmem_swapping@heavy-multi: - shard-apl: NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#4613]) +4 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl3/igt@gem_lmem_swapping@heavy-multi.html * igt@gem_lmem_swapping@heavy-verify-multi-ccs: - shard-tglb: NOTRUN -> [SKIP][33] ([i915#4613]) +1 similar issue [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb2/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html * igt@gem_lmem_swapping@verify-ccs: - shard-glk: NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#4613]) +1 similar issue [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk3/igt@gem_lmem_swapping@verify-ccs.html - shard-iclb: NOTRUN -> [SKIP][35] ([i915#4613]) +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb5/igt@gem_lmem_swapping@verify-ccs.html - shard-kbl: NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#4613]) +3 similar issues [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@gem_lmem_swapping@verify-ccs.html * igt@gem_pread@exhaustion: - shard-apl: NOTRUN -> [WARN][37] ([i915#2658]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl3/igt@gem_pread@exhaustion.html * igt@gem_render_copy@y-tiled-to-vebox-linear: - shard-iclb: NOTRUN -> [SKIP][38] ([i915#768]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb1/igt@gem_render_copy@y-tiled-to-vebox-linear.html * igt@gem_userptr_blits@unsync-unmap-after-close: - shard-tglb: NOTRUN -> [SKIP][39] ([i915#3297]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@gem_userptr_blits@unsync-unmap-after-close.html - shard-iclb: NOTRUN -> [SKIP][40] ([i915#3297]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb4/igt@gem_userptr_blits@unsync-unmap-after-close.html * igt@gen9_exec_parse@allowed-all: - shard-kbl: [PASS][41] -> [DMESG-WARN][42] ([i915#5566] / [i915#716]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl4/igt@gen9_exec_parse@allowed-all.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@gen9_exec_parse@allowed-all.html * igt@gen9_exec_parse@unaligned-jump: - shard-tglb: NOTRUN -> [SKIP][43] ([i915#2527] / [i915#2856]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@gen9_exec_parse@unaligned-jump.html - shard-iclb: NOTRUN -> [SKIP][44] ([i915#2856]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb6/igt@gen9_exec_parse@unaligned-jump.html * igt@i915_pm_rpm@modeset-lpsp: - shard-apl: NOTRUN -> [SKIP][45] ([fdo#109271]) +148 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl6/igt@i915_pm_rpm@modeset-lpsp.html * igt@i915_selftest@live@hangcheck: - shard-snb: [PASS][46] -> [INCOMPLETE][47] ([i915#3921]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-snb5/igt@i915_selftest@live@hangcheck.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-snb7/igt@i915_selftest@live@hangcheck.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing: - shard-tglb: NOTRUN -> [SKIP][48] ([i915#1769]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html - shard-iclb: NOTRUN -> [SKIP][49] ([i915#1769]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html * igt@kms_big_fb@x-tiled-32bpp-rotate-90: - shard-tglb: NOTRUN -> [SKIP][50] ([fdo#111614]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html - shard-iclb: NOTRUN -> [SKIP][51] ([fdo#110725] / [fdo#111614]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][52] ([i915#3689]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb2/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_ccs.html * igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_rc_ccs_cc: - shard-tglb: NOTRUN -> [SKIP][53] ([i915#6095]) +1 similar issue [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_rc_ccs_cc.html * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc: - shard-apl: NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#3886]) +4 similar issues [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl6/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html - shard-kbl: NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#3886]) +5 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc: - shard-tglb: NOTRUN -> [SKIP][56] ([i915#3689] / [i915#6095]) +1 similar issue [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc.html * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs: - shard-tglb: NOTRUN -> [SKIP][57] ([i915#3689] / [i915#3886]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb5/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html - shard-glk: NOTRUN -> [SKIP][58] ([fdo#109271] / [i915#3886]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk3/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html - shard-iclb: NOTRUN -> [SKIP][59] ([fdo#109278] / [i915#3886]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb6/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-b-missing-ccs-buffer-yf_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][60] ([fdo#111615] / [i915#3689]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@kms_ccs@pipe-b-missing-ccs-buffer-yf_tiled_ccs.html * igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_dg2_mc_ccs: - shard-glk: NOTRUN -> [SKIP][61] ([fdo#109271]) +54 similar issues [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk2/igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_dg2_mc_ccs.html * igt@kms_chamelium@dp-crc-single: - shard-apl: NOTRUN -> [SKIP][62] ([fdo#109271] / [fdo#111827]) +10 similar issues [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl4/igt@kms_chamelium@dp-crc-single.html * igt@kms_chamelium@dp-hpd: - shard-glk: NOTRUN -> [SKIP][63] ([fdo#109271] / [fdo#111827]) +3 similar issues [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk6/igt@kms_chamelium@dp-hpd.html - shard-iclb: NOTRUN -> [SKIP][64] ([fdo#109284] / [fdo#111827]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb1/igt@kms_chamelium@dp-hpd.html - shard-snb: NOTRUN -> [SKIP][65] ([fdo#109271] / [fdo#111827]) +1 similar issue [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-snb2/igt@kms_chamelium@dp-hpd.html * {igt@kms_color@ctm-0-75@pipe-b-vga-1} (NEW): - shard-snb: NOTRUN -> [SKIP][66] ([fdo#109271]) +75 similar issues [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-snb7/igt@kms_color@ctm-0-75@pipe-b-vga-1.html * {igt@kms_color@ctm-red-to-blue} (NEW): - {shard-rkl}: NOTRUN -> [SKIP][67] ([i915#4098]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-1/igt@kms_color@ctm-red-to-blue.html * igt@kms_color_chamelium@pipe-a-degamma: - shard-kbl: NOTRUN -> [SKIP][68] ([fdo#109271] / [fdo#111827]) +7 similar issues [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@kms_color_chamelium@pipe-a-degamma.html * igt@kms_color_chamelium@pipe-d-ctm-limited-range: - shard-tglb: NOTRUN -> [SKIP][69] ([fdo#109284] / [fdo#111827]) +1 similar issue [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb2/igt@kms_color_chamelium@pipe-d-ctm-limited-range.html - shard-iclb: NOTRUN -> [SKIP][70] ([fdo#109278] / [fdo#109284] / [fdo#111827]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb8/igt@kms_color_chamelium@pipe-d-ctm-limited-range.html * igt@kms_content_protection@legacy: - shard-apl: NOTRUN -> [TIMEOUT][71] ([i915#1319]) +1 similar issue [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl6/igt@kms_content_protection@legacy.html * igt@kms_content_protection@srm: - shard-kbl: NOTRUN -> [TIMEOUT][72] ([i915#1319]) [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@kms_content_protection@srm.html * igt@kms_cursor_legacy@cursor-vs-flip@atomic-transitions-varying-size: - shard-iclb: [PASS][73] -> [FAIL][74] ([i915#5072]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb8/igt@kms_cursor_legacy@cursor-vs-flip@atomic-transitions-varying-size.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb7/igt@kms_cursor_legacy@cursor-vs-flip@atomic-transitions-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size: - shard-glk: [PASS][75] -> [FAIL][76] ([i915#2346]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor@toggle: - shard-iclb: [PASS][77] -> [FAIL][78] ([i915#2346]) +2 similar issues [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb5/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html * igt@kms_dither@fb-8bpc-vs-panel-8bpc@pipe-a-edp-1: - shard-tglb: NOTRUN -> [SKIP][79] ([i915#6076]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb5/igt@kms_dither@fb-8bpc-vs-panel-8bpc@pipe-a-edp-1.html * igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-4tiled: - shard-tglb: NOTRUN -> [SKIP][80] ([i915#5287]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb5/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-4tiled.html - shard-iclb: NOTRUN -> [SKIP][81] ([i915#5287]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb4/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-4tiled.html * igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible: - shard-tglb: NOTRUN -> [SKIP][82] ([fdo#109274] / [fdo#111825]) +1 similar issue [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible.html - shard-iclb: NOTRUN -> [SKIP][83] ([fdo#109274]) +1 similar issue [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb7/igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1: - shard-kbl: [PASS][84] -> [DMESG-WARN][85] ([i915#180]) +11 similar issues [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl4/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html * igt@kms_flip@flip-vs-suspend@a-dp1: - shard-apl: [PASS][86] -> [DMESG-WARN][87] ([i915#180]) +3 similar issues [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-apl4/igt@kms_flip@flip-vs-suspend@a-dp1.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl8/igt@kms_flip@flip-vs-suspend@a-dp1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling: - shard-iclb: [PASS][88] -> [SKIP][89] ([i915#3701]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb4/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling: - shard-glk: [PASS][90] -> [FAIL][91] ([i915#4911]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu: - shard-iclb: NOTRUN -> [SKIP][92] ([fdo#109280]) +7 similar issues [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt: - shard-kbl: NOTRUN -> [SKIP][93] ([fdo#109271]) +134 similar issues [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-blt: - shard-tglb: NOTRUN -> [SKIP][94] ([fdo#109280] / [fdo#111825]) +7 similar issues [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-blt.html * igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1: - shard-kbl: [PASS][95] -> [FAIL][96] ([i915#1188]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl7/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl4/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html * igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c: - shard-tglb: NOTRUN -> [SKIP][97] ([fdo#109289]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c.html - shard-iclb: NOTRUN -> [SKIP][98] ([fdo#109289]) [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb5/igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c.html * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max: - shard-kbl: NOTRUN -> [FAIL][99] ([fdo#108145] / [i915#265]) [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl4/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html * igt@kms_plane_alpha_blend@pipe-b-alpha-basic: - shard-glk: NOTRUN -> [FAIL][100] ([fdo#108145] / [i915#265]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk6/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb: - shard-glk: NOTRUN -> [FAIL][101] ([i915#265]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk8/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html * igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb: - shard-kbl: NOTRUN -> [FAIL][102] ([i915#265]) [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl4/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html * igt@kms_plane_lowres@tiling-yf: - shard-tglb: NOTRUN -> [SKIP][103] ([fdo#112054]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@kms_plane_lowres@tiling-yf.html * igt@kms_plane_lowres@tiling-yf@pipe-a-edp-1: - shard-iclb: NOTRUN -> [SKIP][104] ([i915#3536]) +2 similar issues [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb4/igt@kms_plane_lowres@tiling-yf@pipe-a-edp-1.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1: - shard-iclb: [PASS][105] -> [SKIP][106] ([i915#5235]) +2 similar issues [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb: - shard-apl: NOTRUN -> [SKIP][107] ([fdo#109271] / [i915#658]) +1 similar issue [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html - shard-tglb: NOTRUN -> [SKIP][108] ([i915#2920]) [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html - shard-glk: NOTRUN -> [SKIP][109] ([fdo#109271] / [i915#658]) +1 similar issue [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html - shard-iclb: NOTRUN -> [SKIP][110] ([i915#2920]) [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html - shard-kbl: NOTRUN -> [SKIP][111] ([fdo#109271] / [i915#658]) +2 similar issues [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html * igt@kms_psr@psr2_primary_blt: - shard-iclb: [PASS][112] -> [SKIP][113] ([fdo#109441]) +3 similar issues [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb2/igt@kms_psr@psr2_primary_blt.html [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb3/igt@kms_psr@psr2_primary_blt.html * igt@kms_vblank@pipe-d-query-forked-busy: - shard-iclb: NOTRUN -> [SKIP][114] ([fdo#109278]) +8 similar issues [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb8/igt@kms_vblank@pipe-d-query-forked-busy.html * igt@kms_writeback@writeback-check-output: - shard-apl: NOTRUN -> [SKIP][115] ([fdo#109271] / [i915#2437]) [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl4/igt@kms_writeback@writeback-check-output.html * igt@kms_writeback@writeback-fb-id: - shard-glk: NOTRUN -> [SKIP][116] ([fdo#109271] / [i915#2437]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk8/igt@kms_writeback@writeback-fb-id.html * igt@prime_mmap_coherency@ioctl-errors: - shard-glk: [PASS][117] -> [DMESG-FAIL][118] ([i915#6310]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk1/igt@prime_mmap_coherency@ioctl-errors.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk3/igt@prime_mmap_coherency@ioctl-errors.html * igt@prime_nv_pcopy@test_semaphore: - shard-tglb: NOTRUN -> [SKIP][119] ([fdo#109291]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb5/igt@prime_nv_pcopy@test_semaphore.html - shard-iclb: NOTRUN -> [SKIP][120] ([fdo#109291]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@prime_nv_pcopy@test_semaphore.html * igt@sysfs_clients@fair-0: - shard-apl: NOTRUN -> [SKIP][121] ([fdo#109271] / [i915#2994]) +2 similar issues [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl1/igt@sysfs_clients@fair-0.html * igt@sysfs_clients@sema-10: - shard-glk: NOTRUN -> [SKIP][122] ([fdo#109271] / [i915#2994]) +1 similar issue [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk3/igt@sysfs_clients@sema-10.html * igt@sysfs_clients@split-10: - shard-iclb: NOTRUN -> [SKIP][123] ([i915#2994]) [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb6/igt@sysfs_clients@split-10.html - shard-kbl: NOTRUN -> [SKIP][124] ([fdo#109271] / [i915#2994]) +3 similar issues [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@sysfs_clients@split-10.html - shard-tglb: NOTRUN -> [SKIP][125] ([i915#2994]) [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb5/igt@sysfs_clients@split-10.html #### Possible fixes #### * igt@fbdev@unaligned-read: - {shard-rkl}: [SKIP][126] ([i915#2582]) -> [PASS][127] [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@fbdev@unaligned-read.html [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@fbdev@unaligned-read.html * igt@gem_ctx_exec@basic-nohangcheck: - shard-tglb: [FAIL][128] ([i915#6268]) -> [PASS][129] [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-tglb7/igt@gem_ctx_exec@basic-nohangcheck.html [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb5/igt@gem_ctx_exec@basic-nohangcheck.html - {shard-rkl}: [FAIL][130] ([i915#6268]) -> [PASS][131] [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@gem_ctx_exec@basic-nohangcheck.html [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-5/igt@gem_ctx_exec@basic-nohangcheck.html * igt@gem_ctx_persistence@engines-hang@bcs0: - {shard-rkl}: [SKIP][132] ([i915#6252]) -> [PASS][133] [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-5/igt@gem_ctx_persistence@engines-hang@bcs0.html [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-1/igt@gem_ctx_persistence@engines-hang@bcs0.html * igt@gem_ctx_persistence@engines-hang@rcs0: - {shard-dg1}: [FAIL][134] ([i915#4883]) -> [PASS][135] +3 similar issues [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-dg1-17/igt@gem_ctx_persistence@engines-hang@rcs0.html [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-dg1-12/igt@gem_ctx_persistence@engines-hang@rcs0.html * igt@gem_ctx_persistence@hostile: - {shard-rkl}: [FAIL][136] ([i915#2410]) -> [PASS][137] [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-1/igt@gem_ctx_persistence@hostile.html [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-5/igt@gem_ctx_persistence@hostile.html * igt@gem_ctx_persistence@smoketest: - shard-apl: [FAIL][138] ([i915#5099]) -> [PASS][139] [138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-apl7/igt@gem_ctx_persistence@smoketest.html [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl1/igt@gem_ctx_persistence@smoketest.html * igt@gem_exec_balancer@parallel-keep-submit-fence: - shard-iclb: [SKIP][140] ([i915#4525]) -> [PASS][141] [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb5/igt@gem_exec_balancer@parallel-keep-submit-fence.html [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb4/igt@gem_exec_balancer@parallel-keep-submit-fence.html * igt@gem_exec_fair@basic-flow@rcs0: - shard-tglb: [FAIL][142] ([i915#2842]) -> [PASS][143] [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb7/igt@gem_exec_fair@basic-flow@rcs0.html * igt@gem_exec_fair@basic-none-share@rcs0: - {shard-tglu}: [FAIL][144] ([i915#2842]) -> [PASS][145] [144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-tglu-4/igt@gem_exec_fair@basic-none-share@rcs0.html [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglu-6/igt@gem_exec_fair@basic-none-share@rcs0.html - shard-glk: [FAIL][146] ([i915#2842]) -> [PASS][147] [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk9/igt@gem_exec_fair@basic-none-share@rcs0.html [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk8/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-pace-solo@rcs0: - shard-apl: [FAIL][148] ([i915#2842]) -> [PASS][149] [148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-apl3/igt@gem_exec_fair@basic-pace-solo@rcs0.html [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl2/igt@gem_exec_fair@basic-pace-solo@rcs0.html * igt@gem_exec_fair@basic-pace@rcs0: - shard-kbl: [FAIL][150] ([i915#2842]) -> [PASS][151] +1 similar issue [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl6/igt@gem_exec_fair@basic-pace@rcs0.html [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@gem_exec_fair@basic-pace@rcs0.html * igt@gem_exec_fair@basic-pace@vcs1: - shard-kbl: [SKIP][152] ([fdo#109271]) -> [PASS][153] [152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl6/igt@gem_exec_fair@basic-pace@vcs1.html [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@gem_exec_fair@basic-pace@vcs1.html * igt@gem_exec_reloc@basic-write-read: - {shard-rkl}: [SKIP][154] ([i915#3281]) -> [PASS][155] +9 similar issues [154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@gem_exec_reloc@basic-write-read.html [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-5/igt@gem_exec_reloc@basic-write-read.html * igt@gem_huc_copy@huc-copy: - shard-tglb: [SKIP][156] ([i915#2190]) -> [PASS][157] [156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-tglb7/igt@gem_huc_copy@huc-copy.html [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-tglb3/igt@gem_huc_copy@huc-copy.html * igt@gem_ppgtt@flink-and-close-vma-leak: - shard-glk: [FAIL][158] ([i915#644]) -> [PASS][159] [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk7/igt@gem_ppgtt@flink-and-close-vma-leak.html * igt@gem_pwrite@basic-self: - {shard-rkl}: [SKIP][160] ([i915#3282]) -> [PASS][161] +2 similar issues [160]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@gem_pwrite@basic-self.html [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-5/igt@gem_pwrite@basic-self.html * igt@gem_workarounds@suspend-resume: - shard-kbl: [DMESG-WARN][162] ([i915#180]) -> [PASS][163] +1 similar issue [162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl6/igt@gem_workarounds@suspend-resume.html [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@gem_workarounds@suspend-resume.html * igt@gen9_exec_parse@bb-start-far: - {shard-rkl}: [SKIP][164] ([i915#2527]) -> [PASS][165] +1 similar issue [164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-6/igt@gen9_exec_parse@bb-start-far.html [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-5/igt@gen9_exec_parse@bb-start-far.html * igt@i915_pm_rpm@fences: - {shard-rkl}: [SKIP][166] ([i915#1849]) -> [PASS][167] [166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-5/igt@i915_pm_rpm@fences.html [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@i915_pm_rpm@fences.html * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc: - {shard-rkl}: [SKIP][168] ([i915#1845] / [i915#4098]) -> [PASS][169] +12 similar issues [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-1/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs: - shard-glk: [FAIL][170] ([i915#1888]) -> [PASS][171] [170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk6/igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs.html [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk7/igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs.html * igt@kms_draw_crc@draw-method-rgb565-blt-ytiled: - {shard-dg1}: [FAIL][172] -> [PASS][173] [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-dg1-15/igt@kms_draw_crc@draw-method-rgb565-blt-ytiled.html [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-dg1-16/igt@kms_draw_crc@draw-method-rgb565-blt-ytiled.html * igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-untiled: - {shard-rkl}: [SKIP][174] ([fdo#111314] / [i915#4098] / [i915#4369]) -> [PASS][175] +1 similar issue [174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-untiled.html [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-untiled.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-apl: [FAIL][176] ([i915#4767]) -> [PASS][177] [176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-apl1/igt@kms_fbcon_fbt@fbc-suspend.html [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl2/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@2x-flip-vs-expired-vblank@bc-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][178] ([i915#79]) -> [PASS][179] [178]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk3/igt@kms_flip@2x-flip-vs-expired-vblank@bc-hdmi-a1-hdmi-a2.html [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank@bc-hdmi-a1-hdmi-a2.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2: - shard-glk: [FAIL][180] ([i915#2122]) -> [PASS][181] [180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk7/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling: - {shard-rkl}: [SKIP][182] ([i915#3701]) -> [PASS][183] [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling: - shard-iclb: [SKIP][184] ([i915#3701]) -> [PASS][185] +1 similar issue [184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render: - {shard-rkl}: [SKIP][186] ([i915#1849] / [i915#4098]) -> [PASS][187] +7 similar issues [186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-slowdraw: - shard-iclb: [FAIL][188] ([i915#1888] / [i915#2546]) -> [PASS][189] [188]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-mid: - {shard-rkl}: [SKIP][190] ([i915#1849] / [i915#4070] / [i915#4098]) -> [PASS][191] +1 similar issue [190]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-mid.html [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-mid.html * igt@kms_plane_scaling@planes-upscale-20x20@pipe-d-hdmi-a-1: - {shard-dg1}: [SKIP][192] -> [PASS][193] +4 similar issues [192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-dg1-15/igt@kms_plane_scaling@planes-upscale-20x20@pipe-d-hdmi-a-1.html [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-dg1-19/igt@kms_plane_scaling@planes-upscale-20x20@pipe-d-hdmi-a-1.html * igt@kms_psr2_su@page_flip-xrgb8888: - shard-iclb: [SKIP][194] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][195] [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb3/igt@kms_psr2_su@page_flip-xrgb8888.html [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@kms_psr2_su@page_flip-xrgb8888.html * igt@kms_psr@cursor_mmap_cpu: - {shard-rkl}: [SKIP][196] ([i915#1072]) -> [PASS][197] +1 similar issue [196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-2/igt@kms_psr@cursor_mmap_cpu.html [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-6/igt@kms_psr@cursor_mmap_cpu.html * igt@kms_psr@psr2_sprite_blt: - shard-iclb: [SKIP][198] ([fdo#109441]) -> [PASS][199] [198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb8/igt@kms_psr@psr2_sprite_blt.html [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html * igt@kms_vblank@pipe-b-ts-continuation-suspend: - shard-apl: [DMESG-WARN][200] ([i915#180]) -> [PASS][201] +3 similar issues [200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-apl2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-apl8/igt@kms_vblank@pipe-b-ts-continuation-suspend.html * igt@perf@polling: - {shard-rkl}: [FAIL][202] ([i915#5639]) -> [PASS][203] [202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-rkl-1/igt@perf@polling.html [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-rkl-1/igt@perf@polling.html * igt@perf@stress-open-close: - shard-glk: [INCOMPLETE][204] ([i915#5213]) -> [PASS][205] [204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-glk9/igt@perf@stress-open-close.html [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-glk9/igt@perf@stress-open-close.html #### Warnings #### * igt@i915_pm_dc@dc3co-vpb-simulation: - shard-iclb: [SKIP][206] ([i915#658]) -> [SKIP][207] ([i915#588]) [206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb3/igt@i915_pm_dc@dc3co-vpb-simulation.html [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-kbl: [INCOMPLETE][208] ([i915#180] / [i915#4939]) -> [FAIL][209] ([i915#4767]) [208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl4/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area: - shard-iclb: [SKIP][210] ([i915#2920]) -> [SKIP][211] ([fdo#111068] / [i915#658]) +1 similar issue [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-iclb5/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html * igt@runner@aborted: - shard-kbl: ([FAIL][212], [FAIL][213], [FAIL][214], [FAIL][215], [FAIL][216], [FAIL][217], [FAIL][218], [FAIL][219]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#92]) -> ([FAIL][220], [FAIL][221], [FAIL][222], [FAIL][223], [FAIL][224], [FAIL][225], [FAIL][226], [FAIL][227], [FAIL][228], [FAIL][229]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#716]) [212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl6/igt@runner@aborted.html [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl1/igt@runner@aborted.html [214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl1/igt@runner@aborted.html [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl1/igt@runner@aborted.html [216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl6/igt@runner@aborted.html [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl7/igt@runner@aborted.html [218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl7/igt@runner@aborted.html [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11837/shard-kbl6/igt@runner@aborted.html [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl7/igt@runner@aborted.html [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@runner@aborted.html [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl6/igt@runner@aborted.html [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@runner@aborted.html [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@runner@aborted.html [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl4/igt@runner@aborted.html [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl6/igt@runner@aborted.html [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl6/igt@runner@aborted.html [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl1/igt@runner@aborted.html [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/shard-kbl6/igt@runner@aborted.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303 [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307 [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308 [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283 [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099 [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155 [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188 [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755 [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888 [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2232]: https://gitlab.freedesktop.org/drm/intel/issues/2232 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530 [i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012 [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3701]: https://gitlab.freedesktop.org/drm/intel/issues/3701 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734 [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742 [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804 [i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921 [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936 [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938 [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#4032]: https://gitlab.freedesktop.org/drm/intel/issues/4032 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4278]: https://gitlab.freedesktop.org/drm/intel/issues/4278 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369 [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387 [i915#4462]: https://gitlab.freedesktop.org/drm/intel/issues/4462 [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494 [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767 [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771 [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812 [i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818 [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#4853]: https://gitlab.freedesktop.org/drm/intel/issues/4853 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4874]: https://gitlab.freedesktop.org/drm/intel/issues/4874 [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879 [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880 [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881 [i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883 [i915#4893]: https://gitlab.freedesktop.org/drm/intel/issues/4893 [i915#4911]: https://gitlab.freedesktop.org/drm/intel/issues/4911 [i915#4939]: https://gitlab.freedesktop.org/drm/intel/issues/4939 [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957 [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958 [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991 [i915#5030]: https://gitlab.freedesktop.org/drm/intel/issues/5030 [i915#5072]: https://gitlab.freedesktop.org/drm/intel/issues/5072 [i915#5099]: https://gitlab.freedesktop.org/drm/intel/issues/5099 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287 [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439 [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461 [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639 [i915#5721]: https://gitlab.freedesktop.org/drm/intel/issues/5721 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588 [i915#6076]: https://gitlab.freedesktop.org/drm/intel/issues/6076 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6140]: https://gitlab.freedesktop.org/drm/intel/issues/6140 [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227 [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230 [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248 [i915#6251]: https://gitlab.freedesktop.org/drm/intel/issues/6251 [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252 [i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258 [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268 [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301 [i915#6310]: https://gitlab.freedesktop.org/drm/intel/issues/6310 [i915#6331]: https://gitlab.freedesktop.org/drm/intel/issues/6331 [i915#6336]: https://gitlab.freedesktop.org/drm/intel/issues/6336 [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6553 -> IGTPW_7448 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_11837: e19040cd831f5ac1c94bb265ebd846c94f6fed80 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_7448: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html IGT_6553: 3cf110f8dcd1f4f02cf84339664b413abdaebf7d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7448/index.html [-- Attachment #2: Type: text/html, Size: 88910 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem ` (5 preceding siblings ...) 2022-07-01 21:57 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork @ 2022-07-04 6:47 ` Sharma, Swati2 6 siblings, 0 replies; 17+ messages in thread From: Sharma, Swati2 @ 2022-07-04 6:47 UTC (permalink / raw) To: Bhanuprakash Modem, igt-dev, kamil.konieczny LGTM Reviewed-by: Swati Sharma <swati2.sharma@intel.com> On 30-Jun-22 2:25 PM, Bhanuprakash Modem wrote: > Convert all possible subtests to dynamic and sanitize the system > state before starting/exiting the subtest. > > Bhanuprakash Modem (2): > tests/kms_color: Convert tests to dynamic > tests/kms_color: Test Cleanup > > tests/kms_color.c | 622 +++++++++++++++++++++------------------ > tests/kms_color_helper.h | 2 + > 2 files changed, 341 insertions(+), 283 deletions(-) > > -- > 2.35.1 > -- ~Swati Sharma ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [i-g-t 1/2] tests/kms_color: Convert tests to dynamic @ 2022-06-10 9:00 Bhanuprakash Modem 2022-06-28 13:13 ` [igt-dev] [i-g-t V7 " Bhanuprakash Modem 0 siblings, 1 reply; 17+ messages in thread From: Bhanuprakash Modem @ 2022-06-10 9:00 UTC (permalink / raw) To: igt-dev, swati2.sharma Convert the existing subtests to dynamic subtests at pipe level. V2: * Fix nested igt_fixture in igt_subtest V3: * Fix to not dereferencing a NULL pointer V4: * Add output name to subtest V5: * Rebase Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/kms_color.c | 548 +++++++++++++++++++++------------------ tests/kms_color_helper.h | 1 + 2 files changed, 290 insertions(+), 259 deletions(-) diff --git a/tests/kms_color.c b/tests/kms_color.c index ba06947b..88cc0063 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -203,7 +203,7 @@ static bool test_pipe_gamma(data_t *data, * gamma LUT and verify we have the same CRC as drawing solid color rectangles * with linear legacy gamma LUT. */ -static void test_pipe_legacy_gamma(data_t *data, +static bool test_pipe_legacy_gamma(data_t *data, igt_plane_t *primary) { igt_output_t *output; @@ -220,6 +220,7 @@ static void test_pipe_legacy_gamma(data_t *data, struct igt_fb fb_modeset, fb; igt_crc_t crc_fullgamma, crc_fullcolors; int fb_id, fb_modeset_id; + bool ret; kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); legacy_lut_size = kms_crtc->gamma_size; @@ -285,7 +286,7 @@ static void test_pipe_legacy_gamma(data_t *data, /* Verify that the CRC of the software computed output is * equal to the CRC of the gamma LUT transformation output. */ - igt_assert_crc_equal(&crc_fullgamma, &crc_fullcolors); + ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); /* Reset output. */ for (i = 1; i < legacy_lut_size; i++) @@ -303,13 +304,15 @@ static void test_pipe_legacy_gamma(data_t *data, free(red_lut); free(green_lut); free(blue_lut); + + return ret; } /* * Verify that setting the legacy gamma LUT resets the gamma LUT set * through the GAMMA_LUT property. */ -static void test_pipe_legacy_gamma_reset(data_t *data, +static bool test_pipe_legacy_gamma_reset(data_t *data, igt_plane_t *primary) { const double ctm_identity[] = { @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, struct drm_color_lut *lut; drmModePropertyBlobPtr blob; igt_output_t *output; + bool ret = true; igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, data->gamma_lut_size)); lut = (struct drm_color_lut *) blob->data; for (i = 0; i < data->gamma_lut_size; i++) - igt_assert(lut[i].red == 0 && + ret &=(lut[i].red == 0 && lut[i].green == 0 && lut[i].blue == 0); drmModeFreePropertyBlob(blob); + if(!ret) + goto end; /* Set a gamma LUT using the legacy ioctl and verify * the content of the GAMMA_LUT property is changed @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, legacy_lut_size)); lut = (struct drm_color_lut *) blob->data; for (i = 0; i < legacy_lut_size; i++) - igt_assert(lut[i].red == 0xffff && + ret &= (lut[i].red == 0xffff && lut[i].green == 0xffff && lut[i].blue == 0xffff); drmModeFreePropertyBlob(blob); @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, free_lut(degamma_linear); free_lut(gamma_zero); +end: + return ret; } /* @@ -677,130 +685,91 @@ prep_pipe(data_t *data, enum pipe p) } } -static void -run_tests_for_pipe(data_t *data, enum pipe p) +static void test_setup(data_t *data, enum pipe p) { igt_pipe_t *pipe; - igt_plane_t *primary; - double delta; - int i; - color_t red_green_blue[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - igt_fixture { - prep_pipe(data, p); + prep_pipe(data, p); + igt_require_pipe_crc(data->drm_fd); - igt_require_pipe_crc(data->drm_fd); + pipe = &data->display.pipes[p]; + igt_require(pipe->n_planes >= 0); - pipe = &data->display.pipes[p]; - igt_require(pipe->n_planes >= 0); + data->primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); + data->pipe_crc = igt_pipe_crc_new(data->drm_fd, + data->primary->pipe->pipe, + INTEL_PIPE_CRC_SOURCE_AUTO); - primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); + igt_display_require_output_on_pipe(&data->display, p); + data->output = igt_get_single_output_for_pipe(&data->display, p); + igt_require(data->output); +} - data->pipe_crc = igt_pipe_crc_new(data->drm_fd, - primary->pipe->pipe, - INTEL_PIPE_CRC_SOURCE_AUTO); +static void test_cleanup(data_t *data) +{ + igt_plane_t *primary = data->primary; - igt_display_require_output_on_pipe(&data->display, p); - data->output = igt_get_single_output_for_pipe(&data->display, p); - igt_require(data->output); - } + disable_degamma(primary->pipe); + disable_gamma(primary->pipe); + disable_ctm(primary->pipe); + igt_display_commit(&data->display); + + igt_pipe_crc_free(data->pipe_crc); + data->pipe_crc = NULL; +} + +static void +run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, + bool (*test_t)(data_t*, igt_plane_t*)) +{ + test_setup(data, p); /* We assume an 8bits depth per color for degamma/gamma LUTs * for CRC checks with framebuffer references. */ data->color_depth = 8; - delta = 1.0 / (1 << data->color_depth); data->drm_format = DRM_FORMAT_XRGB8888; - igt_describe("Check the color transformation from red to blue"); - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) { - color_t blue_green_blue[] = { - { 0.0, 0.0, 1.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 0.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 1.0, 0.0, 1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - blue_green_blue, ctm)); - } + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) + igt_assert(test_t(data, data->primary)); - igt_describe("Check the color transformation from green to red"); - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) { - color_t red_red_blue[] = { - { 1.0, 0.0, 0.0 }, - { 1.0, 0.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 1.0, 1.0, 0.0, - 0.0, 0.0, 0.0, - 0.0, 0.0, 1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - red_red_blue, ctm)); - } + test_cleanup(data); +} - igt_describe("Check the color transformation from blue to red"); - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) { - color_t red_green_red[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 1.0, 0.0, 0.0 } - }; - double ctm[] = { 1.0, 0.0, 1.0, - 0.0, 1.0, 0.0, - 0.0, 0.0, 0.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - red_green_red, ctm)); - } +static void +run_ctm_tests_for_pipe(data_t *data, enum pipe p, + color_t *expected_colors, + double *ctm, + int iter) +{ + double delta; + color_t red_green_blue[] = { + { 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; - /* We tests a few values around the expected result because - * the it depends on the hardware we're dealing with, we can - * either get clamped or rounded values and we also need to - * account for odd number of items in the LUTs. */ - igt_describe("Check the color transformation for 0.25 transparency"); - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.25, 0.0, 0.0, - 0.0, 0.25, 0.0, - 0.0, 0.0, 0.25 }; - bool success = false; + test_setup(data, p); - for (i = 0; i < 5; i++) { - expected_colors[0].r = - expected_colors[1].g = - expected_colors[2].b = - 0.25 + delta * (i - 2); - if (test_pipe_ctm(data, primary, red_green_blue, - expected_colors, ctm)) { - success = true; - break; - } - } - igt_assert(success); - } + /* We assume an 8bits depth per color for degamma/gamma LUTs + * for CRC checks with framebuffer references. */ + data->color_depth = 8; + delta = 1.0 / (1 << data->color_depth); + data->drm_format = DRM_FORMAT_XRGB8888; - igt_describe("Check the color transformation for 0.5 transparency"); - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.5, 0.0, 0.0, - 0.0, 0.5, 0.0, - 0.0, 0.0, 0.5 }; + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { bool success = false; + int i; + + if (!iter) + success = test_pipe_ctm(data, data->primary, red_green_blue, + expected_colors, ctm); - for (i = 0; i < 5; i++) { + for (i = 0; i < iter; i++) { expected_colors[0].r = expected_colors[1].g = expected_colors[2].b = 0.5 + delta * (i - 2); - if (test_pipe_ctm(data, primary, red_green_blue, + if (test_pipe_ctm(data, data->primary, red_green_blue, expected_colors, ctm)) { success = true; break; @@ -809,186 +778,249 @@ run_tests_for_pipe(data_t *data, enum pipe p) igt_assert(success); } - igt_describe("Check the color transformation for 0.75 transparency"); - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.75, 0.0, 0.0, - 0.0, 0.75, 0.0, - 0.0, 0.0, 0.75 }; - bool success = false; - - for (i = 0; i < 7; i++) { - expected_colors[0].r = - expected_colors[1].g = - expected_colors[2].b = - 0.75 + delta * (i - 3); - if (test_pipe_ctm(data, primary, red_green_blue, - expected_colors, ctm)) { - success = true; - break; - } - } - igt_assert(success); - } + test_cleanup(data); +} - igt_describe("Check the color transformation for maximum transparency"); - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) { - color_t full_rgb[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 100.0, 0.0, 0.0, - 0.0, 100.0, 0.0, - 0.0, 0.0, 100.0 }; - - /* CherryView generates values on 10bits that we - * produce with an 8 bits per color framebuffer. */ - igt_require(!IS_CHERRYVIEW(data->devid)); - - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - full_rgb, ctm)); - } +static void +run_deep_color_tests_for_pipe(data_t *data, enum pipe p) +{ + igt_output_t *output; + color_t blue_green_blue[] = { + { 0.0, 0.0, 1.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; + color_t red_green_blue[] = { + { 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; + double ctm[] = { 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 1.0, 0.0, 1.0 }; - igt_describe("Check the color transformation for negative transparency"); - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) { - color_t all_black[] = { - { 0.0, 0.0, 0.0 }, - { 0.0, 0.0, 0.0 }, - { 0.0, 0.0, 0.0 } - }; - double ctm[] = { -1.0, 0.0, 0.0, - 0.0, -1.0, 0.0, - 0.0, 0.0, -1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - all_black, ctm)); - } + if (is_i915_device(data->drm_fd)) + igt_require_f((intel_display_ver(data->devid) >= 11), + "At least GEN 11 is required to validate Deep-color.\n"); -#if 0 - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p)) - test_pipe_limited_range_ctm(data, primary); -#endif + test_setup(data, p); - igt_describe("Verify that degamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p)) - igt_assert(test_pipe_degamma(data, primary)); + for_each_valid_output_on_pipe(&data->display, p, output) { + uint64_t max_bpc = get_max_bpc(output); + bool ret; - igt_describe("Verify that gamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p)) - igt_assert(test_pipe_gamma(data, primary)); + if (!max_bpc) + continue; - igt_describe("Verify that legacy gamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p)) - test_pipe_legacy_gamma(data, primary); + if (!panel_supports_deep_color(data->drm_fd, output->name)) + continue; - igt_describe("Verify that setting the legacy gamma LUT resets the gamma LUT set through " - "GAMMA_LUT property"); - igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p)) - test_pipe_legacy_gamma_reset(data, primary); + data->color_depth = 10; + data->drm_format = DRM_FORMAT_XRGB2101010; + data->output = output; + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); + igt_output_set_pipe(output, p); + igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - igt_fixture - igt_require(data->display.is_atomic); + if (is_i915_device(data->drm_fd) && + !i915_clock_constraint(data, p, 10)) + continue; - igt_describe("Verify that deep color works correctly"); - igt_subtest_with_dynamic_f("pipe-%s-deep-color", kmstest_pipe_name(p)) { - igt_output_t *output; - color_t blue_green_blue[] = { - { 0.0, 0.0, 1.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 0.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 1.0, 0.0, 1.0 }; - - if (is_i915_device(data->drm_fd)) - igt_require_f((intel_display_ver(data->devid) >= 11), - "At least GEN 11 is required to validate Deep-color.\n"); - - for_each_valid_output_on_pipe(&data->display, p, output) { - uint64_t max_bpc = get_max_bpc(output); - bool ret; - - if (!max_bpc) - continue; - - if (!panel_supports_deep_color(data->drm_fd, output->name)) - continue; - - data->color_depth = 10; - data->drm_format = DRM_FORMAT_XRGB2101010; - data->output = output; - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); - igt_output_set_pipe(output, p); - igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - - if (is_i915_device(data->drm_fd) && - !i915_clock_constraint(data, p, 10)) - continue; - - igt_dynamic_f("gamma-%s", output->name) { - ret = test_pipe_gamma(data, primary); - - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { + ret = test_pipe_gamma(data, data->primary); - igt_dynamic_f("degamma-%s", output->name) { - ret = test_pipe_degamma(data, primary); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); + } - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { + ret = test_pipe_degamma(data, data->primary); - igt_dynamic_f("ctm-%s", output->name) { - ret = test_pipe_ctm(data, primary, - red_green_blue, - blue_green_blue, ctm); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); + } - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { + ret = test_pipe_ctm(data, data->primary, + red_green_blue, + blue_green_blue, ctm); - break; + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); } + + break; } - igt_fixture { - disable_degamma(primary->pipe); - disable_gamma(primary->pipe); - disable_ctm(primary->pipe); - igt_display_commit(&data->display); + test_cleanup(data); +} + +static void +run_invalid_tests_for_pipe(data_t *data) +{ + enum pipe pipe; + struct { + const char *name; + void (*test_t) (data_t *data, enum pipe pipe); + const char *desc; + } tests[] = { + { "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes, + "Negative check for invalid gamma lut sizes" }, + + { "invalid-degamma-lut-sizes", invalid_degamma_lut_sizes, + "Negative check for invalid degamma lut sizes" }, + + { "invalid-ctm-matrix-sizes", invalid_ctm_matrix_sizes, + "Negative check for color tranformation matrix sizes" }, + }; + int i; - igt_pipe_crc_free(data->pipe_crc); - data->pipe_crc = NULL; + for (i = 0; i < ARRAY_SIZE(tests); i++) { + igt_describe_f("%s", tests[i].desc); + igt_subtest_with_dynamic_f("%s", tests[i].name) { + for_each_pipe(&data->display, pipe) { + prep_pipe(data, pipe); + + igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) + tests[i].test_t(data, pipe); + } + } } } static void -run_invalid_tests_for_pipe(data_t *data, enum pipe p) +run_tests_for_pipe(data_t *data) { - igt_fixture - prep_pipe(data, p); + enum pipe pipe; + struct { + const char *name; + bool (*test_t)(data_t*, igt_plane_t*); + const char *desc; + } gamma_degamma_tests[] = { + { "degamma", test_pipe_degamma, + "Verify that degamma LUT transformation works correctly" }, + + { "gamma", test_pipe_gamma, + "Verify that gamma LUT transformation works correctly" }, + + { "legacy-gamma", test_pipe_legacy_gamma, + "Verify that legacy gamma LUT transformation works correctly" }, + + { "legacy-gamma-reset", test_pipe_legacy_gamma_reset, + "Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property" }, + }; + struct { + const char *name; + int iter; + color_t colors[3]; + double ctm[9]; + const char *desc; + } ctm_tests[] = { + { "ctm-red-to-blue", 0, + {{ 0.0, 0.0, 1.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 1.0, 0.0, 1.0 }, + "Check the color transformation from red to blue" + }, + { "ctm-green-to-red", 0, + {{ 1.0, 0.0, 0.0 }, + { 1.0, 0.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 1.0, 1.0, 0.0, + 0.0, 0.0, 0.0, + 0.0, 0.0, 1.0 }, + "Check the color transformation from green to red" + }, + { "ctm-blue-to-red", 0, + {{ 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 1.0, 0.0, 0.0 }}, + { 1.0, 0.0, 1.0, + 0.0, 1.0, 0.0, + 0.0, 0.0, 0.0 }, + "Check the color transformation from blue to red" + }, + { "ctm-max", 0, + {{ 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 100.0, 0.0, 0.0, + 0.0, 100.0, 0.0, + 0.0, 0.0, 100.0 }, + "Check the color transformation for maximum transparency" + }, + { "ctm-negative", 0, + {{ 0.0, 0.0, 0.0 }, + { 0.0, 0.0, 0.0 }, + { 0.0, 0.0, 0.0 }}, + { -1.0, 0.0, 0.0, + 0.0, -1.0, 0.0, + 0.0, 0.0, -1.0 }, + "Check the color transformation for negative transparency" + }, + { "ctm-0-25", 5, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.25, 0.0, 0.0, + 0.0, 0.25, 0.0, + 0.0, 0.0, 0.25 }, + "Check the color transformation for 0.5 transparency" + }, + { "ctm-0-50", 5, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.5, 0.0, 0.0, + 0.0, 0.5, 0.0, + 0.0, 0.0, 0.5 }, + "Check the color transformation for 0.5 transparency" + }, + { "ctm-0-75", 7, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.75, 0.0, 0.0, + 0.0, 0.75, 0.0, + 0.0, 0.0, 0.75 }, + "Check the color transformation for 0.5 transparency" + }, + }; + int i; + + for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) { + igt_describe_f("%s", gamma_degamma_tests[i].desc); + igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) { + for_each_pipe(&data->display, pipe) { + run_gamma_degamma_tests_for_pipe(data, pipe, + gamma_degamma_tests[i].test_t); + } + } + } - igt_describe("Negative check for invalid gamma lut sizes"); - igt_subtest_f("pipe-%s-invalid-gamma-lut-sizes", kmstest_pipe_name(p)) - invalid_gamma_lut_sizes(data, p); + for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) { + igt_describe_f("%s", ctm_tests[i].desc); + igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) { + for_each_pipe(&data->display, pipe) { + run_ctm_tests_for_pipe(data, pipe, + ctm_tests[i].colors, + ctm_tests[i].ctm, + ctm_tests[i].iter); + } + } + } - igt_describe("Negative check for invalid degamma lut sizes"); - igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p)) - invalid_degamma_lut_sizes(data, p); + igt_fixture + igt_require(data->display.is_atomic); - igt_describe("Negative check for color tranformation matrix sizes"); - igt_subtest_f("pipe-%s-invalid-ctm-matrix-sizes", kmstest_pipe_name(p)) - invalid_ctm_matrix_sizes(data, p); + igt_describe("Verify that deep color works correctly"); + igt_subtest_with_dynamic("deep-color") { + for_each_pipe(&data->display, pipe) { + run_deep_color_tests_for_pipe(data, pipe); + } + } } igt_main { data_t data = {}; - enum pipe pipe; igt_fixture { data.drm_fd = drm_open_driver_master(DRIVER_ANY); @@ -999,13 +1031,11 @@ igt_main igt_display_require(&data.display, data.drm_fd); } - for_each_pipe_static(pipe) { - igt_subtest_group - run_tests_for_pipe(&data, pipe); + igt_subtest_group + run_tests_for_pipe(&data); - igt_subtest_group - run_invalid_tests_for_pipe(&data, pipe); - } + igt_subtest_group + run_invalid_tests_for_pipe(&data); igt_fixture { igt_display_fini(&data.display); diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h index cc07f5ee..2ea15bcd 100644 --- a/tests/kms_color_helper.h +++ b/tests/kms_color_helper.h @@ -50,6 +50,7 @@ typedef struct { igt_display_t display; igt_pipe_crc_t *pipe_crc; igt_output_t *output; + igt_plane_t *primary; uint32_t drm_format; uint32_t color_depth; -- 2.35.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic 2022-06-10 9:00 [igt-dev] [i-g-t 1/2] tests/kms_color: Convert tests to dynamic Bhanuprakash Modem @ 2022-06-28 13:13 ` Bhanuprakash Modem 2022-06-29 5:59 ` Kamil Konieczny 0 siblings, 1 reply; 17+ messages in thread From: Bhanuprakash Modem @ 2022-06-28 13:13 UTC (permalink / raw) To: igt-dev, swati2.sharma Convert the existing subtests to dynamic subtests at pipe level. V2: * Fix nested igt_fixture in igt_subtest V3: * Fix to not dereferencing a NULL pointer V4: * Add output name to subtest V5: * Rebase V6: * Fix typos in test description Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/kms_color.c | 548 +++++++++++++++++++++------------------ tests/kms_color_helper.h | 1 + 2 files changed, 290 insertions(+), 259 deletions(-) diff --git a/tests/kms_color.c b/tests/kms_color.c index ba06947b..3629ae44 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -203,7 +203,7 @@ static bool test_pipe_gamma(data_t *data, * gamma LUT and verify we have the same CRC as drawing solid color rectangles * with linear legacy gamma LUT. */ -static void test_pipe_legacy_gamma(data_t *data, +static bool test_pipe_legacy_gamma(data_t *data, igt_plane_t *primary) { igt_output_t *output; @@ -220,6 +220,7 @@ static void test_pipe_legacy_gamma(data_t *data, struct igt_fb fb_modeset, fb; igt_crc_t crc_fullgamma, crc_fullcolors; int fb_id, fb_modeset_id; + bool ret; kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); legacy_lut_size = kms_crtc->gamma_size; @@ -285,7 +286,7 @@ static void test_pipe_legacy_gamma(data_t *data, /* Verify that the CRC of the software computed output is * equal to the CRC of the gamma LUT transformation output. */ - igt_assert_crc_equal(&crc_fullgamma, &crc_fullcolors); + ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); /* Reset output. */ for (i = 1; i < legacy_lut_size; i++) @@ -303,13 +304,15 @@ static void test_pipe_legacy_gamma(data_t *data, free(red_lut); free(green_lut); free(blue_lut); + + return ret; } /* * Verify that setting the legacy gamma LUT resets the gamma LUT set * through the GAMMA_LUT property. */ -static void test_pipe_legacy_gamma_reset(data_t *data, +static bool test_pipe_legacy_gamma_reset(data_t *data, igt_plane_t *primary) { const double ctm_identity[] = { @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, struct drm_color_lut *lut; drmModePropertyBlobPtr blob; igt_output_t *output; + bool ret = true; igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, data->gamma_lut_size)); lut = (struct drm_color_lut *) blob->data; for (i = 0; i < data->gamma_lut_size; i++) - igt_assert(lut[i].red == 0 && + ret &=(lut[i].red == 0 && lut[i].green == 0 && lut[i].blue == 0); drmModeFreePropertyBlob(blob); + if(!ret) + goto end; /* Set a gamma LUT using the legacy ioctl and verify * the content of the GAMMA_LUT property is changed @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, legacy_lut_size)); lut = (struct drm_color_lut *) blob->data; for (i = 0; i < legacy_lut_size; i++) - igt_assert(lut[i].red == 0xffff && + ret &= (lut[i].red == 0xffff && lut[i].green == 0xffff && lut[i].blue == 0xffff); drmModeFreePropertyBlob(blob); @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, free_lut(degamma_linear); free_lut(gamma_zero); +end: + return ret; } /* @@ -677,130 +685,91 @@ prep_pipe(data_t *data, enum pipe p) } } -static void -run_tests_for_pipe(data_t *data, enum pipe p) +static void test_setup(data_t *data, enum pipe p) { igt_pipe_t *pipe; - igt_plane_t *primary; - double delta; - int i; - color_t red_green_blue[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - igt_fixture { - prep_pipe(data, p); + prep_pipe(data, p); + igt_require_pipe_crc(data->drm_fd); - igt_require_pipe_crc(data->drm_fd); + pipe = &data->display.pipes[p]; + igt_require(pipe->n_planes >= 0); - pipe = &data->display.pipes[p]; - igt_require(pipe->n_planes >= 0); + data->primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); + data->pipe_crc = igt_pipe_crc_new(data->drm_fd, + data->primary->pipe->pipe, + INTEL_PIPE_CRC_SOURCE_AUTO); - primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); + igt_display_require_output_on_pipe(&data->display, p); + data->output = igt_get_single_output_for_pipe(&data->display, p); + igt_require(data->output); +} - data->pipe_crc = igt_pipe_crc_new(data->drm_fd, - primary->pipe->pipe, - INTEL_PIPE_CRC_SOURCE_AUTO); +static void test_cleanup(data_t *data) +{ + igt_plane_t *primary = data->primary; - igt_display_require_output_on_pipe(&data->display, p); - data->output = igt_get_single_output_for_pipe(&data->display, p); - igt_require(data->output); - } + disable_degamma(primary->pipe); + disable_gamma(primary->pipe); + disable_ctm(primary->pipe); + igt_display_commit(&data->display); + + igt_pipe_crc_free(data->pipe_crc); + data->pipe_crc = NULL; +} + +static void +run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, + bool (*test_t)(data_t*, igt_plane_t*)) +{ + test_setup(data, p); /* We assume an 8bits depth per color for degamma/gamma LUTs * for CRC checks with framebuffer references. */ data->color_depth = 8; - delta = 1.0 / (1 << data->color_depth); data->drm_format = DRM_FORMAT_XRGB8888; - igt_describe("Check the color transformation from red to blue"); - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) { - color_t blue_green_blue[] = { - { 0.0, 0.0, 1.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 0.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 1.0, 0.0, 1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - blue_green_blue, ctm)); - } + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) + igt_assert(test_t(data, data->primary)); - igt_describe("Check the color transformation from green to red"); - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) { - color_t red_red_blue[] = { - { 1.0, 0.0, 0.0 }, - { 1.0, 0.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 1.0, 1.0, 0.0, - 0.0, 0.0, 0.0, - 0.0, 0.0, 1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - red_red_blue, ctm)); - } + test_cleanup(data); +} - igt_describe("Check the color transformation from blue to red"); - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) { - color_t red_green_red[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 1.0, 0.0, 0.0 } - }; - double ctm[] = { 1.0, 0.0, 1.0, - 0.0, 1.0, 0.0, - 0.0, 0.0, 0.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - red_green_red, ctm)); - } +static void +run_ctm_tests_for_pipe(data_t *data, enum pipe p, + color_t *expected_colors, + double *ctm, + int iter) +{ + double delta; + color_t red_green_blue[] = { + { 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; - /* We tests a few values around the expected result because - * the it depends on the hardware we're dealing with, we can - * either get clamped or rounded values and we also need to - * account for odd number of items in the LUTs. */ - igt_describe("Check the color transformation for 0.25 transparency"); - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.25, 0.0, 0.0, - 0.0, 0.25, 0.0, - 0.0, 0.0, 0.25 }; - bool success = false; + test_setup(data, p); - for (i = 0; i < 5; i++) { - expected_colors[0].r = - expected_colors[1].g = - expected_colors[2].b = - 0.25 + delta * (i - 2); - if (test_pipe_ctm(data, primary, red_green_blue, - expected_colors, ctm)) { - success = true; - break; - } - } - igt_assert(success); - } + /* We assume an 8bits depth per color for degamma/gamma LUTs + * for CRC checks with framebuffer references. */ + data->color_depth = 8; + delta = 1.0 / (1 << data->color_depth); + data->drm_format = DRM_FORMAT_XRGB8888; - igt_describe("Check the color transformation for 0.5 transparency"); - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.5, 0.0, 0.0, - 0.0, 0.5, 0.0, - 0.0, 0.0, 0.5 }; + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { bool success = false; + int i; + + if (!iter) + success = test_pipe_ctm(data, data->primary, red_green_blue, + expected_colors, ctm); - for (i = 0; i < 5; i++) { + for (i = 0; i < iter; i++) { expected_colors[0].r = expected_colors[1].g = expected_colors[2].b = 0.5 + delta * (i - 2); - if (test_pipe_ctm(data, primary, red_green_blue, + if (test_pipe_ctm(data, data->primary, red_green_blue, expected_colors, ctm)) { success = true; break; @@ -809,186 +778,249 @@ run_tests_for_pipe(data_t *data, enum pipe p) igt_assert(success); } - igt_describe("Check the color transformation for 0.75 transparency"); - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) { - color_t expected_colors[] = { - { 0.0, }, { 0.0, }, { 0.0, } - }; - double ctm[] = { 0.75, 0.0, 0.0, - 0.0, 0.75, 0.0, - 0.0, 0.0, 0.75 }; - bool success = false; - - for (i = 0; i < 7; i++) { - expected_colors[0].r = - expected_colors[1].g = - expected_colors[2].b = - 0.75 + delta * (i - 3); - if (test_pipe_ctm(data, primary, red_green_blue, - expected_colors, ctm)) { - success = true; - break; - } - } - igt_assert(success); - } + test_cleanup(data); +} - igt_describe("Check the color transformation for maximum transparency"); - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) { - color_t full_rgb[] = { - { 1.0, 0.0, 0.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 100.0, 0.0, 0.0, - 0.0, 100.0, 0.0, - 0.0, 0.0, 100.0 }; - - /* CherryView generates values on 10bits that we - * produce with an 8 bits per color framebuffer. */ - igt_require(!IS_CHERRYVIEW(data->devid)); - - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - full_rgb, ctm)); - } +static void +run_deep_color_tests_for_pipe(data_t *data, enum pipe p) +{ + igt_output_t *output; + color_t blue_green_blue[] = { + { 0.0, 0.0, 1.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; + color_t red_green_blue[] = { + { 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 } + }; + double ctm[] = { 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 1.0, 0.0, 1.0 }; - igt_describe("Check the color transformation for negative transparency"); - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) { - color_t all_black[] = { - { 0.0, 0.0, 0.0 }, - { 0.0, 0.0, 0.0 }, - { 0.0, 0.0, 0.0 } - }; - double ctm[] = { -1.0, 0.0, 0.0, - 0.0, -1.0, 0.0, - 0.0, 0.0, -1.0 }; - igt_assert(test_pipe_ctm(data, primary, red_green_blue, - all_black, ctm)); - } + if (is_i915_device(data->drm_fd)) + igt_require_f((intel_display_ver(data->devid) >= 11), + "At least GEN 11 is required to validate Deep-color.\n"); -#if 0 - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p)) - test_pipe_limited_range_ctm(data, primary); -#endif + test_setup(data, p); - igt_describe("Verify that degamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p)) - igt_assert(test_pipe_degamma(data, primary)); + for_each_valid_output_on_pipe(&data->display, p, output) { + uint64_t max_bpc = get_max_bpc(output); + bool ret; - igt_describe("Verify that gamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p)) - igt_assert(test_pipe_gamma(data, primary)); + if (!max_bpc) + continue; - igt_describe("Verify that legacy gamma LUT transformation works correctly"); - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p)) - test_pipe_legacy_gamma(data, primary); + if (!panel_supports_deep_color(data->drm_fd, output->name)) + continue; - igt_describe("Verify that setting the legacy gamma LUT resets the gamma LUT set through " - "GAMMA_LUT property"); - igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p)) - test_pipe_legacy_gamma_reset(data, primary); + data->color_depth = 10; + data->drm_format = DRM_FORMAT_XRGB2101010; + data->output = output; + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); + igt_output_set_pipe(output, p); + igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - igt_fixture - igt_require(data->display.is_atomic); + if (is_i915_device(data->drm_fd) && + !i915_clock_constraint(data, p, 10)) + continue; - igt_describe("Verify that deep color works correctly"); - igt_subtest_with_dynamic_f("pipe-%s-deep-color", kmstest_pipe_name(p)) { - igt_output_t *output; - color_t blue_green_blue[] = { - { 0.0, 0.0, 1.0 }, - { 0.0, 1.0, 0.0 }, - { 0.0, 0.0, 1.0 } - }; - double ctm[] = { 0.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 1.0, 0.0, 1.0 }; - - if (is_i915_device(data->drm_fd)) - igt_require_f((intel_display_ver(data->devid) >= 11), - "At least GEN 11 is required to validate Deep-color.\n"); - - for_each_valid_output_on_pipe(&data->display, p, output) { - uint64_t max_bpc = get_max_bpc(output); - bool ret; - - if (!max_bpc) - continue; - - if (!panel_supports_deep_color(data->drm_fd, output->name)) - continue; - - data->color_depth = 10; - data->drm_format = DRM_FORMAT_XRGB2101010; - data->output = output; - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); - igt_output_set_pipe(output, p); - igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - - if (is_i915_device(data->drm_fd) && - !i915_clock_constraint(data, p, 10)) - continue; - - igt_dynamic_f("gamma-%s", output->name) { - ret = test_pipe_gamma(data, primary); - - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { + ret = test_pipe_gamma(data, data->primary); - igt_dynamic_f("degamma-%s", output->name) { - ret = test_pipe_degamma(data, primary); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); + } - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { + ret = test_pipe_degamma(data, data->primary); - igt_dynamic_f("ctm-%s", output->name) { - ret = test_pipe_ctm(data, primary, - red_green_blue, - blue_green_blue, ctm); + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); + } - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); - igt_assert(ret); - } + igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { + ret = test_pipe_ctm(data, data->primary, + red_green_blue, + blue_green_blue, ctm); - break; + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); + igt_assert(ret); } + + break; } - igt_fixture { - disable_degamma(primary->pipe); - disable_gamma(primary->pipe); - disable_ctm(primary->pipe); - igt_display_commit(&data->display); + test_cleanup(data); +} + +static void +run_invalid_tests_for_pipe(data_t *data) +{ + enum pipe pipe; + struct { + const char *name; + void (*test_t) (data_t *data, enum pipe pipe); + const char *desc; + } tests[] = { + { "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes, + "Negative check for invalid gamma lut sizes" }, + + { "invalid-degamma-lut-sizes", invalid_degamma_lut_sizes, + "Negative check for invalid degamma lut sizes" }, + + { "invalid-ctm-matrix-sizes", invalid_ctm_matrix_sizes, + "Negative check for color tranformation matrix sizes" }, + }; + int i; - igt_pipe_crc_free(data->pipe_crc); - data->pipe_crc = NULL; + for (i = 0; i < ARRAY_SIZE(tests); i++) { + igt_describe_f("%s", tests[i].desc); + igt_subtest_with_dynamic_f("%s", tests[i].name) { + for_each_pipe(&data->display, pipe) { + prep_pipe(data, pipe); + + igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) + tests[i].test_t(data, pipe); + } + } } } static void -run_invalid_tests_for_pipe(data_t *data, enum pipe p) +run_tests_for_pipe(data_t *data) { - igt_fixture - prep_pipe(data, p); + enum pipe pipe; + struct { + const char *name; + bool (*test_t)(data_t*, igt_plane_t*); + const char *desc; + } gamma_degamma_tests[] = { + { "degamma", test_pipe_degamma, + "Verify that degamma LUT transformation works correctly" }, + + { "gamma", test_pipe_gamma, + "Verify that gamma LUT transformation works correctly" }, + + { "legacy-gamma", test_pipe_legacy_gamma, + "Verify that legacy gamma LUT transformation works correctly" }, + + { "legacy-gamma-reset", test_pipe_legacy_gamma_reset, + "Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property" }, + }; + struct { + const char *name; + int iter; + color_t colors[3]; + double ctm[9]; + const char *desc; + } ctm_tests[] = { + { "ctm-red-to-blue", 0, + {{ 0.0, 0.0, 1.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 1.0, 0.0, 1.0 }, + "Check the color transformation from red to blue" + }, + { "ctm-green-to-red", 0, + {{ 1.0, 0.0, 0.0 }, + { 1.0, 0.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 1.0, 1.0, 0.0, + 0.0, 0.0, 0.0, + 0.0, 0.0, 1.0 }, + "Check the color transformation from green to red" + }, + { "ctm-blue-to-red", 0, + {{ 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 1.0, 0.0, 0.0 }}, + { 1.0, 0.0, 1.0, + 0.0, 1.0, 0.0, + 0.0, 0.0, 0.0 }, + "Check the color transformation from blue to red" + }, + { "ctm-max", 0, + {{ 1.0, 0.0, 0.0 }, + { 0.0, 1.0, 0.0 }, + { 0.0, 0.0, 1.0 }}, + { 100.0, 0.0, 0.0, + 0.0, 100.0, 0.0, + 0.0, 0.0, 100.0 }, + "Check the color transformation for maximum transparency" + }, + { "ctm-negative", 0, + {{ 0.0, 0.0, 0.0 }, + { 0.0, 0.0, 0.0 }, + { 0.0, 0.0, 0.0 }}, + { -1.0, 0.0, 0.0, + 0.0, -1.0, 0.0, + 0.0, 0.0, -1.0 }, + "Check the color transformation for negative transparency" + }, + { "ctm-0-25", 5, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.25, 0.0, 0.0, + 0.0, 0.25, 0.0, + 0.0, 0.0, 0.25 }, + "Check the color transformation for 0.25 transparency" + }, + { "ctm-0-50", 5, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.5, 0.0, 0.0, + 0.0, 0.5, 0.0, + 0.0, 0.0, 0.5 }, + "Check the color transformation for 0.5 transparency" + }, + { "ctm-0-75", 7, + {{ 0.0, }, { 0.0, }, { 0.0, }}, + { 0.75, 0.0, 0.0, + 0.0, 0.75, 0.0, + 0.0, 0.0, 0.75 }, + "Check the color transformation for 0.75 transparency" + }, + }; + int i; + + for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) { + igt_describe_f("%s", gamma_degamma_tests[i].desc); + igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) { + for_each_pipe(&data->display, pipe) { + run_gamma_degamma_tests_for_pipe(data, pipe, + gamma_degamma_tests[i].test_t); + } + } + } - igt_describe("Negative check for invalid gamma lut sizes"); - igt_subtest_f("pipe-%s-invalid-gamma-lut-sizes", kmstest_pipe_name(p)) - invalid_gamma_lut_sizes(data, p); + for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) { + igt_describe_f("%s", ctm_tests[i].desc); + igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) { + for_each_pipe(&data->display, pipe) { + run_ctm_tests_for_pipe(data, pipe, + ctm_tests[i].colors, + ctm_tests[i].ctm, + ctm_tests[i].iter); + } + } + } - igt_describe("Negative check for invalid degamma lut sizes"); - igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p)) - invalid_degamma_lut_sizes(data, p); + igt_fixture + igt_require(data->display.is_atomic); - igt_describe("Negative check for color tranformation matrix sizes"); - igt_subtest_f("pipe-%s-invalid-ctm-matrix-sizes", kmstest_pipe_name(p)) - invalid_ctm_matrix_sizes(data, p); + igt_describe("Verify that deep color works correctly"); + igt_subtest_with_dynamic("deep-color") { + for_each_pipe(&data->display, pipe) { + run_deep_color_tests_for_pipe(data, pipe); + } + } } igt_main { data_t data = {}; - enum pipe pipe; igt_fixture { data.drm_fd = drm_open_driver_master(DRIVER_ANY); @@ -999,13 +1031,11 @@ igt_main igt_display_require(&data.display, data.drm_fd); } - for_each_pipe_static(pipe) { - igt_subtest_group - run_tests_for_pipe(&data, pipe); + igt_subtest_group + run_tests_for_pipe(&data); - igt_subtest_group - run_invalid_tests_for_pipe(&data, pipe); - } + igt_subtest_group + run_invalid_tests_for_pipe(&data); igt_fixture { igt_display_fini(&data.display); diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h index cc07f5ee..2ea15bcd 100644 --- a/tests/kms_color_helper.h +++ b/tests/kms_color_helper.h @@ -50,6 +50,7 @@ typedef struct { igt_display_t display; igt_pipe_crc_t *pipe_crc; igt_output_t *output; + igt_plane_t *primary; uint32_t drm_format; uint32_t color_depth; -- 2.35.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic 2022-06-28 13:13 ` [igt-dev] [i-g-t V7 " Bhanuprakash Modem @ 2022-06-29 5:59 ` Kamil Konieczny 2022-06-29 6:33 ` Modem, Bhanuprakash 0 siblings, 1 reply; 17+ messages in thread From: Kamil Konieczny @ 2022-06-29 5:59 UTC (permalink / raw) To: igt-dev Hi Bhanuprakash, On 2022-06-28 at 18:43:40 +0530, Bhanuprakash Modem wrote: > Convert the existing subtests to dynamic subtests at pipe level. > > V2: > * Fix nested igt_fixture in igt_subtest > V3: > * Fix to not dereferencing a NULL pointer > V4: > * Add output name to subtest > V5: > * Rebase > V6: > * Fix typos in test description > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > --- > tests/kms_color.c | 548 +++++++++++++++++++++------------------ > tests/kms_color_helper.h | 1 + > 2 files changed, 290 insertions(+), 259 deletions(-) > > diff --git a/tests/kms_color.c b/tests/kms_color.c > index ba06947b..3629ae44 100644 > --- a/tests/kms_color.c > +++ b/tests/kms_color.c > @@ -203,7 +203,7 @@ static bool test_pipe_gamma(data_t *data, > * gamma LUT and verify we have the same CRC as drawing solid color rectangles > * with linear legacy gamma LUT. > */ > -static void test_pipe_legacy_gamma(data_t *data, > +static bool test_pipe_legacy_gamma(data_t *data, > igt_plane_t *primary) > { > igt_output_t *output; > @@ -220,6 +220,7 @@ static void test_pipe_legacy_gamma(data_t *data, > struct igt_fb fb_modeset, fb; > igt_crc_t crc_fullgamma, crc_fullcolors; > int fb_id, fb_modeset_id; > + bool ret; > > kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); > legacy_lut_size = kms_crtc->gamma_size; > @@ -285,7 +286,7 @@ static void test_pipe_legacy_gamma(data_t *data, > /* Verify that the CRC of the software computed output is > * equal to the CRC of the gamma LUT transformation output. > */ > - igt_assert_crc_equal(&crc_fullgamma, &crc_fullcolors); > + ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); > > /* Reset output. */ > for (i = 1; i < legacy_lut_size; i++) > @@ -303,13 +304,15 @@ static void test_pipe_legacy_gamma(data_t *data, > free(red_lut); > free(green_lut); > free(blue_lut); > + > + return ret; > } > > /* > * Verify that setting the legacy gamma LUT resets the gamma LUT set > * through the GAMMA_LUT property. > */ > -static void test_pipe_legacy_gamma_reset(data_t *data, > +static bool test_pipe_legacy_gamma_reset(data_t *data, > igt_plane_t *primary) > { > const double ctm_identity[] = { > @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > struct drm_color_lut *lut; > drmModePropertyBlobPtr blob; > igt_output_t *output; > + bool ret = true; > > igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); > > @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > data->gamma_lut_size)); > lut = (struct drm_color_lut *) blob->data; > for (i = 0; i < data->gamma_lut_size; i++) > - igt_assert(lut[i].red == 0 && > + ret &=(lut[i].red == 0 && > lut[i].green == 0 && > lut[i].blue == 0); > drmModeFreePropertyBlob(blob); > + if(!ret) > + goto end; > > /* Set a gamma LUT using the legacy ioctl and verify > * the content of the GAMMA_LUT property is changed > @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > legacy_lut_size)); > lut = (struct drm_color_lut *) blob->data; > for (i = 0; i < legacy_lut_size; i++) > - igt_assert(lut[i].red == 0xffff && > + ret &= (lut[i].red == 0xffff && > lut[i].green == 0xffff && > lut[i].blue == 0xffff); > drmModeFreePropertyBlob(blob); > @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, > > free_lut(degamma_linear); > free_lut(gamma_zero); > +end: > + return ret; > } > > /* > @@ -677,130 +685,91 @@ prep_pipe(data_t *data, enum pipe p) > } > } > > -static void > -run_tests_for_pipe(data_t *data, enum pipe p) > +static void test_setup(data_t *data, enum pipe p) > { > igt_pipe_t *pipe; > - igt_plane_t *primary; > - double delta; > - int i; > - color_t red_green_blue[] = { > - { 1.0, 0.0, 0.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > > - igt_fixture { > - prep_pipe(data, p); > + prep_pipe(data, p); > + igt_require_pipe_crc(data->drm_fd); > > - igt_require_pipe_crc(data->drm_fd); > + pipe = &data->display.pipes[p]; > + igt_require(pipe->n_planes >= 0); > > - pipe = &data->display.pipes[p]; > - igt_require(pipe->n_planes >= 0); > + data->primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); > + data->pipe_crc = igt_pipe_crc_new(data->drm_fd, > + data->primary->pipe->pipe, > + INTEL_PIPE_CRC_SOURCE_AUTO); > > - primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); > + igt_display_require_output_on_pipe(&data->display, p); > + data->output = igt_get_single_output_for_pipe(&data->display, p); > + igt_require(data->output); > +} > > - data->pipe_crc = igt_pipe_crc_new(data->drm_fd, > - primary->pipe->pipe, > - INTEL_PIPE_CRC_SOURCE_AUTO); > +static void test_cleanup(data_t *data) > +{ > + igt_plane_t *primary = data->primary; > > - igt_display_require_output_on_pipe(&data->display, p); > - data->output = igt_get_single_output_for_pipe(&data->display, p); > - igt_require(data->output); > - } > + disable_degamma(primary->pipe); > + disable_gamma(primary->pipe); > + disable_ctm(primary->pipe); > + igt_display_commit(&data->display); > + > + igt_pipe_crc_free(data->pipe_crc); > + data->pipe_crc = NULL; > +} > + > +static void > +run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, > + bool (*test_t)(data_t*, igt_plane_t*)) > +{ > + test_setup(data, p); > > /* We assume an 8bits depth per color for degamma/gamma LUTs > * for CRC checks with framebuffer references. */ > data->color_depth = 8; > - delta = 1.0 / (1 << data->color_depth); > data->drm_format = DRM_FORMAT_XRGB8888; > > - igt_describe("Check the color transformation from red to blue"); > - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) { > - color_t blue_green_blue[] = { > - { 0.0, 0.0, 1.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 0.0, 0.0, 0.0, > - 0.0, 1.0, 0.0, > - 1.0, 0.0, 1.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - blue_green_blue, ctm)); > - } > + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) > + igt_assert(test_t(data, data->primary)); > > - igt_describe("Check the color transformation from green to red"); > - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) { > - color_t red_red_blue[] = { > - { 1.0, 0.0, 0.0 }, > - { 1.0, 0.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 1.0, 1.0, 0.0, > - 0.0, 0.0, 0.0, > - 0.0, 0.0, 1.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - red_red_blue, ctm)); > - } > + test_cleanup(data); > +} > > - igt_describe("Check the color transformation from blue to red"); > - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) { > - color_t red_green_red[] = { > - { 1.0, 0.0, 0.0 }, > - { 0.0, 1.0, 0.0 }, > - { 1.0, 0.0, 0.0 } > - }; > - double ctm[] = { 1.0, 0.0, 1.0, > - 0.0, 1.0, 0.0, > - 0.0, 0.0, 0.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - red_green_red, ctm)); > - } > +static void > +run_ctm_tests_for_pipe(data_t *data, enum pipe p, > + color_t *expected_colors, > + double *ctm, > + int iter) > +{ > + double delta; > + color_t red_green_blue[] = { > + { 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 } > + }; > > - /* We tests a few values around the expected result because > - * the it depends on the hardware we're dealing with, we can ---------- ^ > - * either get clamped or rounded values and we also need to > - * account for odd number of items in the LUTs. */ May you keep this comment ? It is describing _why_ we do this, imho we can keep this. If you agree, small correction: s/the// and I prefer multiline comments to start with: /* * a multiline * comment here */ Regards, Kamil > - igt_describe("Check the color transformation for 0.25 transparency"); > - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) { > - color_t expected_colors[] = { > - { 0.0, }, { 0.0, }, { 0.0, } > - }; > - double ctm[] = { 0.25, 0.0, 0.0, > - 0.0, 0.25, 0.0, > - 0.0, 0.0, 0.25 }; > - bool success = false; > + test_setup(data, p); > > - for (i = 0; i < 5; i++) { > - expected_colors[0].r = > - expected_colors[1].g = > - expected_colors[2].b = > - 0.25 + delta * (i - 2); > - if (test_pipe_ctm(data, primary, red_green_blue, > - expected_colors, ctm)) { > - success = true; > - break; > - } > - } > - igt_assert(success); > - } > + /* We assume an 8bits depth per color for degamma/gamma LUTs > + * for CRC checks with framebuffer references. */ > + data->color_depth = 8; > + delta = 1.0 / (1 << data->color_depth); > + data->drm_format = DRM_FORMAT_XRGB8888; > > - igt_describe("Check the color transformation for 0.5 transparency"); > - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) { > - color_t expected_colors[] = { > - { 0.0, }, { 0.0, }, { 0.0, } > - }; > - double ctm[] = { 0.5, 0.0, 0.0, > - 0.0, 0.5, 0.0, > - 0.0, 0.0, 0.5 }; > + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { > bool success = false; > + int i; > + > + if (!iter) > + success = test_pipe_ctm(data, data->primary, red_green_blue, > + expected_colors, ctm); > > - for (i = 0; i < 5; i++) { > + for (i = 0; i < iter; i++) { > expected_colors[0].r = > expected_colors[1].g = > expected_colors[2].b = > 0.5 + delta * (i - 2); > - if (test_pipe_ctm(data, primary, red_green_blue, > + if (test_pipe_ctm(data, data->primary, red_green_blue, > expected_colors, ctm)) { > success = true; > break; > @@ -809,186 +778,249 @@ run_tests_for_pipe(data_t *data, enum pipe p) > igt_assert(success); > } > > - igt_describe("Check the color transformation for 0.75 transparency"); > - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) { > - color_t expected_colors[] = { > - { 0.0, }, { 0.0, }, { 0.0, } > - }; > - double ctm[] = { 0.75, 0.0, 0.0, > - 0.0, 0.75, 0.0, > - 0.0, 0.0, 0.75 }; > - bool success = false; > - > - for (i = 0; i < 7; i++) { > - expected_colors[0].r = > - expected_colors[1].g = > - expected_colors[2].b = > - 0.75 + delta * (i - 3); > - if (test_pipe_ctm(data, primary, red_green_blue, > - expected_colors, ctm)) { > - success = true; > - break; > - } > - } > - igt_assert(success); > - } > + test_cleanup(data); > +} > > - igt_describe("Check the color transformation for maximum transparency"); > - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) { > - color_t full_rgb[] = { > - { 1.0, 0.0, 0.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 100.0, 0.0, 0.0, > - 0.0, 100.0, 0.0, > - 0.0, 0.0, 100.0 }; > - > - /* CherryView generates values on 10bits that we > - * produce with an 8 bits per color framebuffer. */ > - igt_require(!IS_CHERRYVIEW(data->devid)); > - > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - full_rgb, ctm)); > - } > +static void > +run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > +{ > + igt_output_t *output; > + color_t blue_green_blue[] = { > + { 0.0, 0.0, 1.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 } > + }; > + color_t red_green_blue[] = { > + { 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 } > + }; > + double ctm[] = { 0.0, 0.0, 0.0, > + 0.0, 1.0, 0.0, > + 1.0, 0.0, 1.0 }; > > - igt_describe("Check the color transformation for negative transparency"); > - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) { > - color_t all_black[] = { > - { 0.0, 0.0, 0.0 }, > - { 0.0, 0.0, 0.0 }, > - { 0.0, 0.0, 0.0 } > - }; > - double ctm[] = { -1.0, 0.0, 0.0, > - 0.0, -1.0, 0.0, > - 0.0, 0.0, -1.0 }; > - igt_assert(test_pipe_ctm(data, primary, red_green_blue, > - all_black, ctm)); > - } > + if (is_i915_device(data->drm_fd)) > + igt_require_f((intel_display_ver(data->devid) >= 11), > + "At least GEN 11 is required to validate Deep-color.\n"); > > -#if 0 > - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p)) > - test_pipe_limited_range_ctm(data, primary); > -#endif > + test_setup(data, p); > > - igt_describe("Verify that degamma LUT transformation works correctly"); > - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p)) > - igt_assert(test_pipe_degamma(data, primary)); > + for_each_valid_output_on_pipe(&data->display, p, output) { > + uint64_t max_bpc = get_max_bpc(output); > + bool ret; > > - igt_describe("Verify that gamma LUT transformation works correctly"); > - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p)) > - igt_assert(test_pipe_gamma(data, primary)); > + if (!max_bpc) > + continue; > > - igt_describe("Verify that legacy gamma LUT transformation works correctly"); > - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p)) > - test_pipe_legacy_gamma(data, primary); > + if (!panel_supports_deep_color(data->drm_fd, output->name)) > + continue; > > - igt_describe("Verify that setting the legacy gamma LUT resets the gamma LUT set through " > - "GAMMA_LUT property"); > - igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p)) > - test_pipe_legacy_gamma_reset(data, primary); > + data->color_depth = 10; > + data->drm_format = DRM_FORMAT_XRGB2101010; > + data->output = output; > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > + igt_output_set_pipe(output, p); > + igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); > > - igt_fixture > - igt_require(data->display.is_atomic); > + if (is_i915_device(data->drm_fd) && > + !i915_clock_constraint(data, p, 10)) > + continue; > > - igt_describe("Verify that deep color works correctly"); > - igt_subtest_with_dynamic_f("pipe-%s-deep-color", kmstest_pipe_name(p)) { > - igt_output_t *output; > - color_t blue_green_blue[] = { > - { 0.0, 0.0, 1.0 }, > - { 0.0, 1.0, 0.0 }, > - { 0.0, 0.0, 1.0 } > - }; > - double ctm[] = { 0.0, 0.0, 0.0, > - 0.0, 1.0, 0.0, > - 1.0, 0.0, 1.0 }; > - > - if (is_i915_device(data->drm_fd)) > - igt_require_f((intel_display_ver(data->devid) >= 11), > - "At least GEN 11 is required to validate Deep-color.\n"); > - > - for_each_valid_output_on_pipe(&data->display, p, output) { > - uint64_t max_bpc = get_max_bpc(output); > - bool ret; > - > - if (!max_bpc) > - continue; > - > - if (!panel_supports_deep_color(data->drm_fd, output->name)) > - continue; > - > - data->color_depth = 10; > - data->drm_format = DRM_FORMAT_XRGB2101010; > - data->output = output; > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); > - igt_output_set_pipe(output, p); > - igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); > - > - if (is_i915_device(data->drm_fd) && > - !i915_clock_constraint(data, p, 10)) > - continue; > - > - igt_dynamic_f("gamma-%s", output->name) { > - ret = test_pipe_gamma(data, primary); > - > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > - igt_assert(ret); > - } > + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { > + ret = test_pipe_gamma(data, data->primary); > > - igt_dynamic_f("degamma-%s", output->name) { > - ret = test_pipe_degamma(data, primary); > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > + igt_assert(ret); > + } > > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > - igt_assert(ret); > - } > + igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { > + ret = test_pipe_degamma(data, data->primary); > > - igt_dynamic_f("ctm-%s", output->name) { > - ret = test_pipe_ctm(data, primary, > - red_green_blue, > - blue_green_blue, ctm); > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > + igt_assert(ret); > + } > > - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > - igt_assert(ret); > - } > + igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { > + ret = test_pipe_ctm(data, data->primary, > + red_green_blue, > + blue_green_blue, ctm); > > - break; > + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); > + igt_assert(ret); > } > + > + break; > } > > - igt_fixture { > - disable_degamma(primary->pipe); > - disable_gamma(primary->pipe); > - disable_ctm(primary->pipe); > - igt_display_commit(&data->display); > + test_cleanup(data); > +} > + > +static void > +run_invalid_tests_for_pipe(data_t *data) > +{ > + enum pipe pipe; > + struct { > + const char *name; > + void (*test_t) (data_t *data, enum pipe pipe); > + const char *desc; > + } tests[] = { > + { "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes, > + "Negative check for invalid gamma lut sizes" }, > + > + { "invalid-degamma-lut-sizes", invalid_degamma_lut_sizes, > + "Negative check for invalid degamma lut sizes" }, > + > + { "invalid-ctm-matrix-sizes", invalid_ctm_matrix_sizes, > + "Negative check for color tranformation matrix sizes" }, > + }; > + int i; > > - igt_pipe_crc_free(data->pipe_crc); > - data->pipe_crc = NULL; > + for (i = 0; i < ARRAY_SIZE(tests); i++) { > + igt_describe_f("%s", tests[i].desc); > + igt_subtest_with_dynamic_f("%s", tests[i].name) { > + for_each_pipe(&data->display, pipe) { > + prep_pipe(data, pipe); > + > + igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) > + tests[i].test_t(data, pipe); > + } > + } > } > } > > static void > -run_invalid_tests_for_pipe(data_t *data, enum pipe p) > +run_tests_for_pipe(data_t *data) > { > - igt_fixture > - prep_pipe(data, p); > + enum pipe pipe; > + struct { > + const char *name; > + bool (*test_t)(data_t*, igt_plane_t*); > + const char *desc; > + } gamma_degamma_tests[] = { > + { "degamma", test_pipe_degamma, > + "Verify that degamma LUT transformation works correctly" }, > + > + { "gamma", test_pipe_gamma, > + "Verify that gamma LUT transformation works correctly" }, > + > + { "legacy-gamma", test_pipe_legacy_gamma, > + "Verify that legacy gamma LUT transformation works correctly" }, > + > + { "legacy-gamma-reset", test_pipe_legacy_gamma_reset, > + "Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property" }, > + }; > + struct { > + const char *name; > + int iter; > + color_t colors[3]; > + double ctm[9]; > + const char *desc; > + } ctm_tests[] = { > + { "ctm-red-to-blue", 0, > + {{ 0.0, 0.0, 1.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 }}, > + { 0.0, 0.0, 0.0, > + 0.0, 1.0, 0.0, > + 1.0, 0.0, 1.0 }, > + "Check the color transformation from red to blue" > + }, > + { "ctm-green-to-red", 0, > + {{ 1.0, 0.0, 0.0 }, > + { 1.0, 0.0, 0.0 }, > + { 0.0, 0.0, 1.0 }}, > + { 1.0, 1.0, 0.0, > + 0.0, 0.0, 0.0, > + 0.0, 0.0, 1.0 }, > + "Check the color transformation from green to red" > + }, > + { "ctm-blue-to-red", 0, > + {{ 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 1.0, 0.0, 0.0 }}, > + { 1.0, 0.0, 1.0, > + 0.0, 1.0, 0.0, > + 0.0, 0.0, 0.0 }, > + "Check the color transformation from blue to red" > + }, > + { "ctm-max", 0, > + {{ 1.0, 0.0, 0.0 }, > + { 0.0, 1.0, 0.0 }, > + { 0.0, 0.0, 1.0 }}, > + { 100.0, 0.0, 0.0, > + 0.0, 100.0, 0.0, > + 0.0, 0.0, 100.0 }, > + "Check the color transformation for maximum transparency" > + }, > + { "ctm-negative", 0, > + {{ 0.0, 0.0, 0.0 }, > + { 0.0, 0.0, 0.0 }, > + { 0.0, 0.0, 0.0 }}, > + { -1.0, 0.0, 0.0, > + 0.0, -1.0, 0.0, > + 0.0, 0.0, -1.0 }, > + "Check the color transformation for negative transparency" > + }, > + { "ctm-0-25", 5, > + {{ 0.0, }, { 0.0, }, { 0.0, }}, > + { 0.25, 0.0, 0.0, > + 0.0, 0.25, 0.0, > + 0.0, 0.0, 0.25 }, > + "Check the color transformation for 0.25 transparency" > + }, > + { "ctm-0-50", 5, > + {{ 0.0, }, { 0.0, }, { 0.0, }}, > + { 0.5, 0.0, 0.0, > + 0.0, 0.5, 0.0, > + 0.0, 0.0, 0.5 }, > + "Check the color transformation for 0.5 transparency" > + }, > + { "ctm-0-75", 7, > + {{ 0.0, }, { 0.0, }, { 0.0, }}, > + { 0.75, 0.0, 0.0, > + 0.0, 0.75, 0.0, > + 0.0, 0.0, 0.75 }, > + "Check the color transformation for 0.75 transparency" > + }, > + }; > + int i; > + > + for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) { > + igt_describe_f("%s", gamma_degamma_tests[i].desc); > + igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) { > + for_each_pipe(&data->display, pipe) { > + run_gamma_degamma_tests_for_pipe(data, pipe, > + gamma_degamma_tests[i].test_t); > + } > + } > + } > > - igt_describe("Negative check for invalid gamma lut sizes"); > - igt_subtest_f("pipe-%s-invalid-gamma-lut-sizes", kmstest_pipe_name(p)) > - invalid_gamma_lut_sizes(data, p); > + for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) { > + igt_describe_f("%s", ctm_tests[i].desc); > + igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) { > + for_each_pipe(&data->display, pipe) { > + run_ctm_tests_for_pipe(data, pipe, > + ctm_tests[i].colors, > + ctm_tests[i].ctm, > + ctm_tests[i].iter); > + } > + } > + } > > - igt_describe("Negative check for invalid degamma lut sizes"); > - igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p)) > - invalid_degamma_lut_sizes(data, p); > + igt_fixture > + igt_require(data->display.is_atomic); > > - igt_describe("Negative check for color tranformation matrix sizes"); > - igt_subtest_f("pipe-%s-invalid-ctm-matrix-sizes", kmstest_pipe_name(p)) > - invalid_ctm_matrix_sizes(data, p); > + igt_describe("Verify that deep color works correctly"); > + igt_subtest_with_dynamic("deep-color") { > + for_each_pipe(&data->display, pipe) { > + run_deep_color_tests_for_pipe(data, pipe); > + } > + } > } > > igt_main > { > data_t data = {}; > - enum pipe pipe; > > igt_fixture { > data.drm_fd = drm_open_driver_master(DRIVER_ANY); > @@ -999,13 +1031,11 @@ igt_main > igt_display_require(&data.display, data.drm_fd); > } > > - for_each_pipe_static(pipe) { > - igt_subtest_group > - run_tests_for_pipe(&data, pipe); > + igt_subtest_group > + run_tests_for_pipe(&data); > > - igt_subtest_group > - run_invalid_tests_for_pipe(&data, pipe); > - } > + igt_subtest_group > + run_invalid_tests_for_pipe(&data); > > igt_fixture { > igt_display_fini(&data.display); > diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h > index cc07f5ee..2ea15bcd 100644 > --- a/tests/kms_color_helper.h > +++ b/tests/kms_color_helper.h > @@ -50,6 +50,7 @@ typedef struct { > igt_display_t display; > igt_pipe_crc_t *pipe_crc; > igt_output_t *output; > + igt_plane_t *primary; > > uint32_t drm_format; > uint32_t color_depth; > -- > 2.35.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic 2022-06-29 5:59 ` Kamil Konieczny @ 2022-06-29 6:33 ` Modem, Bhanuprakash 0 siblings, 0 replies; 17+ messages in thread From: Modem, Bhanuprakash @ 2022-06-29 6:33 UTC (permalink / raw) To: Kamil Konieczny, igt-dev On Wed-29-06-2022 11:29 am, Kamil Konieczny wrote: > Hi Bhanuprakash, > > On 2022-06-28 at 18:43:40 +0530, Bhanuprakash Modem wrote: >> Convert the existing subtests to dynamic subtests at pipe level. >> >> V2: >> * Fix nested igt_fixture in igt_subtest >> V3: >> * Fix to not dereferencing a NULL pointer >> V4: >> * Add output name to subtest >> V5: >> * Rebase >> V6: >> * Fix typos in test description >> >> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> >> --- >> tests/kms_color.c | 548 +++++++++++++++++++++------------------ >> tests/kms_color_helper.h | 1 + >> 2 files changed, 290 insertions(+), 259 deletions(-) >> >> diff --git a/tests/kms_color.c b/tests/kms_color.c >> index ba06947b..3629ae44 100644 >> --- a/tests/kms_color.c >> +++ b/tests/kms_color.c >> @@ -203,7 +203,7 @@ static bool test_pipe_gamma(data_t *data, >> * gamma LUT and verify we have the same CRC as drawing solid color rectangles >> * with linear legacy gamma LUT. >> */ >> -static void test_pipe_legacy_gamma(data_t *data, >> +static bool test_pipe_legacy_gamma(data_t *data, >> igt_plane_t *primary) >> { >> igt_output_t *output; >> @@ -220,6 +220,7 @@ static void test_pipe_legacy_gamma(data_t *data, >> struct igt_fb fb_modeset, fb; >> igt_crc_t crc_fullgamma, crc_fullcolors; >> int fb_id, fb_modeset_id; >> + bool ret; >> >> kms_crtc = drmModeGetCrtc(data->drm_fd, primary->pipe->crtc_id); >> legacy_lut_size = kms_crtc->gamma_size; >> @@ -285,7 +286,7 @@ static void test_pipe_legacy_gamma(data_t *data, >> /* Verify that the CRC of the software computed output is >> * equal to the CRC of the gamma LUT transformation output. >> */ >> - igt_assert_crc_equal(&crc_fullgamma, &crc_fullcolors); >> + ret = !igt_skip_crc_compare || igt_check_crc_equal(&crc_fullgamma, &crc_fullcolors); >> >> /* Reset output. */ >> for (i = 1; i < legacy_lut_size; i++) >> @@ -303,13 +304,15 @@ static void test_pipe_legacy_gamma(data_t *data, >> free(red_lut); >> free(green_lut); >> free(blue_lut); >> + >> + return ret; >> } >> >> /* >> * Verify that setting the legacy gamma LUT resets the gamma LUT set >> * through the GAMMA_LUT property. >> */ >> -static void test_pipe_legacy_gamma_reset(data_t *data, >> +static bool test_pipe_legacy_gamma_reset(data_t *data, >> igt_plane_t *primary) >> { >> const double ctm_identity[] = { >> @@ -324,6 +327,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> struct drm_color_lut *lut; >> drmModePropertyBlobPtr blob; >> igt_output_t *output; >> + bool ret = true; >> >> igt_require(igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT)); >> >> @@ -373,10 +377,12 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> data->gamma_lut_size)); >> lut = (struct drm_color_lut *) blob->data; >> for (i = 0; i < data->gamma_lut_size; i++) >> - igt_assert(lut[i].red == 0 && >> + ret &=(lut[i].red == 0 && >> lut[i].green == 0 && >> lut[i].blue == 0); >> drmModeFreePropertyBlob(blob); >> + if(!ret) >> + goto end; >> >> /* Set a gamma LUT using the legacy ioctl and verify >> * the content of the GAMMA_LUT property is changed >> @@ -411,7 +417,7 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> legacy_lut_size)); >> lut = (struct drm_color_lut *) blob->data; >> for (i = 0; i < legacy_lut_size; i++) >> - igt_assert(lut[i].red == 0xffff && >> + ret &= (lut[i].red == 0xffff && >> lut[i].green == 0xffff && >> lut[i].blue == 0xffff); >> drmModeFreePropertyBlob(blob); >> @@ -421,6 +427,8 @@ static void test_pipe_legacy_gamma_reset(data_t *data, >> >> free_lut(degamma_linear); >> free_lut(gamma_zero); >> +end: >> + return ret; >> } >> >> /* >> @@ -677,130 +685,91 @@ prep_pipe(data_t *data, enum pipe p) >> } >> } >> >> -static void >> -run_tests_for_pipe(data_t *data, enum pipe p) >> +static void test_setup(data_t *data, enum pipe p) >> { >> igt_pipe_t *pipe; >> - igt_plane_t *primary; >> - double delta; >> - int i; >> - color_t red_green_blue[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> >> - igt_fixture { >> - prep_pipe(data, p); >> + prep_pipe(data, p); >> + igt_require_pipe_crc(data->drm_fd); >> >> - igt_require_pipe_crc(data->drm_fd); >> + pipe = &data->display.pipes[p]; >> + igt_require(pipe->n_planes >= 0); >> >> - pipe = &data->display.pipes[p]; >> - igt_require(pipe->n_planes >= 0); >> + data->primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); >> + data->pipe_crc = igt_pipe_crc_new(data->drm_fd, >> + data->primary->pipe->pipe, >> + INTEL_PIPE_CRC_SOURCE_AUTO); >> >> - primary = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); >> + igt_display_require_output_on_pipe(&data->display, p); >> + data->output = igt_get_single_output_for_pipe(&data->display, p); >> + igt_require(data->output); >> +} >> >> - data->pipe_crc = igt_pipe_crc_new(data->drm_fd, >> - primary->pipe->pipe, >> - INTEL_PIPE_CRC_SOURCE_AUTO); >> +static void test_cleanup(data_t *data) >> +{ >> + igt_plane_t *primary = data->primary; >> >> - igt_display_require_output_on_pipe(&data->display, p); >> - data->output = igt_get_single_output_for_pipe(&data->display, p); >> - igt_require(data->output); >> - } >> + disable_degamma(primary->pipe); >> + disable_gamma(primary->pipe); >> + disable_ctm(primary->pipe); >> + igt_display_commit(&data->display); >> + >> + igt_pipe_crc_free(data->pipe_crc); >> + data->pipe_crc = NULL; >> +} >> + >> +static void >> +run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, >> + bool (*test_t)(data_t*, igt_plane_t*)) >> +{ >> + test_setup(data, p); >> >> /* We assume an 8bits depth per color for degamma/gamma LUTs >> * for CRC checks with framebuffer references. */ >> data->color_depth = 8; >> - delta = 1.0 / (1 << data->color_depth); >> data->drm_format = DRM_FORMAT_XRGB8888; >> >> - igt_describe("Check the color transformation from red to blue"); >> - igt_subtest_f("pipe-%s-ctm-red-to-blue", kmstest_pipe_name(p)) { >> - color_t blue_green_blue[] = { >> - { 0.0, 0.0, 1.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 0.0, 0.0, 0.0, >> - 0.0, 1.0, 0.0, >> - 1.0, 0.0, 1.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - blue_green_blue, ctm)); >> - } >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) >> + igt_assert(test_t(data, data->primary)); >> >> - igt_describe("Check the color transformation from green to red"); >> - igt_subtest_f("pipe-%s-ctm-green-to-red", kmstest_pipe_name(p)) { >> - color_t red_red_blue[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 1.0, 1.0, 0.0, >> - 0.0, 0.0, 0.0, >> - 0.0, 0.0, 1.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - red_red_blue, ctm)); >> - } >> + test_cleanup(data); >> +} >> >> - igt_describe("Check the color transformation from blue to red"); >> - igt_subtest_f("pipe-%s-ctm-blue-to-red", kmstest_pipe_name(p)) { >> - color_t red_green_red[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 1.0, 0.0, 0.0 } >> - }; >> - double ctm[] = { 1.0, 0.0, 1.0, >> - 0.0, 1.0, 0.0, >> - 0.0, 0.0, 0.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - red_green_red, ctm)); >> - } >> +static void >> +run_ctm_tests_for_pipe(data_t *data, enum pipe p, >> + color_t *expected_colors, >> + double *ctm, >> + int iter) >> +{ >> + double delta; >> + color_t red_green_blue[] = { >> + { 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 } >> + }; >> >> - /* We tests a few values around the expected result because >> - * the it depends on the hardware we're dealing with, we can > ---------- ^ >> - * either get clamped or rounded values and we also need to >> - * account for odd number of items in the LUTs. */ > > May you keep this comment ? It is describing _why_ we do this, > imho we can keep this. If you agree, small correction: s/the// > and I prefer multiline comments to start with: > /* > * a multiline > * comment here > */ Thanks for the review, sure I'll add back these comments & float a new rev. Yeah, we need to fix these multiline comments everywhere in this test, I'll do this as part of cleanup. (Patch 2/2 in this series). - Bhanu > > Regards, > Kamil > >> - igt_describe("Check the color transformation for 0.25 transparency"); >> - igt_subtest_f("pipe-%s-ctm-0-25", kmstest_pipe_name(p)) { >> - color_t expected_colors[] = { >> - { 0.0, }, { 0.0, }, { 0.0, } >> - }; >> - double ctm[] = { 0.25, 0.0, 0.0, >> - 0.0, 0.25, 0.0, >> - 0.0, 0.0, 0.25 }; >> - bool success = false; >> + test_setup(data, p); >> >> - for (i = 0; i < 5; i++) { >> - expected_colors[0].r = >> - expected_colors[1].g = >> - expected_colors[2].b = >> - 0.25 + delta * (i - 2); >> - if (test_pipe_ctm(data, primary, red_green_blue, >> - expected_colors, ctm)) { >> - success = true; >> - break; >> - } >> - } >> - igt_assert(success); >> - } >> + /* We assume an 8bits depth per color for degamma/gamma LUTs >> + * for CRC checks with framebuffer references. */ >> + data->color_depth = 8; >> + delta = 1.0 / (1 << data->color_depth); >> + data->drm_format = DRM_FORMAT_XRGB8888; >> >> - igt_describe("Check the color transformation for 0.5 transparency"); >> - igt_subtest_f("pipe-%s-ctm-0-5", kmstest_pipe_name(p)) { >> - color_t expected_colors[] = { >> - { 0.0, }, { 0.0, }, { 0.0, } >> - }; >> - double ctm[] = { 0.5, 0.0, 0.0, >> - 0.0, 0.5, 0.0, >> - 0.0, 0.0, 0.5 }; >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) { >> bool success = false; >> + int i; >> + >> + if (!iter) >> + success = test_pipe_ctm(data, data->primary, red_green_blue, >> + expected_colors, ctm); >> >> - for (i = 0; i < 5; i++) { >> + for (i = 0; i < iter; i++) { >> expected_colors[0].r = >> expected_colors[1].g = >> expected_colors[2].b = >> 0.5 + delta * (i - 2); >> - if (test_pipe_ctm(data, primary, red_green_blue, >> + if (test_pipe_ctm(data, data->primary, red_green_blue, >> expected_colors, ctm)) { >> success = true; >> break; >> @@ -809,186 +778,249 @@ run_tests_for_pipe(data_t *data, enum pipe p) >> igt_assert(success); >> } >> >> - igt_describe("Check the color transformation for 0.75 transparency"); >> - igt_subtest_f("pipe-%s-ctm-0-75", kmstest_pipe_name(p)) { >> - color_t expected_colors[] = { >> - { 0.0, }, { 0.0, }, { 0.0, } >> - }; >> - double ctm[] = { 0.75, 0.0, 0.0, >> - 0.0, 0.75, 0.0, >> - 0.0, 0.0, 0.75 }; >> - bool success = false; >> - >> - for (i = 0; i < 7; i++) { >> - expected_colors[0].r = >> - expected_colors[1].g = >> - expected_colors[2].b = >> - 0.75 + delta * (i - 3); >> - if (test_pipe_ctm(data, primary, red_green_blue, >> - expected_colors, ctm)) { >> - success = true; >> - break; >> - } >> - } >> - igt_assert(success); >> - } >> + test_cleanup(data); >> +} >> >> - igt_describe("Check the color transformation for maximum transparency"); >> - igt_subtest_f("pipe-%s-ctm-max", kmstest_pipe_name(p)) { >> - color_t full_rgb[] = { >> - { 1.0, 0.0, 0.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 100.0, 0.0, 0.0, >> - 0.0, 100.0, 0.0, >> - 0.0, 0.0, 100.0 }; >> - >> - /* CherryView generates values on 10bits that we >> - * produce with an 8 bits per color framebuffer. */ >> - igt_require(!IS_CHERRYVIEW(data->devid)); >> - >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - full_rgb, ctm)); >> - } >> +static void >> +run_deep_color_tests_for_pipe(data_t *data, enum pipe p) >> +{ >> + igt_output_t *output; >> + color_t blue_green_blue[] = { >> + { 0.0, 0.0, 1.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 } >> + }; >> + color_t red_green_blue[] = { >> + { 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 } >> + }; >> + double ctm[] = { 0.0, 0.0, 0.0, >> + 0.0, 1.0, 0.0, >> + 1.0, 0.0, 1.0 }; >> >> - igt_describe("Check the color transformation for negative transparency"); >> - igt_subtest_f("pipe-%s-ctm-negative", kmstest_pipe_name(p)) { >> - color_t all_black[] = { >> - { 0.0, 0.0, 0.0 }, >> - { 0.0, 0.0, 0.0 }, >> - { 0.0, 0.0, 0.0 } >> - }; >> - double ctm[] = { -1.0, 0.0, 0.0, >> - 0.0, -1.0, 0.0, >> - 0.0, 0.0, -1.0 }; >> - igt_assert(test_pipe_ctm(data, primary, red_green_blue, >> - all_black, ctm)); >> - } >> + if (is_i915_device(data->drm_fd)) >> + igt_require_f((intel_display_ver(data->devid) >= 11), >> + "At least GEN 11 is required to validate Deep-color.\n"); >> >> -#if 0 >> - igt_subtest_f("pipe-%s-ctm-limited-range", kmstest_pipe_name(p)) >> - test_pipe_limited_range_ctm(data, primary); >> -#endif >> + test_setup(data, p); >> >> - igt_describe("Verify that degamma LUT transformation works correctly"); >> - igt_subtest_f("pipe-%s-degamma", kmstest_pipe_name(p)) >> - igt_assert(test_pipe_degamma(data, primary)); >> + for_each_valid_output_on_pipe(&data->display, p, output) { >> + uint64_t max_bpc = get_max_bpc(output); >> + bool ret; >> >> - igt_describe("Verify that gamma LUT transformation works correctly"); >> - igt_subtest_f("pipe-%s-gamma", kmstest_pipe_name(p)) >> - igt_assert(test_pipe_gamma(data, primary)); >> + if (!max_bpc) >> + continue; >> >> - igt_describe("Verify that legacy gamma LUT transformation works correctly"); >> - igt_subtest_f("pipe-%s-legacy-gamma", kmstest_pipe_name(p)) >> - test_pipe_legacy_gamma(data, primary); >> + if (!panel_supports_deep_color(data->drm_fd, output->name)) >> + continue; >> >> - igt_describe("Verify that setting the legacy gamma LUT resets the gamma LUT set through " >> - "GAMMA_LUT property"); >> - igt_subtest_f("pipe-%s-legacy-gamma-reset", kmstest_pipe_name(p)) >> - test_pipe_legacy_gamma_reset(data, primary); >> + data->color_depth = 10; >> + data->drm_format = DRM_FORMAT_XRGB2101010; >> + data->output = output; >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); >> + igt_output_set_pipe(output, p); >> + igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); >> >> - igt_fixture >> - igt_require(data->display.is_atomic); >> + if (is_i915_device(data->drm_fd) && >> + !i915_clock_constraint(data, p, 10)) >> + continue; >> >> - igt_describe("Verify that deep color works correctly"); >> - igt_subtest_with_dynamic_f("pipe-%s-deep-color", kmstest_pipe_name(p)) { >> - igt_output_t *output; >> - color_t blue_green_blue[] = { >> - { 0.0, 0.0, 1.0 }, >> - { 0.0, 1.0, 0.0 }, >> - { 0.0, 0.0, 1.0 } >> - }; >> - double ctm[] = { 0.0, 0.0, 0.0, >> - 0.0, 1.0, 0.0, >> - 1.0, 0.0, 1.0 }; >> - >> - if (is_i915_device(data->drm_fd)) >> - igt_require_f((intel_display_ver(data->devid) >= 11), >> - "At least GEN 11 is required to validate Deep-color.\n"); >> - >> - for_each_valid_output_on_pipe(&data->display, p, output) { >> - uint64_t max_bpc = get_max_bpc(output); >> - bool ret; >> - >> - if (!max_bpc) >> - continue; >> - >> - if (!panel_supports_deep_color(data->drm_fd, output->name)) >> - continue; >> - >> - data->color_depth = 10; >> - data->drm_format = DRM_FORMAT_XRGB2101010; >> - data->output = output; >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10); >> - igt_output_set_pipe(output, p); >> - igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); >> - >> - if (is_i915_device(data->drm_fd) && >> - !i915_clock_constraint(data, p, 10)) >> - continue; >> - >> - igt_dynamic_f("gamma-%s", output->name) { >> - ret = test_pipe_gamma(data, primary); >> - >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> - igt_assert(ret); >> - } >> + igt_dynamic_f("pipe-%s-%s-gamma", kmstest_pipe_name(p), output->name) { >> + ret = test_pipe_gamma(data, data->primary); >> >> - igt_dynamic_f("degamma-%s", output->name) { >> - ret = test_pipe_degamma(data, primary); >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> + igt_assert(ret); >> + } >> >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> - igt_assert(ret); >> - } >> + igt_dynamic_f("pipe-%s-%s-degamma", kmstest_pipe_name(p), output->name) { >> + ret = test_pipe_degamma(data, data->primary); >> >> - igt_dynamic_f("ctm-%s", output->name) { >> - ret = test_pipe_ctm(data, primary, >> - red_green_blue, >> - blue_green_blue, ctm); >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> + igt_assert(ret); >> + } >> >> - igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> - igt_assert(ret); >> - } >> + igt_dynamic_f("pipe-%s-%s-ctm", kmstest_pipe_name(p), output->name) { >> + ret = test_pipe_ctm(data, data->primary, >> + red_green_blue, >> + blue_green_blue, ctm); >> >> - break; >> + igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, max_bpc); >> + igt_assert(ret); >> } >> + >> + break; >> } >> >> - igt_fixture { >> - disable_degamma(primary->pipe); >> - disable_gamma(primary->pipe); >> - disable_ctm(primary->pipe); >> - igt_display_commit(&data->display); >> + test_cleanup(data); >> +} >> + >> +static void >> +run_invalid_tests_for_pipe(data_t *data) >> +{ >> + enum pipe pipe; >> + struct { >> + const char *name; >> + void (*test_t) (data_t *data, enum pipe pipe); >> + const char *desc; >> + } tests[] = { >> + { "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes, >> + "Negative check for invalid gamma lut sizes" }, >> + >> + { "invalid-degamma-lut-sizes", invalid_degamma_lut_sizes, >> + "Negative check for invalid degamma lut sizes" }, >> + >> + { "invalid-ctm-matrix-sizes", invalid_ctm_matrix_sizes, >> + "Negative check for color tranformation matrix sizes" }, >> + }; >> + int i; >> >> - igt_pipe_crc_free(data->pipe_crc); >> - data->pipe_crc = NULL; >> + for (i = 0; i < ARRAY_SIZE(tests); i++) { >> + igt_describe_f("%s", tests[i].desc); >> + igt_subtest_with_dynamic_f("%s", tests[i].name) { >> + for_each_pipe(&data->display, pipe) { >> + prep_pipe(data, pipe); >> + >> + igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) >> + tests[i].test_t(data, pipe); >> + } >> + } >> } >> } >> >> static void >> -run_invalid_tests_for_pipe(data_t *data, enum pipe p) >> +run_tests_for_pipe(data_t *data) >> { >> - igt_fixture >> - prep_pipe(data, p); >> + enum pipe pipe; >> + struct { >> + const char *name; >> + bool (*test_t)(data_t*, igt_plane_t*); >> + const char *desc; >> + } gamma_degamma_tests[] = { >> + { "degamma", test_pipe_degamma, >> + "Verify that degamma LUT transformation works correctly" }, >> + >> + { "gamma", test_pipe_gamma, >> + "Verify that gamma LUT transformation works correctly" }, >> + >> + { "legacy-gamma", test_pipe_legacy_gamma, >> + "Verify that legacy gamma LUT transformation works correctly" }, >> + >> + { "legacy-gamma-reset", test_pipe_legacy_gamma_reset, >> + "Verify that setting the legacy gamma LUT resets the gamma LUT set through GAMMA_LUT property" }, >> + }; >> + struct { >> + const char *name; >> + int iter; >> + color_t colors[3]; >> + double ctm[9]; >> + const char *desc; >> + } ctm_tests[] = { >> + { "ctm-red-to-blue", 0, >> + {{ 0.0, 0.0, 1.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 }}, >> + { 0.0, 0.0, 0.0, >> + 0.0, 1.0, 0.0, >> + 1.0, 0.0, 1.0 }, >> + "Check the color transformation from red to blue" >> + }, >> + { "ctm-green-to-red", 0, >> + {{ 1.0, 0.0, 0.0 }, >> + { 1.0, 0.0, 0.0 }, >> + { 0.0, 0.0, 1.0 }}, >> + { 1.0, 1.0, 0.0, >> + 0.0, 0.0, 0.0, >> + 0.0, 0.0, 1.0 }, >> + "Check the color transformation from green to red" >> + }, >> + { "ctm-blue-to-red", 0, >> + {{ 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 1.0, 0.0, 0.0 }}, >> + { 1.0, 0.0, 1.0, >> + 0.0, 1.0, 0.0, >> + 0.0, 0.0, 0.0 }, >> + "Check the color transformation from blue to red" >> + }, >> + { "ctm-max", 0, >> + {{ 1.0, 0.0, 0.0 }, >> + { 0.0, 1.0, 0.0 }, >> + { 0.0, 0.0, 1.0 }}, >> + { 100.0, 0.0, 0.0, >> + 0.0, 100.0, 0.0, >> + 0.0, 0.0, 100.0 }, >> + "Check the color transformation for maximum transparency" >> + }, >> + { "ctm-negative", 0, >> + {{ 0.0, 0.0, 0.0 }, >> + { 0.0, 0.0, 0.0 }, >> + { 0.0, 0.0, 0.0 }}, >> + { -1.0, 0.0, 0.0, >> + 0.0, -1.0, 0.0, >> + 0.0, 0.0, -1.0 }, >> + "Check the color transformation for negative transparency" >> + }, >> + { "ctm-0-25", 5, >> + {{ 0.0, }, { 0.0, }, { 0.0, }}, >> + { 0.25, 0.0, 0.0, >> + 0.0, 0.25, 0.0, >> + 0.0, 0.0, 0.25 }, >> + "Check the color transformation for 0.25 transparency" >> + }, >> + { "ctm-0-50", 5, >> + {{ 0.0, }, { 0.0, }, { 0.0, }}, >> + { 0.5, 0.0, 0.0, >> + 0.0, 0.5, 0.0, >> + 0.0, 0.0, 0.5 }, >> + "Check the color transformation for 0.5 transparency" >> + }, >> + { "ctm-0-75", 7, >> + {{ 0.0, }, { 0.0, }, { 0.0, }}, >> + { 0.75, 0.0, 0.0, >> + 0.0, 0.75, 0.0, >> + 0.0, 0.0, 0.75 }, >> + "Check the color transformation for 0.75 transparency" >> + }, >> + }; >> + int i; >> + >> + for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) { >> + igt_describe_f("%s", gamma_degamma_tests[i].desc); >> + igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) { >> + for_each_pipe(&data->display, pipe) { >> + run_gamma_degamma_tests_for_pipe(data, pipe, >> + gamma_degamma_tests[i].test_t); >> + } >> + } >> + } >> >> - igt_describe("Negative check for invalid gamma lut sizes"); >> - igt_subtest_f("pipe-%s-invalid-gamma-lut-sizes", kmstest_pipe_name(p)) >> - invalid_gamma_lut_sizes(data, p); >> + for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) { >> + igt_describe_f("%s", ctm_tests[i].desc); >> + igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) { >> + for_each_pipe(&data->display, pipe) { >> + run_ctm_tests_for_pipe(data, pipe, >> + ctm_tests[i].colors, >> + ctm_tests[i].ctm, >> + ctm_tests[i].iter); >> + } >> + } >> + } >> >> - igt_describe("Negative check for invalid degamma lut sizes"); >> - igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p)) >> - invalid_degamma_lut_sizes(data, p); >> + igt_fixture >> + igt_require(data->display.is_atomic); >> >> - igt_describe("Negative check for color tranformation matrix sizes"); >> - igt_subtest_f("pipe-%s-invalid-ctm-matrix-sizes", kmstest_pipe_name(p)) >> - invalid_ctm_matrix_sizes(data, p); >> + igt_describe("Verify that deep color works correctly"); >> + igt_subtest_with_dynamic("deep-color") { >> + for_each_pipe(&data->display, pipe) { >> + run_deep_color_tests_for_pipe(data, pipe); >> + } >> + } >> } >> >> igt_main >> { >> data_t data = {}; >> - enum pipe pipe; >> >> igt_fixture { >> data.drm_fd = drm_open_driver_master(DRIVER_ANY); >> @@ -999,13 +1031,11 @@ igt_main >> igt_display_require(&data.display, data.drm_fd); >> } >> >> - for_each_pipe_static(pipe) { >> - igt_subtest_group >> - run_tests_for_pipe(&data, pipe); >> + igt_subtest_group >> + run_tests_for_pipe(&data); >> >> - igt_subtest_group >> - run_invalid_tests_for_pipe(&data, pipe); >> - } >> + igt_subtest_group >> + run_invalid_tests_for_pipe(&data); >> >> igt_fixture { >> igt_display_fini(&data.display); >> diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h >> index cc07f5ee..2ea15bcd 100644 >> --- a/tests/kms_color_helper.h >> +++ b/tests/kms_color_helper.h >> @@ -50,6 +50,7 @@ typedef struct { >> igt_display_t display; >> igt_pipe_crc_t *pipe_crc; >> igt_output_t *output; >> + igt_plane_t *primary; >> >> uint32_t drm_format; >> uint32_t color_depth; >> -- >> 2.35.1 >> ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2022-07-05 16:30 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-06-30 8:55 [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Bhanuprakash Modem 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 1/2] tests/kms_color: Convert tests to dynamic Bhanuprakash Modem 2022-07-04 16:39 ` Kamil Konieczny 2022-07-04 17:14 ` Modem, Bhanuprakash 2022-07-05 16:30 ` Kamil Konieczny 2022-06-30 8:55 ` [igt-dev] [i-g-t V7 2/2] tests/kms_color: Test Cleanup Bhanuprakash Modem 2022-07-04 6:48 ` Sharma, Swati2 2022-06-30 10:04 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev9) Patchwork 2022-07-01 1:44 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_color: IGT test cleanup (rev11) Patchwork 2022-07-01 3:00 ` Modem, Bhanuprakash 2022-07-01 5:57 ` Vudum, Lakshminarayana 2022-07-01 5:34 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork 2022-07-01 21:57 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 2022-07-04 6:47 ` [igt-dev] [i-g-t V7 0/2] tests/kms_color: IGT test cleanup Sharma, Swati2 -- strict thread matches above, loose matches on Subject: below -- 2022-06-10 9:00 [igt-dev] [i-g-t 1/2] tests/kms_color: Convert tests to dynamic Bhanuprakash Modem 2022-06-28 13:13 ` [igt-dev] [i-g-t V7 " Bhanuprakash Modem 2022-06-29 5:59 ` Kamil Konieczny 2022-06-29 6:33 ` Modem, Bhanuprakash
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.