From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 89CD910E900 for ; Thu, 9 Feb 2023 04:36:26 +0000 (UTC) From: Nidhi Gupta To: igt-dev@lists.freedesktop.org Date: Thu, 9 Feb 2023 10:12:19 +0530 Message-Id: <20230209044219.4498-1-nidhi1.gupta@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [igt-dev] [PATCH i-g-t v4] tests/kms_plane_alpha_blend: Limit the test execution List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Nidhi Gupta Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: To optimize the test execution time on hardware and simulation, limit the execution to two (first & last) pipes and 2 planes (first & last). This patch will also provide an option (command line flag '-e') to execute on all pipes and planes. Example: ./kms_plane_alpha_blend -e --run-subtest alpha-7efc V2: Edited commit message (Bhanu) V3: New function for simulation constraints (Kamil) Update commit message (Bhanu) v4: Restrict the execution only on 2 pipes for real hardware aswell (Ankit) v5: Provide extended option for plane also (Bhanu) Move pipe declaration inside fixture (Ankit) Signed-off-by: Nidhi Gupta Signed-off-by: Bhanuprakash Modem --- tests/kms_plane_alpha_blend.c | 61 ++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c index 38272ccb..b8ead947 100644 --- a/tests/kms_plane_alpha_blend.c +++ b/tests/kms_plane_alpha_blend.c @@ -28,6 +28,10 @@ IGT_TEST_DESCRIPTION("Test plane alpha and blending mode properties"); +static bool extended; +static enum pipe active_pipes[IGT_MAX_PIPES]; +static uint32_t last_pipe; + typedef struct { int gfx_fd; igt_display_t display; @@ -482,6 +486,8 @@ static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t * { igt_display_t *display = &data->display; igt_plane_t *plane; + int first_plane = -1; + int last_plane = -1; for_each_plane_on_pipe(display, pipe, plane) { if (!igt_plane_has_prop(plane, IGT_PLANE_ALPHA)) @@ -496,6 +502,29 @@ static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t * if (must_multiply && !has_multiplied_alpha(data, plane)) continue; + /* Get first & last valid planes. */ + if (first_plane < 0) + first_plane = j__; + + last_plane = j__; + } + + for_each_plane_on_pipe(display, pipe, plane) { + if (!igt_plane_has_prop(plane, IGT_PLANE_ALPHA)) + continue; + + if (blend && !igt_plane_has_prop(plane, IGT_PLANE_PIXEL_BLEND_MODE)) + continue; + + /* Reset plane alpha properties between each plane. */ + reset_alpha(display, pipe); + + if (must_multiply && !has_multiplied_alpha(data, plane)) + continue; + + if (!extended && j__ != first_plane && j__ != last_plane) + continue; + igt_info("Testing plane %u\n", plane->index); test(data, pipe, plane); igt_plane_set_fb(plane, NULL); @@ -621,6 +650,11 @@ static void run_subtests(data_t *data) igt_subtest_with_dynamic(subtests[i].name) { for_each_pipe_with_single_output(&data->display, pipe, output) { + if (!extended && + pipe != active_pipes[0] && + pipe != active_pipes[last_pipe]) + continue; + prepare_crtc(data, output, pipe); if (!pipe_check(data, pipe, subtests[i].blend, subtests[i].must_multiply)) continue; @@ -633,15 +667,40 @@ static void run_subtests(data_t *data) } } -igt_main +static int opt_handler(int opt, int opt_index, void *_data) +{ + switch (opt) { + case 'e': + extended = true; + break; + default: + return IGT_OPT_HANDLER_ERROR; + } + + return IGT_OPT_HANDLER_SUCCESS; +} + +const char *help_str = + " -e \tExtended tests.\n"; + +igt_main_args("e", NULL, help_str, opt_handler, NULL) { data_t data = {}; igt_fixture { + enum pipe pipe; + + last_pipe = 0; + data.gfx_fd = drm_open_driver_master(DRIVER_ANY); igt_require_pipe_crc(data.gfx_fd); igt_display_require(&data.display, data.gfx_fd); igt_require(data.display.is_atomic); + + /* Get active pipes. */ + for_each_pipe(&data.display, pipe) + active_pipes[last_pipe++] = pipe; + last_pipe--; } run_subtests(&data); -- 2.39.0