[PATCH i-g-t 2/2] tests/intel/kms_psr2_sf: extend tests for panel replay sf
Hogander, Jouni
jouni.hogander at intel.com
Mon Feb 5 12:28:09 UTC 2024
On Mon, 2024-01-22 at 13:19 +0530, Kunal Joshi wrote:
> v2: fixed dynamic test name
I think you should modify check_psr2_support to take into account
outputs supporting PR.
BR,
Jouni Högander
>
> Cc: Jouni Högander <jouni.hogander at intel.com>
> Cc: Animesh Manna <animesh.manna at intel.com>
> Cc: Arun R Murthy <arun.r.murthy at intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi at intel.com>
> ---
> tests/intel/kms_psr2_sf.c | 119 ++++++++++++++++++++++--------------
> --
> 1 file changed, 69 insertions(+), 50 deletions(-)
>
> diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
> index c826cd7c3..29a187fc4 100644
> --- a/tests/intel/kms_psr2_sf.c
> +++ b/tests/intel/kms_psr2_sf.c
> @@ -979,6 +979,21 @@ pipe_output_combo_valid(igt_display_t *display,
> return ret;
> }
>
> +static const char *get_psr_mode_for_output(data_t *data,
> igt_output_t *output)
> +{
> + const char *psr_mode = NULL;
> +
> + if (psr_sink_support(data->drm_fd, data->debugfs_fd,
> PR_MODE_SEL_FETCH,
> + output))
> + psr_mode = "pr-";
> + else if (psr_sink_support(data->drm_fd, data->debugfs_fd,
> PSR_MODE_2,
> + output))
> + psr_mode = "psr2-";
> + else
> + igt_assert_f(false, "PR/PSR2 selective fetch not
> supported\n");
> + return psr_mode;
> +}
> +
> igt_main
> {
> data_t data = {};
> @@ -1001,11 +1016,6 @@ igt_main
> data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
> kmstest_set_vt_graphics_mode();
>
> - igt_require_f(psr_sink_support(data.drm_fd,
> - data.debugfs_fd,
> PSR_MODE_2,
> - NULL),
> - "Sink does not support PSR2\n");
> -
> display_init(&data);
>
> if
> ((intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 20) &&
> @@ -1013,10 +1023,6 @@ igt_main
> data.fbc_flag = true;
> }
>
> - /* Test if PSR2 can be enabled */
> - igt_require_f(psr_enable(data.drm_fd,
> - data.debugfs_fd,
> PSR_MODE_2_SEL_FETCH),
> - "Error enabling PSR2\n");
>
> data.damage_area_count = MAX_DAMAGE_AREAS;
> data.primary_format = DRM_FORMAT_XRGB8888;
> @@ -1055,7 +1061,7 @@ igt_main
> /* Verify primary plane selective fetch */
> igt_describe("Test that selective fetch works on
> primary plane");
> igt_subtest_with_dynamic_f("%sprimary-%s-sf-dmg-
> area", append_fbc_subtest[y],
> - op_str(data.op)) {
> +
> op_str(data.op)) {
> for (i = 0; i < n_pipes; i++) {
> if
> (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
> continue;
> @@ -1063,9 +1069,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> @@ -1096,10 +1103,11 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE
> && !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-
> %s-%s%s",
> -
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe
> -%s-%s%s",
> +
> get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe =
> pipes[i];
> data.output =
> outputs[i];
> data.test_pla
> ne_id = DRM_PLANE_TYPE_PRIMARY;
> @@ -1128,9 +1136,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> @@ -1158,9 +1167,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> @@ -1184,9 +1194,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> @@ -1211,9 +1222,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> @@ -1238,9 +1250,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> @@ -1266,9 +1279,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> @@ -1295,9 +1309,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> @@ -1322,9 +1337,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> @@ -1349,9 +1365,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> @@ -1377,9 +1394,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> for (k = 1; k <=
> MAX_DAMAGE_AREAS; k++) {
> @@ -1410,9 +1428,10 @@ igt_main
> for (j = FEATURE_NONE; j <
> FEATURE_COUNT; j++) {
> if (j != FEATURE_NONE &&
> !(coexist_features[i] & j))
> continue;
> - igt_dynamic_f("pipe-%s-%s%s",
> kmstest_pipe_name(pipes[i]),
> -
> igt_output_name(outputs[i]),
> -
> coexist_feature_str(j)) {
> + igt_dynamic_f("%spipe-%s-
> %s%s", get_psr_mode_for_output(&data, outputs[i]),
> +
> kmstest_pipe_name(pipes[i]),
> +
> igt_output_name(outputs[i]),
> +
> coexist_feature_str(j)) {
> data.pipe = pipes[i];
> data.output =
> outputs[i];
> data.damage_area_coun
> t = 1;
More information about the igt-dev
mailing list