* [PATCH i-g-t 0/4] revamp big joiner test
@ 2024-02-29 18:10 Kunal Joshi
2024-02-29 18:10 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Kunal Joshi @ 2024-02-29 18:10 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi
big joiner outputs are statically assigned to pipe,
assign dynamically also add support for forcing
joiner, support for forcing joiner was introduced with
below kmd patch
drm/i915: Add bigjoiner force enable option to debugfs
Kunal Joshi (4):
lib/igt_kms: move bigjoiner_mode_found to lib
lib/igt_kms: add helpers to enable/disable force joiner
tests/intel/kms_big_joiner: revamp kms_big_joiner
tests/intel-ci/fast-feedback: HAX PATCH DO NOT MERGE
lib/igt_kms.c | 73 ++++
lib/igt_kms.h | 4 +
tests/intel-ci/fast-feedback.testlist | 5 +
tests/intel/kms_big_joiner.c | 503 ++++++++++++++------------
4 files changed, 351 insertions(+), 234 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib 2024-02-29 18:10 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi @ 2024-02-29 18:10 ` Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 2/4] lib/igt_kms: add helpers to enable/disable force joiner Kunal Joshi ` (4 subsequent siblings) 5 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-02-29 18:10 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi, Karthik B S, Bhanuprakash Modem move bigjoiner_mode_found to lib Cc: Karthik B S <karthik.b.s@intel.com> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> --- lib/igt_kms.c | 25 +++++++++++++++++++++++++ lib/igt_kms.h | 2 ++ tests/intel/kms_big_joiner.c | 14 +------------- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 1b4d0d761..89956b9d5 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -6142,6 +6142,31 @@ bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock) mode->clock > max_dotclock); } +/** + * bigjoiner_mode_found: + * @connector: libdrm connector + * @sort_method: comparator method + * @mode: libdrm mode + * + * Bigjoiner will come in to the picture when the + * resolution > 5K or clock > max-dot-clock. + * + * Returns: True if big joiner found in connector modes + */ +bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector, + int max_dotclock) +{ + bool found = false; + + igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc); + found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock); + if (!found) { + igt_sort_connector_modes(connector, sort_drm_modes_by_clk_dsc); + found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock); + } + return found; +} + /** * igt_check_bigjoiner_support: * @display: a pointer to an #igt_display_t structure diff --git a/lib/igt_kms.h b/lib/igt_kms.h index b3882808b..bab8487d3 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -1212,6 +1212,8 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe, igt_output_t *output, int bpc); int igt_get_max_dotclock(int fd); bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock); +bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector, + int max_dotclock); bool igt_check_bigjoiner_support(igt_display_t *display); bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode); bool intel_pipe_output_combo_valid(igt_display_t *display); diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c index aba2adfbe..28678b958 100644 --- a/tests/intel/kms_big_joiner.c +++ b/tests/intel/kms_big_joiner.c @@ -199,16 +199,6 @@ static void test_dual_display(data_t *data) igt_display_commit2(display, COMMIT_ATOMIC); } -static bool bigjoiner_mode_found(drmModeConnector *connector, - int (*sort_method)(const void *, const void*), - drmModeModeInfo *mode) -{ - igt_sort_connector_modes(connector, sort_method); - *mode = connector->modes[0]; - - return igt_bigjoiner_possible(mode, max_dotclock); -} - igt_main { data_t data; @@ -235,9 +225,7 @@ igt_main * Bigjoiner will come in to the picture when the * resolution > 5K or clock > max-dot-clock. */ - found = (bigjoiner_mode_found(connector, sort_drm_modes_by_res_dsc, &mode) || - bigjoiner_mode_found(connector, sort_drm_modes_by_clk_dsc, &mode)) ? - true : false; + found = bigjoiner_mode_found(data.drm_fd, connector, max_dotclock); if (found) { data.output[count].output_id = output->id; -- 2.25.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH i-g-t 2/4] lib/igt_kms: add helpers to enable/disable force joiner 2024-02-29 18:10 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi @ 2024-02-29 18:10 ` Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 3/4] tests/intel/kms_big_joiner: revamp kms_big_joiner Kunal Joshi ` (3 subsequent siblings) 5 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-02-29 18:10 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi, Karthik B S, Bhanuprakash Modem add helped to enable/disable force joiner and for checking current state enabled/disabled Cc: Karthik B S <karthik.b.s@intel.com> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> --- lib/igt_kms.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/igt_kms.h | 2 ++ 2 files changed, 50 insertions(+) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 89956b9d5..e6952f56a 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -6242,6 +6242,54 @@ bool igt_check_bigjoiner_support(igt_display_t *display) return true; } +/** + * Checks if the force big joiner is enabled for a specific connector. + * + * @param drmfd The file descriptor of the DRM device. + * @param connector_name The name of the connector. + * Returns: + * 1 if the force big joiner is enabled, 0 if disabled, and -1 on error. + */ +int igt_check_force_bigjoiner_status(int drmfd, char *connector_name) +{ + char buf[512]; + int debugfs_fd, ret; + + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_RDONLY); + ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", + buf, sizeof(buf)); + if (ret < 0) { + igt_info("Could not read debugfs %s\n", + strerror(-ret)); + return -1; + } + if (strstr(buf, "Bigjoiner enable: 1")) + return 1; + else if (strstr(buf, "Bigjoiner enable: 0")) + return 0; + else + return -1; +} + +/** + * Forces the enable/disable state of big joiner for a specific connector. + * + * @param drmfd The file descriptor of the DRM device. + * @param connector_name The name of the connector. + * @param enable The desired state of big joiner (true for enable, false for disable). + * Returns: + * >=0 on success, otherwise an error code. + */ +int igt_force_bigjoiner_enable(int drmfd, char *connector_name, bool enable) +{ + int debugfs_fd, ret; + + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY); + ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1); + close(debugfs_fd); + return ret; +} + /** * igt_parse_mode_string: * @mode_string: modeline string diff --git a/lib/igt_kms.h b/lib/igt_kms.h index bab8487d3..b28022db4 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -1215,6 +1215,8 @@ bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock); bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector, int max_dotclock); bool igt_check_bigjoiner_support(igt_display_t *display); +int igt_check_force_bigjoiner_status(int drmfd, char *connector_name); +int igt_force_bigjoiner_enable(int drmfd, char *connector_name, bool enable); bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode); bool intel_pipe_output_combo_valid(igt_display_t *display); bool igt_check_output_is_dp_mst(igt_output_t *output); -- 2.25.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH i-g-t 3/4] tests/intel/kms_big_joiner: revamp kms_big_joiner 2024-02-29 18:10 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 2/4] lib/igt_kms: add helpers to enable/disable force joiner Kunal Joshi @ 2024-02-29 18:10 ` Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 4/4] tests/intel-ci/fast-feedback: HAX PATCH DO NOT MERGE Kunal Joshi ` (2 subsequent siblings) 5 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-02-29 18:10 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi, Karthik B S, Bhanuprakash Modem big joiner outputs are statically assigned to pipe, assign dynamically also add support for forcing joiner, support for forcing joiner was introduced with below kmd patch drm/i915: Add bigjoiner force enable option to debugfs Cc: Karthik B S <karthik.b.s@intel.com> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> --- tests/intel/kms_big_joiner.c | 493 +++++++++++++++++++---------------- 1 file changed, 270 insertions(+), 223 deletions(-) diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c index 28678b958..5f5f6f6b4 100644 --- a/tests/intel/kms_big_joiner.c +++ b/tests/intel/kms_big_joiner.c @@ -1,27 +1,6 @@ +/* SPDX-License-Identifier: MIT */ /* - * Copyright © 2020 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Author: - * Karthik B S <karthik.b.s@intel.com> + * Copyright © 2024 Intel Corporation */ /** @@ -37,22 +16,36 @@ #include "igt.h" /** - * SUBTEST: invalid-modeset - * Description: Verify if the modeset on the adjoining pipe is rejected when - * the pipe is active with a big joiner modeset - * * SUBTEST: basic * Description: Verify the basic modeset on big joiner mode on all pipes * - * SUBTEST: 2x-modeset - * Description: Verify simultaneous modeset on 2 big joiner outputs + * SUBTEST: force-joiner-basic + * Description: Verify the basic modeset on force joiner mode on all pipes + * + * SUBTEST: invalid-modeset + * Description: Verify the invalid modeset on big joiner mode on all pipes + * + * SUBTEST: force-joiner-invalid-modeset + * Description: Verify the invalid modeset on force joiner mode on all pipes */ +IGT_TEST_DESCRIPTION("Test big joiner / force joiner"); -IGT_TEST_DESCRIPTION("Test big joiner"); +#define MAX_OUTPUTS 256 +#define MAX_COMBINATIONS 1000 +#define INVALID_TEST_OUTPUT 2 +typedef struct { + int combination[MAX_OUTPUTS]; +} Combination; -struct bigjoiner_output { - uint32_t output_id; - drmModeModeInfo mode; +enum tests { + BASIC, + INVALID_MODESET, + INVALID, +}; + +enum joiner_type { + BIG_JOINER = 1 << 1, + INVALID_JOINER = -1, }; typedef struct { @@ -60,273 +53,327 @@ typedef struct { igt_display_t display; struct igt_fb fb; int n_pipes; - enum pipe pipe1; - enum pipe pipe2; - struct bigjoiner_output output[2]; + uint64_t big_joiner_outputs[IGT_MAX_PIPES]; + uint64_t non_big_joiner_outputs[IGT_MAX_PIPES]; + uint64_t combined_outputs[IGT_MAX_PIPES]; + int big_joiner_output_count; + int non_big_joiner_output_count; + int combined_output_count; + int output_count; + enum pipe pipe_seq[IGT_MAX_PIPES]; } data_t; static int max_dotclock; -static void test_invalid_modeset(data_t *data) +static bool output_supports_force_joiner(igt_output_t *output) { - igt_output_t *output; - igt_display_t *display = &data->display; - int ret; + return output->config.connector->connector_type == + DRM_MODE_CONNECTOR_DisplayPort || + output->config.connector->connector_type == + DRM_MODE_CONNECTOR_eDP; +} - igt_info("Bigjoiner test on "); - for_each_connected_output(display, output){ - enum pipe p = output->pending_pipe; - drmModeModeInfo *mode; - igt_pipe_t *pipe; - igt_plane_t *plane; +static void generate_combinations(int output_count, int pipe_count, + int pipes_per_output, + Combination combinations[MAX_COMBINATIONS], + uint64_t *num_combinations) +{ + int i, index; + int current_combination[MAX_OUTPUTS]; - if (p == PIPE_NONE) - continue; + for (i = 0; i < output_count; ++i) + current_combination[i] = i * pipes_per_output; - mode = igt_output_get_mode(output); - igt_info("pipe:%s, output:%s, mode:", kmstest_pipe_name(p), igt_output_name(output)); - kmstest_dump_mode(mode); + while (current_combination[0] <= pipe_count - output_count * pipes_per_output) { + for (i = 0; i < output_count; ++i) + combinations[*num_combinations].combination[i] = current_combination[i]; - pipe = &display->pipes[p]; - plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); + (*num_combinations)++; - igt_plane_set_fb(plane, &data->fb); - igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay); - igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay); - } + index = output_count - 1; + while (index >= 0 && current_combination[index] == pipe_count - (output_count - index) * pipes_per_output) + index--; - igt_assert(!igt_check_bigjoiner_support(display)); + if (index < 0) + break; - /* This commit is expectd to fail as this pipe is being used for big joiner */ - ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY | - DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); + current_combination[index]++; + for (i = index + 1; i < output_count; ++i) + current_combination[i] = current_combination[i - 1] + pipes_per_output; + } +} - igt_display_reset(&data->display); - igt_display_commit2(display, COMMIT_ATOMIC); +static igt_output_t *get_output_by_id(data_t *data, uint64_t output_id) +{ + igt_output_t *output; - igt_assert_lt(ret, 0); + for_each_connected_output(&data->display, output) { + if (output->id == output_id) + return output; + } + igt_assert("Output not found\n"); + return NULL; } -static void test_basic_modeset(data_t *data) +static void test_invalid_modeset_two_joiner(data_t *data, bool force_joiner, + bool combined) { + int i, j, ret; + igt_output_t *output; + uint64_t *outputs; + igt_plane_t *primary[INVALID_TEST_OUTPUT]; + igt_fb_t fb[INVALID_TEST_OUTPUT]; drmModeModeInfo *mode; - igt_output_t *output, *bigjoiner_output = NULL; - igt_display_t *display = &data->display; - igt_pipe_t *pipe; - igt_plane_t *plane; - igt_display_reset(display); + outputs = force_joiner ? data->non_big_joiner_outputs : + combined ? data->combined_outputs : data->big_joiner_outputs; - for_each_connected_output(display, output) { - if (data->output[0].output_id == output->id) { - bigjoiner_output = output; - break; + igt_display_reset(&data->display); + for (i = 0; i < data->n_pipes-1; i++) { + for (j = 0; j < INVALID_TEST_OUTPUT; j++) { + output = get_output_by_id(data, outputs[j]); + igt_assert(output); + if (force_joiner) { + igt_force_bigjoiner_enable(data->drm_fd, output->name, true); + igt_assert(igt_check_force_bigjoiner_status(data->drm_fd, output->name) == 1); + } + igt_output_set_pipe(output, data->pipe_seq[i + j]); + mode = igt_output_get_mode(output); + igt_info(" Assigning pipe %s to %s with mode %dx%d@%d%s", + kmstest_pipe_name(data->pipe_seq[i + j]), + igt_output_name(output), mode->hdisplay, + mode->vdisplay, mode->vrefresh, + j == INVALID_TEST_OUTPUT - 1 ? "\n" : ", "); + primary[j] = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888, + DRM_FORMAT_MOD_LINEAR, &fb[j]); + igt_plane_set_fb(primary[j], &fb[j]); + } + ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC); + igt_assert_f(ret != 0, "Commit shouldn't have passed\n"); + if (force_joiner) { + igt_display_reset(&data->display); + for (j = 0; j < INVALID_TEST_OUTPUT; j++) { + output = get_output_by_id(data, outputs[j]); + igt_assert(output); + igt_force_bigjoiner_enable(data->drm_fd, output->name, false); + igt_assert(igt_check_force_bigjoiner_status(data->drm_fd, output->name) == 0); + } + igt_display_commit2(&data->display, COMMIT_ATOMIC); } } - - igt_output_set_pipe(bigjoiner_output, data->pipe1); - - mode = &data->output[0].mode; - igt_output_override_mode(bigjoiner_output, mode); - - pipe = &display->pipes[data->pipe1]; - plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); - - igt_plane_set_fb(plane, &data->fb); - igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay); - igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay); - - igt_display_commit2(display, COMMIT_ATOMIC); - - igt_output_set_pipe(bigjoiner_output, PIPE_NONE); - igt_plane_set_fb(plane, NULL); - igt_display_commit2(display, COMMIT_ATOMIC); } -static void test_dual_display(data_t *data) +static void tets_big_joiner_on_last_pipe(data_t *data, bool force_joiner) { + int i, len, ret; + uint64_t *outputs; + igt_output_t *output; + igt_plane_t *primary; + igt_fb_t fb; drmModeModeInfo *mode; - igt_output_t *output, *bigjoiner_output[2]; - igt_display_t *display = &data->display; - igt_pipe_t *pipe; - igt_plane_t *plane1, *plane2; - int count = 0; - igt_display_reset(display); + len = force_joiner ? data->non_big_joiner_output_count : data->big_joiner_output_count; + outputs = force_joiner ? data->non_big_joiner_outputs : data->big_joiner_outputs; - for_each_connected_output(display, output) { - if (data->output[count].output_id == output->id) { - bigjoiner_output[count] = output; - count++; + for (i = 0; i < len; i++) { + igt_display_reset(&data->display); + output = get_output_by_id(data, outputs[i]); + if (force_joiner) { + igt_force_bigjoiner_enable(data->drm_fd, output->name, true); + igt_assert(igt_check_force_bigjoiner_status(data->drm_fd, output->name) == 1); } - - if (count > 1) - break; + igt_output_set_pipe(output, data->pipe_seq[data->n_pipes - 1]); + mode = igt_output_get_mode(output); + igt_info(" Assigning pipe %s to %s with mode %dx%d@%d\n", + kmstest_pipe_name(data->pipe_seq[data->n_pipes - 1]), + igt_output_name(output), mode->hdisplay, + mode->vdisplay, mode->vrefresh); + primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888, + DRM_FORMAT_MOD_LINEAR, &fb); + igt_plane_set_fb(primary, &fb); + ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC); + igt_assert_f(ret != 0, "Commit shouldn't have passed\n"); } + if (force_joiner) { + for (i = 0; i < len; i++) { + output = get_output_by_id(data, outputs[i]); + igt_force_bigjoiner_enable(data->drm_fd, output->name, false); + } + igt_display_commit2(&data->display, COMMIT_ATOMIC); + } +} - igt_output_set_pipe(bigjoiner_output[0], data->pipe1); - igt_output_set_pipe(bigjoiner_output[1], data->pipe2); - - /* Set up first big joiner output on Pipe A*/ - mode = &data->output[0].mode; - igt_output_override_mode(bigjoiner_output[0], mode); - - pipe = &display->pipes[data->pipe1]; - plane1 = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); - - igt_plane_set_fb(plane1, &data->fb); - igt_fb_set_size(&data->fb, plane1, mode->hdisplay, mode->vdisplay); - igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay); - - /* Set up second big joiner output on Pipe C*/ - mode = &data->output[1].mode; - igt_output_override_mode(bigjoiner_output[1], mode); - - pipe = &display->pipes[data->pipe2]; - plane2 = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY); - - igt_plane_set_fb(plane2, &data->fb); - igt_fb_set_size(&data->fb, plane2, mode->hdisplay, mode->vdisplay); - igt_plane_set_size(plane2, mode->hdisplay, mode->vdisplay); - - igt_display_commit2(display, COMMIT_ATOMIC); +static void test_basic_modeset(data_t *data, int num_outputs, + Combination combinations[MAX_COMBINATIONS], + uint64_t num_combinations, bool force_joiner) +{ + int i, j, ret; + igt_display_t *display = &data->display; + igt_output_t *output[num_outputs]; + igt_plane_t *primary[num_outputs]; + igt_fb_t fb[num_outputs]; + drmModeModeInfo *mode; - /* Clean up */ - igt_output_set_pipe(bigjoiner_output[0], PIPE_NONE); - igt_output_set_pipe(bigjoiner_output[1], PIPE_NONE); - igt_plane_set_fb(plane1, NULL); - igt_plane_set_fb(plane2, NULL); - igt_display_commit2(display, COMMIT_ATOMIC); + for (i = 0; i < num_combinations; i++) { + igt_display_reset(display); + for (j = 0; j < num_outputs; j++) { + output[j] = get_output_by_id(data, + force_joiner ? + data->non_big_joiner_outputs[j] : + data->big_joiner_outputs[j]); + if (force_joiner) { + igt_force_bigjoiner_enable(data->drm_fd, + output[j]->name, true); + igt_assert(igt_check_force_bigjoiner_status(data->drm_fd, + output[j]->name) == 1); + } + igt_info("Assigning pipe %d to %s%s", + data->pipe_seq[combinations[i].combination[j]], + output[j]->name, j == num_outputs - 1 ? "\n" : ", "); + igt_output_set_pipe(output[j], data->pipe_seq[combinations[i].combination[j]]); + primary[j] = igt_output_get_plane_type(output[j], DRM_PLANE_TYPE_PRIMARY); + mode = igt_output_get_mode(output[j]); + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888, + DRM_FORMAT_MOD_LINEAR, &fb[j]); + igt_plane_set_fb(primary[j], &fb[j]); + } + ret = igt_display_try_commit2(display, COMMIT_ATOMIC); + if (ret == 0) + igt_display_commit2(display, COMMIT_ATOMIC); + else + igt_assert_f(ret == 0, "Commit failed\n"); + + if (force_joiner) { + for (j = 0; j < num_outputs; j++) { + igt_display_reset(display); + igt_force_bigjoiner_enable(data->drm_fd, output[j]->name, false); + igt_assert(igt_check_force_bigjoiner_status(data->drm_fd, output[j]->name) == 0); + igt_display_commit2(&data->display, COMMIT_ATOMIC); + } + } + } } igt_main { + int i, j; data_t data; igt_output_t *output; - drmModeModeInfo mode; - int valid_output = 0, i, count = 0, j = 0; - uint16_t width = 0, height = 0; - enum pipe pipe_seq[IGT_MAX_PIPES]; + i = j = 0; igt_fixture { data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE); kmstest_set_vt_graphics_mode(); - igt_display_require(&data.display, data.drm_fd); igt_require(data.display.is_atomic); - max_dotclock = igt_get_max_dotclock(data.drm_fd); + data.big_joiner_output_count = 0; + data.non_big_joiner_output_count = 0; + data.combined_output_count = 0; + data.output_count = 0; for_each_connected_output(&data.display, output) { bool found = false; drmModeConnector *connector = output->config.connector; - - /* - * Bigjoiner will come in to the picture when the - * resolution > 5K or clock > max-dot-clock. - */ found = bigjoiner_mode_found(data.drm_fd, connector, max_dotclock); - if (found) { - data.output[count].output_id = output->id; - memcpy(&data.output[count].mode, &mode, sizeof(drmModeModeInfo)); - count++; - - width = max(width, mode.hdisplay); - height = max(height, mode.vdisplay); + data.big_joiner_outputs[data.big_joiner_output_count++] = output->id; + igt_output_override_mode(output, &connector->modes[0]); + } else { + if (output_supports_force_joiner(output)) { + data.non_big_joiner_outputs[data.non_big_joiner_output_count++] = output->id; + igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc); + igt_output_override_mode(output, &connector->modes[0]); + } } - valid_output++; + data.output_count++; } data.n_pipes = 0; for_each_pipe(&data.display, i) { data.n_pipes++; - pipe_seq[j] = i; + data.pipe_seq[j] = i; j++; } - - igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n"); - - igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888, - DRM_FORMAT_MOD_LINEAR, &data.fb); } igt_describe("Verify the basic modeset on big joiner mode on all pipes"); igt_subtest_with_dynamic("basic") { - for (i = 0; i < data.n_pipes - 1; i++) { - data.pipe1 = pipe_seq[i]; - igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe_seq[i])) - test_basic_modeset(&data); + igt_require_f(data.big_joiner_output_count > 0, "Big joiner output not found\n"); + igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n"); + + for (i = 0; i < data.big_joiner_output_count; i++) { + uint64_t num_combinations = 0; + Combination combinations[MAX_COMBINATIONS]; + + generate_combinations(i+1, data.n_pipes, BIG_JOINER, combinations, &num_combinations); + igt_info("Number of combinations for %d outputs and %d pipes are %ld\n", + i+1, data.n_pipes, num_combinations); + + if (num_combinations > 0) + igt_dynamic_f("%dx-big-joiner", i+1) + test_basic_modeset(&data, i+1, combinations, num_combinations, false); + else + break; } } - igt_describe("Verify if the modeset on the adjoining pipe is rejected " - "when the pipe is active with a big joiner modeset"); - igt_subtest_with_dynamic("invalid-modeset") { - data.pipe1 = pipe_seq[j - 1]; - - igt_display_reset(&data.display); - for_each_connected_output(&data.display, output) { - if (data.output[0].output_id != output->id) - continue; - - mode = data.output[0].mode; - igt_output_set_pipe(output, data.pipe1); - igt_output_override_mode(output, &mode); - - igt_dynamic_f("pipe-%s-%s", - kmstest_pipe_name(data.pipe1), - igt_output_name(output)) - test_invalid_modeset(&data); + igt_describe("Verify the basic modeset on big joiner mode on all pipes"); + igt_subtest_with_dynamic("force-joiner-basic") { + igt_require_f(data.non_big_joiner_output_count > 0, "Big joiner output not found\n"); + igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n"); + + for (i = 0; i < data.non_big_joiner_output_count; i++) { + uint64_t num_combinations = 0; + Combination combinations[MAX_COMBINATIONS]; + + generate_combinations(i+1, data.n_pipes, BIG_JOINER, combinations, &num_combinations); + igt_info("Number of combinations for %d outputs and %d pipes are %ld\n", + i+1, data.n_pipes, num_combinations); + + if (num_combinations > 0) + igt_dynamic_f("%dx-joiner", i+1) + test_basic_modeset(&data, i+1, combinations, num_combinations, true); + else + break; } + } - if(valid_output > 1) { - for (i = 0; i < data.n_pipes - 1; i++) { - igt_output_t *first_output = NULL, *second_output = NULL; - - data.pipe1 = pipe_seq[i]; - data.pipe2 = pipe_seq[i + 1]; - - igt_display_reset(&data.display); - for_each_connected_output(&data.display, output) { - if (data.output[0].output_id == output->id) { - first_output = output; - mode = data.output[0].mode; + igt_subtest_with_dynamic("invalid-modeset") { + igt_require_f(data.big_joiner_output_count > 0, "Big joiner output not found\n"); + igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n"); - igt_output_set_pipe(output, data.pipe1); - igt_output_override_mode(output, &mode); - } else if (second_output == NULL) { - second_output = output; - igt_output_set_pipe(output, data.pipe2); + if (data.big_joiner_output_count >= 1) + igt_dynamic_f("big_joiner_on_last_pipe") + tets_big_joiner_on_last_pipe(&data, false); - break; - } - } + if (data.big_joiner_output_count > 1) + igt_dynamic_f("invalid_combinations") + test_invalid_modeset_two_joiner(&data, false, false); - igt_dynamic_f("pipe-%s-%s-pipe-%s-%s", - kmstest_pipe_name(data.pipe1), - igt_output_name(first_output), - kmstest_pipe_name(data.pipe2), - igt_output_name(second_output)) - test_invalid_modeset(&data); - } + if (data.big_joiner_output_count == 1 && data.non_big_joiner_output_count > 0) { + data.combined_outputs[data.combined_output_count++] = data.big_joiner_outputs[0]; + data.combined_outputs[data.combined_output_count++] = data.non_big_joiner_outputs[0]; + test_invalid_modeset_two_joiner(&data, false, true); } } - igt_describe("Verify simultaneous modeset on 2 big joiner outputs"); - igt_subtest_with_dynamic("2x-modeset") { - igt_require_f(count > 1, "2 outputs with big joiner modes are required\n"); - igt_require_f(data.n_pipes > 3, "Minumum of 4 pipes are required\n"); - for (i = 0; (i + 2) < data.n_pipes - 1; i++) { - data.pipe1 = pipe_seq[i]; - data.pipe2 = pipe_seq[i + 2]; - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe_seq[i]), kmstest_pipe_name(pipe_seq[i + 2])) - test_dual_display(&data); - } + igt_subtest_with_dynamic("force-joiner-invalid-modeset") { + igt_require_f(data.non_big_joiner_output_count > 0, "Non big joiner output not found\n"); + igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n"); + + if (data.non_big_joiner_output_count >= 1) + igt_dynamic_f("big_joiner_on_last_pipe") + tets_big_joiner_on_last_pipe(&data, true); + + if (data.non_big_joiner_output_count > 1) + igt_dynamic_f("invalid_combinations") + test_invalid_modeset_two_joiner(&data, true, false); } igt_fixture { - igt_remove_fb(data.drm_fd, &data.fb); igt_display_fini(&data.display); drm_close_driver(data.drm_fd); } -- 2.25.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH i-g-t 4/4] tests/intel-ci/fast-feedback: HAX PATCH DO NOT MERGE 2024-02-29 18:10 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi ` (2 preceding siblings ...) 2024-02-29 18:10 ` [PATCH i-g-t 3/4] tests/intel/kms_big_joiner: revamp kms_big_joiner Kunal Joshi @ 2024-02-29 18:10 ` Kunal Joshi 2024-02-29 18:26 ` ✓ CI.xeBAT: success for revamp big joiner test Patchwork 2024-02-29 18:40 ` ✗ Fi.CI.BAT: failure " Patchwork 5 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-02-29 18:10 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi Just for testing Do not merge Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> --- tests/intel-ci/fast-feedback.testlist | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist index be0965110..06863f1a2 100644 --- a/tests/intel-ci/fast-feedback.testlist +++ b/tests/intel-ci/fast-feedback.testlist @@ -1,6 +1,11 @@ # Try to load the driver if it's not available yet. igt@i915_module_load@load +#HAX PATCH DO NOT MERGE +igt@kms_big_joiner@basic +igt@kms_big_joiner@force-joiner-basic +igt@kms_big_joiner@invalid-modeset +igt@kms_big_joiner@force-joiner-invalid-modeset # Keep alphabetically sorted by default igt@core_auth@basic-auth igt@debugfs_test@read_all_entries -- 2.25.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* ✓ CI.xeBAT: success for revamp big joiner test 2024-02-29 18:10 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi ` (3 preceding siblings ...) 2024-02-29 18:10 ` [PATCH i-g-t 4/4] tests/intel-ci/fast-feedback: HAX PATCH DO NOT MERGE Kunal Joshi @ 2024-02-29 18:26 ` Patchwork 2024-02-29 18:40 ` ✗ Fi.CI.BAT: failure " Patchwork 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2024-02-29 18:26 UTC (permalink / raw) To: Kunal Joshi; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 951 bytes --] == Series Details == Series: revamp big joiner test URL : https://patchwork.freedesktop.org/series/130572/ State : success == Summary == CI Bug Log - changes from XEIGT_7738_BAT -> XEIGTPW_10758_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (4 -> 4) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * IGT: IGT_7738 -> IGTPW_10758 * Linux: xe-876-12db124b8cef9c32b7bc69a5abbaff016965cf99 -> xe-878-68e66ae04f6f2718699716285e8ddb09a469af35 IGTPW_10758: 10758 IGT_7738: 7738 xe-876-12db124b8cef9c32b7bc69a5abbaff016965cf99: 12db124b8cef9c32b7bc69a5abbaff016965cf99 xe-878-68e66ae04f6f2718699716285e8ddb09a469af35: 68e66ae04f6f2718699716285e8ddb09a469af35 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10758/index.html [-- Attachment #2: Type: text/html, Size: 1510 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✗ Fi.CI.BAT: failure for revamp big joiner test 2024-02-29 18:10 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi ` (4 preceding siblings ...) 2024-02-29 18:26 ` ✓ CI.xeBAT: success for revamp big joiner test Patchwork @ 2024-02-29 18:40 ` Patchwork 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2024-02-29 18:40 UTC (permalink / raw) To: Kunal Joshi; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 17843 bytes --] == Series Details == Series: revamp big joiner test URL : https://patchwork.freedesktop.org/series/130572/ State : failure == Summary == CI Bug Log - changes from CI_DRM_14368 -> IGTPW_10758 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_10758 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_10758, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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_10758/index.html Participating hosts (43 -> 41) ------------------------------ Missing (2): bat-arls-2 fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_10758: ### IGT changes ### #### Possible regressions #### * igt@kms_big_joiner@basic: - bat-dg1-7: NOTRUN -> [SKIP][1] +3 other tests skip [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg1-7/igt@kms_big_joiner@basic.html - bat-adlp-9: NOTRUN -> [SKIP][2] +1 other test skip [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adlp-9/igt@kms_big_joiner@basic.html - bat-rplp-1: NOTRUN -> [SKIP][3] +1 other test skip [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rplp-1/igt@kms_big_joiner@basic.html - bat-dg2-9: NOTRUN -> [SKIP][4] +1 other test skip [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-9/igt@kms_big_joiner@basic.html - bat-adln-1: NOTRUN -> [SKIP][5] +1 other test skip [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adln-1/igt@kms_big_joiner@basic.html - bat-adlp-6: NOTRUN -> [SKIP][6] +1 other test skip [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adlp-6/igt@kms_big_joiner@basic.html - bat-dg2-11: NOTRUN -> [SKIP][7] +3 other tests skip [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-11/igt@kms_big_joiner@basic.html - bat-dg2-14: NOTRUN -> [SKIP][8] +3 other tests skip [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-14/igt@kms_big_joiner@basic.html * {igt@kms_big_joiner@force-joiner-basic@1x-joiner} (NEW): - bat-dg2-9: NOTRUN -> [FAIL][9] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-9/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - {bat-arls-4}: NOTRUN -> [FAIL][10] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-arls-4/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - bat-adlp-6: NOTRUN -> [FAIL][11] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adlp-6/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - fi-skl-6600u: NOTRUN -> [FAIL][12] +1 other test fail [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-skl-6600u/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - {bat-rpls-3}: NOTRUN -> [FAIL][13] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rpls-3/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - fi-apl-guc: NOTRUN -> [FAIL][14] +1 other test fail [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-apl-guc/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - bat-dg2-8: NOTRUN -> [FAIL][15] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-8/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - bat-arls-3: NOTRUN -> [FAIL][16] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-arls-3/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - bat-mtlp-8: NOTRUN -> [FAIL][17] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-mtlp-8/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - {bat-adls-6}: NOTRUN -> [FAIL][18] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adls-6/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - bat-adlp-9: NOTRUN -> [FAIL][19] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adlp-9/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - bat-adln-1: NOTRUN -> [DMESG-FAIL][20] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adln-1/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html - bat-rplp-1: NOTRUN -> [FAIL][21] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rplp-1/igt@kms_big_joiner@force-joiner-basic@1x-joiner.html * {igt@kms_big_joiner@force-joiner-invalid-modeset} (NEW): - fi-rkl-11600: NOTRUN -> [SKIP][22] +3 other tests skip [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-rkl-11600/igt@kms_big_joiner@force-joiner-invalid-modeset.html - fi-tgl-1115g4: NOTRUN -> [SKIP][23] +3 other tests skip [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-tgl-1115g4/igt@kms_big_joiner@force-joiner-invalid-modeset.html - bat-mtlp-6: NOTRUN -> [SKIP][24] +1 other test skip [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-mtlp-6/igt@kms_big_joiner@force-joiner-invalid-modeset.html - {bat-rpls-3}: NOTRUN -> [SKIP][25] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rpls-3/igt@kms_big_joiner@force-joiner-invalid-modeset.html - {bat-adls-6}: NOTRUN -> [SKIP][26] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adls-6/igt@kms_big_joiner@force-joiner-invalid-modeset.html * {igt@kms_big_joiner@force-joiner-invalid-modeset@big_joiner_on_last_pipe} (NEW): - fi-skl-guc: NOTRUN -> [FAIL][27] +1 other test fail [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-skl-guc/igt@kms_big_joiner@force-joiner-invalid-modeset@big_joiner_on_last_pipe.html - bat-jsl-3: NOTRUN -> [FAIL][28] +1 other test fail [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-jsl-3/igt@kms_big_joiner@force-joiner-invalid-modeset@big_joiner_on_last_pipe.html - bat-jsl-1: NOTRUN -> [FAIL][29] +1 other test fail [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-jsl-1/igt@kms_big_joiner@force-joiner-invalid-modeset@big_joiner_on_last_pipe.html - fi-kbl-7567u: NOTRUN -> [FAIL][30] +1 other test fail [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-kbl-7567u/igt@kms_big_joiner@force-joiner-invalid-modeset@big_joiner_on_last_pipe.html * {igt@kms_big_joiner@force-joiner-invalid-modeset@invalid_combinations} (NEW): - fi-cfl-8109u: NOTRUN -> [FAIL][31] +2 other tests fail [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-cfl-8109u/igt@kms_big_joiner@force-joiner-invalid-modeset@invalid_combinations.html * igt@kms_big_joiner@invalid-modeset: - bat-jsl-3: NOTRUN -> [SKIP][32] +1 other test skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-jsl-3/igt@kms_big_joiner@invalid-modeset.html - bat-mtlp-8: NOTRUN -> [SKIP][33] +1 other test skip [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-mtlp-8/igt@kms_big_joiner@invalid-modeset.html - bat-dg2-8: NOTRUN -> [SKIP][34] +1 other test skip [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-8/igt@kms_big_joiner@invalid-modeset.html - bat-adlm-1: NOTRUN -> [SKIP][35] +3 other tests skip [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adlm-1/igt@kms_big_joiner@invalid-modeset.html - bat-jsl-1: NOTRUN -> [SKIP][36] +1 other test skip [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-jsl-1/igt@kms_big_joiner@invalid-modeset.html - bat-arls-1: NOTRUN -> [SKIP][37] +3 other tests skip [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-arls-1/igt@kms_big_joiner@invalid-modeset.html - bat-arls-3: NOTRUN -> [SKIP][38] +1 other test skip [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-arls-3/igt@kms_big_joiner@invalid-modeset.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@kms_big_joiner@basic: - {bat-arls-4}: NOTRUN -> [SKIP][39] +1 other test skip [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-arls-4/igt@kms_big_joiner@basic.html * igt@kms_big_joiner@invalid-modeset: - {bat-adls-6}: NOTRUN -> [SKIP][40] +1 other test skip [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-adls-6/igt@kms_big_joiner@invalid-modeset.html * igt@kms_busy@basic: - {bat-rpls-3}: NOTRUN -> [SKIP][41] +2 other tests skip [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rpls-3/igt@kms_busy@basic.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - {bat-rpls-3}: [SKIP][42] ([i915#4103]) -> [SKIP][43] +1 other test skip [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14368/bat-rpls-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rpls-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy: - {bat-rpls-3}: [PASS][44] -> [SKIP][45] +5 other tests skip [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14368/bat-rpls-3/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rpls-3/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html * igt@kms_dsc@dsc-basic: - {bat-rpls-3}: [SKIP][46] ([i915#3555] / [i915#3840] / [i915#9886]) -> [SKIP][47] [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14368/bat-rpls-3/igt@kms_dsc@dsc-basic.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rpls-3/igt@kms_dsc@dsc-basic.html New tests --------- New tests have been introduced between CI_DRM_14368 and IGTPW_10758: ### New IGT tests (5) ### * igt@kms_big_joiner@force-joiner-basic: - Statuses : 22 skip(s) - Exec time: [0.0] s * igt@kms_big_joiner@force-joiner-basic@1x-joiner: - Statuses : 1 dmesg-fail(s) 17 fail(s) - Exec time: [0.01, 2.81] s * igt@kms_big_joiner@force-joiner-invalid-modeset: - Statuses : 24 skip(s) - Exec time: [0.0] s * igt@kms_big_joiner@force-joiner-invalid-modeset@big_joiner_on_last_pipe: - Statuses : 7 fail(s) 9 pass(s) - Exec time: [0.01, 1.33] s * igt@kms_big_joiner@force-joiner-invalid-modeset@invalid_combinations: - Statuses : 1 fail(s) - Exec time: [0.01] s Known issues ------------ Here are the changes found in IGTPW_10758 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_lmem_swapping@basic: - fi-apl-guc: NOTRUN -> [SKIP][48] ([fdo#109271] / [i915#4613]) +3 other tests skip [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-apl-guc/igt@gem_lmem_swapping@basic.html * igt@kms_big_joiner@basic: - fi-pnv-d510: NOTRUN -> [SKIP][49] ([fdo#109271]) +3 other tests skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-pnv-d510/igt@kms_big_joiner@basic.html - fi-glk-j4005: NOTRUN -> [SKIP][50] ([fdo#109271]) +3 other tests skip [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-glk-j4005/igt@kms_big_joiner@basic.html - fi-kbl-7567u: NOTRUN -> [SKIP][51] ([fdo#109271]) +1 other test skip [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-kbl-7567u/igt@kms_big_joiner@basic.html - fi-cfl-guc: NOTRUN -> [SKIP][52] ([fdo#109271]) +3 other tests skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-cfl-guc/igt@kms_big_joiner@basic.html - fi-kbl-x1275: NOTRUN -> [SKIP][53] ([fdo#109271]) +3 other tests skip [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-kbl-x1275/igt@kms_big_joiner@basic.html - fi-cfl-8109u: NOTRUN -> [SKIP][54] ([fdo#109271]) +1 other test skip [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-cfl-8109u/igt@kms_big_joiner@basic.html - fi-ilk-650: NOTRUN -> [SKIP][55] ([fdo#109271]) +3 other tests skip [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-ilk-650/igt@kms_big_joiner@basic.html - fi-blb-e6850: NOTRUN -> [SKIP][56] ([fdo#109271]) +3 other tests skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-blb-e6850/igt@kms_big_joiner@basic.html - bat-mtlp-6: NOTRUN -> [SKIP][57] ([i915#9792]) +1 other test skip [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-mtlp-6/igt@kms_big_joiner@basic.html - fi-skl-6600u: NOTRUN -> [SKIP][58] ([fdo#109271]) +1 other test skip [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-skl-6600u/igt@kms_big_joiner@basic.html - fi-skl-guc: NOTRUN -> [SKIP][59] ([fdo#109271]) +1 other test skip [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-skl-guc/igt@kms_big_joiner@basic.html - fi-cfl-8700k: NOTRUN -> [SKIP][60] ([fdo#109271]) +3 other tests skip [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-cfl-8700k/igt@kms_big_joiner@basic.html - fi-bsw-nick: NOTRUN -> [SKIP][61] ([fdo#109271]) +3 other tests skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-bsw-nick/igt@kms_big_joiner@basic.html - bat-kbl-2: NOTRUN -> [SKIP][62] ([fdo#109271]) +3 other tests skip [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-kbl-2/igt@kms_big_joiner@basic.html * igt@kms_big_joiner@invalid-modeset: - bat-atsm-1: NOTRUN -> [SKIP][63] ([i915#6078]) +3 other tests skip [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-atsm-1/igt@kms_big_joiner@invalid-modeset.html - fi-ivb-3770: NOTRUN -> [SKIP][64] ([fdo#109271]) +3 other tests skip [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-ivb-3770/igt@kms_big_joiner@invalid-modeset.html - fi-elk-e7500: NOTRUN -> [SKIP][65] ([fdo#109271]) +3 other tests skip [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-elk-e7500/igt@kms_big_joiner@invalid-modeset.html - fi-kbl-guc: NOTRUN -> [SKIP][66] ([fdo#109271]) +3 other tests skip [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-kbl-guc/igt@kms_big_joiner@invalid-modeset.html - fi-bsw-n3050: NOTRUN -> [SKIP][67] ([fdo#109271]) +3 other tests skip [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-bsw-n3050/igt@kms_big_joiner@invalid-modeset.html * igt@kms_hdmi_inject@inject-audio: - fi-apl-guc: NOTRUN -> [SKIP][68] ([fdo#109271]) +19 other tests skip [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/fi-apl-guc/igt@kms_hdmi_inject@inject-audio.html * igt@kms_pipe_crc_basic@nonblocking-crc: - bat-dg2-11: NOTRUN -> [SKIP][69] ([i915#9197]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc.html #### Possible fixes #### * igt@i915_selftest@live@hangcheck: - {bat-rpls-3}: [DMESG-WARN][70] ([i915#5591]) -> [PASS][71] [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14368/bat-rpls-3/igt@i915_selftest@live@hangcheck.html [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-rpls-3/igt@i915_selftest@live@hangcheck.html - bat-dg2-14: [INCOMPLETE][72] ([i915#10137]) -> [PASS][73] [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14368/bat-dg2-14/igt@i915_selftest@live@hangcheck.html [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/bat-dg2-14/igt@i915_selftest@live@hangcheck.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#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [i915#10137]: https://gitlab.freedesktop.org/drm/intel/issues/10137 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591 [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078 [i915#9197]: https://gitlab.freedesktop.org/drm/intel/issues/9197 [i915#9792]: https://gitlab.freedesktop.org/drm/intel/issues/9792 [i915#9886]: https://gitlab.freedesktop.org/drm/intel/issues/9886 [i915#9920]: https://gitlab.freedesktop.org/drm/intel/issues/9920 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7738 -> IGTPW_10758 CI-20190529: 20190529 CI_DRM_14368: 68e66ae04f6f2718699716285e8ddb09a469af35 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_10758: 10758 IGT_7738: 7738 Testlist changes ---------------- +igt@kms_big_joiner@force-joiner-basic +igt@kms_big_joiner@force-joiner-invalid-modeset -igt@kms_big_joiner@2x-modeset == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10758/index.html [-- Attachment #2: Type: text/html, Size: 20112 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH i-g-t 0/4] revamp big joiner test @ 2024-03-01 8:25 Kunal Joshi 0 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-03-01 8:25 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi big joiner outputs are statically assigned to pipe, assign dynamically also add support for forcing joiner, support for forcing joiner was introduced with below kmd patch drm/i915: Add bigjoiner force enable option to debugfs Kunal Joshi (3): lib/igt_kms: move bigjoiner_mode_found to lib lib/igt_kms: add helpers to enable/disable force joiner tests/intel/kms_big_joiner: revamp kms_big_joiner tests/intel-ci/fast-feedback: HAX PATCH DO NOT MERGE lib/igt_kms.c | 73 ++++ lib/igt_kms.h | 4 + tests/intel-ci/fast-feedback.testlist | 5 + tests/intel/kms_big_joiner.c | 507 ++++++++++++++------------ 4 files changed, 355 insertions(+), 234 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH i-g-t 0/4] revamp big joiner test @ 2024-03-03 17:22 Kunal Joshi 0 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-03-03 17:22 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi big joiner outputs are statically assigned to pipe, assign dynamically also add support for forcing joiner, support for forcing joiner was introduced with below kmd patch drm/i915: Add bigjoiner force enable option to debugfs Kunal Joshi (4): lib/igt_kms: move bigjoiner_mode_found to lib lib/igt_kms: add helpers to enable/disable force joiner tests/intel/kms_big_joiner: revamp kms_big_joiner tests/intel-ci/fast-feedback: HAX PATCH DO NOT MERGE lib/igt_kms.c | 73 ++++ lib/igt_kms.h | 4 + tests/intel-ci/fast-feedback.testlist | 5 + tests/intel/kms_big_joiner.c | 504 ++++++++++++++------------ 4 files changed, 351 insertions(+), 235 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH i-g-t 0/4] revamp big joiner test @ 2024-03-10 14:27 Kunal Joshi 0 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-03-10 14:27 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi modify test to support multiple big joiner outputs simultaneously, support for ignoring fused pipes and addition of subtests for testing force joiner support for which is added by below in kmd. drm/i915: Add bigjoiner force enable option to debugfs Kunal Joshi (4): lib/igt_kms: move bigjoiner_mode_found to lib tests/intel/kms_big_joiner: revamp bigjoiner lib/igt_kms: add helper to enable/disable force joiner tests/intel/kms_big_joiner: add tests for force joiner lib/igt_kms.c | 84 +++++++ lib/igt_kms.h | 4 + tests/intel/kms_big_joiner.c | 467 +++++++++++++++++++---------------- 3 files changed, 346 insertions(+), 209 deletions(-) -- 2.34.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH i-g-t 0/4] revamp big joiner test @ 2024-03-21 18:28 Kunal Joshi 0 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-03-21 18:28 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi modify test to support multiple big joiner outputs simultaneously, support for ignoring fused pipes and addition of subtests for testing force joiner support for which is added by below in kmd. drm/i915: Add bigjoiner force enable option to debugfs Kunal Joshi (4): lib/igt_kms: move bigjoiner_mode_found to lib tests/intel/kms_big_joiner: revamp bigjoiner lib/igt_kms: add helper to enable/disable force joiner tests/intel/kms_big_joiner: add tests for force joiner lib/igt_kms.c | 79 ++++++ lib/igt_kms.h | 4 + tests/intel/kms_big_joiner.c | 486 ++++++++++++++++++++--------------- 3 files changed, 366 insertions(+), 203 deletions(-) -- 2.34.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH i-g-t 0/4] revamp big joiner test @ 2024-03-25 16:51 Kunal Joshi 0 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-03-25 16:51 UTC (permalink / raw) To: igt-dev; +Cc: Pranay Samala From: Pranay Samala <pranay.samala@intel.com> modify test to support multiple big joiner outputs simultaneously, support for ignoring fused pipes and addition of subtests for testing force joiner support for which is added by below in kmd. drm/i915: Add bigjoiner force enable option to debugfs Kunal Joshi (4): lib/igt_kms: move bigjoiner_mode_found to lib tests/intel/kms_big_joiner: revamp bigjoiner lib/igt_kms: add helper to enable/disable force joiner tests/intel/kms_big_joiner: add tests for force joiner lib/igt_kms.c | 79 ++++++ lib/igt_kms.h | 4 + tests/intel/kms_big_joiner.c | 469 ++++++++++++++++++++--------------- 3 files changed, 350 insertions(+), 202 deletions(-) -- 2.34.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH i-g-t 0/4] revamp big joiner test @ 2024-03-28 8:39 Kunal Joshi 0 siblings, 0 replies; 13+ messages in thread From: Kunal Joshi @ 2024-03-28 8:39 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi modify test to support multiple big joiner outputs simultaneously, support for ignoring fused pipes and addition of subtests for testing force joiner support for which is added by below in kmd. drm/i915: Add bigjoiner force enable option to debugfs Kunal Joshi (4): lib/igt_kms: move bigjoiner_mode_found to lib tests/intel/kms_big_joiner: revamp bigjoiner lib/igt_kms: add helper to enable/disable force joiner tests/intel/kms_big_joiner: add tests for force joiner lib/igt_kms.c | 79 ++++++ lib/igt_kms.h | 4 + tests/intel/kms_big_joiner.c | 477 ++++++++++++++++++++--------------- 3 files changed, 359 insertions(+), 201 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-03-28 8:28 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-02-29 18:10 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 2/4] lib/igt_kms: add helpers to enable/disable force joiner Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 3/4] tests/intel/kms_big_joiner: revamp kms_big_joiner Kunal Joshi 2024-02-29 18:10 ` [PATCH i-g-t 4/4] tests/intel-ci/fast-feedback: HAX PATCH DO NOT MERGE Kunal Joshi 2024-02-29 18:26 ` ✓ CI.xeBAT: success for revamp big joiner test Patchwork 2024-02-29 18:40 ` ✗ Fi.CI.BAT: failure " Patchwork -- strict thread matches above, loose matches on Subject: below -- 2024-03-01 8:25 [PATCH i-g-t 0/4] " Kunal Joshi 2024-03-03 17:22 Kunal Joshi 2024-03-10 14:27 Kunal Joshi 2024-03-21 18:28 Kunal Joshi 2024-03-25 16:51 Kunal Joshi 2024-03-28 8:39 Kunal Joshi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox