From: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [v3 5/6] tests/kms_color: Convert tests to dynamic
Date: Tue, 10 May 2022 13:32:02 +0530 [thread overview]
Message-ID: <20220510080203.3319182-6-bhanuprakash.modem@intel.com> (raw)
In-Reply-To: <20220510080203.3319182-1-bhanuprakash.modem@intel.com>
Convert the existing subtests to dynamic subtests at pipe level.
V2:
* Fix nested igt_fixture in igt_subtest
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_color.c | 533 +++++++++++++++++++++------------------
tests/kms_color_helper.h | 1 +
2 files changed, 283 insertions(+), 251 deletions(-)
diff --git a/tests/kms_color.c b/tests/kms_color.c
index afff1744..c832c10f 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;
}
/*
@@ -655,130 +663,92 @@ 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,
+ 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", kmstest_pipe_name(p))
+ 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", kmstest_pipe_name(p)) {
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);
+
+ 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;
@@ -787,178 +757,241 @@ 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) {
+ drmModeConnector *connector = output->config.connector;
+ 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, connector))
+ 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_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) {
- drmModeConnector *connector = output->config.connector;
- uint64_t max_bpc = get_max_bpc(output);
- bool ret;
-
- if (!max_bpc)
- continue;
-
- if (!panel_supports_deep_color(data->drm_fd, connector))
- 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_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-gamma-%s", 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-degamma-%s", 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-ctm-%s", 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);
+}
- igt_pipe_crc_free(data->pipe_crc);
- data->pipe_crc = NULL;
+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;
+
+ 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;
- 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(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 degamma lut sizes");
- igt_subtest_f("pipe-%s-invalid-degamma-lut-sizes", kmstest_pipe_name(p))
- invalid_degamma_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 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);
@@ -969,13 +1002,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 a6665b1f..1ba57e6b 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
next prev parent reply other threads:[~2022-05-10 8:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-10 8:01 [igt-dev] [v3 0/6] Convert subtests to dynamic Bhanuprakash Modem
2022-05-10 8:01 ` [igt-dev] [v3 1/6] tests/kms_pipe_crc_basic: Convert tests " Bhanuprakash Modem
2022-05-10 8:01 ` [igt-dev] [v3 2/6] tests/kms_cursor_legacy: " Bhanuprakash Modem
2022-05-10 8:02 ` [igt-dev] [v3 3/6] tests/kms_cursor_edge_walk: " Bhanuprakash Modem
2022-05-10 8:02 ` [igt-dev] [v3 4/6] tests/kms_cursor_crc: " Bhanuprakash Modem
2022-05-10 8:02 ` Bhanuprakash Modem [this message]
2022-05-11 2:10 ` [igt-dev] [v3 5/6] tests/kms_color: " Bhanuprakash Modem
2022-05-10 8:02 ` [igt-dev] [v3 6/6] tests/intel-ci: Rename tests in BAT Bhanuprakash Modem
2022-05-10 9:04 ` [igt-dev] ✓ Fi.CI.BAT: success for Convert subtests to dynamic (rev4) Patchwork
2022-05-10 16:35 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2022-05-11 3:00 ` [igt-dev] ✗ Fi.CI.BAT: failure for Convert subtests to dynamic (rev5) Patchwork
2022-05-11 4:30 ` Modem, Bhanuprakash
2022-05-11 23:03 ` Vudum, Lakshminarayana
2022-05-11 15:17 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2022-05-11 18:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220510080203.3319182-6-bhanuprakash.modem@intel.com \
--to=bhanuprakash.modem@intel.com \
--cc=igt-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.