[igt-dev] [PATCH i-g-t v2 1/2] tests/kms_display_modes: Fixed mode selection for extended mode tests
Modem, Bhanuprakash
bhanuprakash.modem at intel.com
Thu Jun 8 11:26:26 UTC 2023
On Wed-07-06-2023 05:23 pm, Mohammed Thasleem wrote:
> Added check on DP-MST and 4k panels when two moniters connected
> through MST.
> This will find the connector mode combo that fits into the
> bandwidth when more than one monitor is connected.
>
> Example:
> When two monitors connected through MST, the second monitor
> also tries to use the same mode. So two such modes may not
> fit into the link bandwidth. So, iterate through connected
> outputs & modes and find a combination of modes those fit
> into the link BW.
>
> v2: -Updated commit msg and description. (Bhanu)
> -Renamed restart with retry. (Bhanu)
> -Moved igt_pipe_crc_new before retry. (Bhanu)
> -Removed unrelated changes and new line. (Bhanu)
> -Minor changes.
> v3: Updated discription and added EINVAL check.
> v4: Removed EINVAL and ENOSPC checks.
> Added check for DP-MST and 4k panels.
> Updated discription.
> v5: Defined 4k display modes globally.
> v6: -Removed if loop checks.
> -Added igt override to avoid dp mst bw failure.
> v7: Rebased on tip.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> ---
> tests/kms_display_modes.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c
> index 93d91ef5..5108b4d4 100644
> --- a/tests/kms_display_modes.c
> +++ b/tests/kms_display_modes.c
> @@ -142,6 +142,7 @@ static void run_extendedmode_basic(data_t *data,
> igt_pipe_crc_t *pipe_crc[2] = { 0 };
> igt_crc_t ref_crc[2], crc[2];
> int width, height;
> + bool found;
> cairo_t *cr;
>
> igt_display_reset(display);
> @@ -171,6 +172,10 @@ static void run_extendedmode_basic(data_t *data,
> igt_fb_set_size(&fbs[1], plane[1], mode[1]->hdisplay, mode[1]->vdisplay);
> igt_plane_set_size(plane[1], mode[1]->hdisplay, mode[1]->vdisplay);
>
> + /* In case of DP-MST find suitable mode(s) to fit into the link BW. */
> + found = igt_override_all_active_output_modes_to_fit_bw(display);
> + igt_require_f(found, "No valid mode combo found for MST modeset.\n");
This logic should be moved to the caller.
--- a/tests/kms_display_modes.c
+++ b/tests/kms_display_modes.c
@@ -273,6 +273,9 @@ static void run_extendedmode_test(data_t *data) {
igt_output_set_pipe(output1, pipe1);
igt_output_set_pipe(output2, pipe2);
+ if (!igt_override_all_active_output_modes_to_fit_bw(display))
+ continue;
+
if (!i915_pipe_output_combo_valid(display))
continue;
- Bhanu
> +
> igt_display_commit2(display, COMMIT_ATOMIC);
>
> igt_pipe_crc_collect_crc(pipe_crc[0], &ref_crc[0]);
More information about the igt-dev
mailing list