[igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature
Hogander, Jouni
jouni.hogander at intel.com
Wed Feb 1 12:12:00 UTC 2023
Thank you Swati for checking my patch. See my responses inline below.
On Wed, 2023-02-01 at 15:57 +0530, Swati Sharma wrote:
> Hi Jouni,
>
> Changes look good. Few things to mention here:
> 1. DSC is supported from gen11+ platforms (though h/w supports from
> gen10 but our driver has support from gen11+)
> Should we add that restriction?
Dsc debugfs are not created so our check_dsc_on_connector will inform
"not supported" and these dynamic subtests are not run.
> 2. Are we doing manual inspection to check if pattern has no
> corruption?
In case of psr2 we have CRC calculation for selective update. The panel
is checking these and interrupting/informing about CRC checksum
mismatch and this will trigger psr2 disable and eventually test
failure.
Generally DSC CRC check is not implemented for kms_dsc either. So I
think it should be implemented there first if wanted.
> 3. We aren't using igt_is_dsc_enabled() to verify if DSC got enabled
> or not.
This actually make sense. I will add it.
>
> On 25-Jan-23 2:37 PM, Jouni Högander wrote:
> > Add mechanism to add coexisting features with selective fetch
> > and add dynamic subtests for DSC as coexisting feature.
> >
> > Cc: Jeevan B <jeevan.b at intel.com>
> > Cc: Swati Sharma <swati2.sharma at intel.com>
> > Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> > ---
> > tests/i915/kms_psr2_sf.c | 331 ++++++++++++++++++++++++++--------
> > -----
> > tests/meson.build | 9 +-
> > 2 files changed, 232 insertions(+), 108 deletions(-)
> >
> > diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> > index 078884ac..cb965989 100644
> > --- a/tests/i915/kms_psr2_sf.c
> > +++ b/tests/i915/kms_psr2_sf.c
> > @@ -25,6 +25,7 @@
> > #include "igt.h"
> > #include "igt_sysfs.h"
> > #include "igt_psr.h"
> > +#include "kms_dsc_helper.h"
> > #include <errno.h>
> > #include <stdbool.h>
> > #include <stdio.h>
> > @@ -86,6 +87,13 @@ typedef struct {
> > uint32_t screen_changes;
> > int cur_x, cur_y;
> > enum pipe pipe;
> > + bool force_dsc_en_orig;
> > + int force_dsc_restore_fd;
> > + enum {
> > + FEATURE_NONE = 0,
> > + FEATURE_DSC = 1,
> > + FEATURE_COUNT = 2,
> > + } coexist_feature;
> > } data_t;
> >
> > static const char *op_str(enum operations op)
> > @@ -104,6 +112,18 @@ static const char *op_str(enum operations op)
> > return name[op];
> > }
> >
> > +static const char *coexist_feature_str(int coexist_feature)
> > +{
> > + switch (coexist_feature) {
> > + case FEATURE_NONE:
> > + return "";
> > + case FEATURE_DSC:
> > + return "-dsc";
> > + default:
> > + igt_assert(false);
> > + }
> > +}
> > +
> > static void display_init(data_t *data)
> > {
> > igt_display_require(&data->display, data->drm_fd);
> > @@ -224,9 +244,17 @@ static void prepare(data_t *data)
> > igt_plane_t *primary, *sprite = NULL, *cursor = NULL;
> > int fb_w, fb_h, x, y, view_w, view_h;
> >
> > - igt_output_set_pipe(output, data->pipe);
> > data->mode = igt_output_get_mode(output);
> >
> > + if (data->coexist_feature & FEATURE_DSC) {
> > + save_force_dsc_en(data->drm_fd, output);
> > + force_dsc_enable(data->drm_fd, output);
> > + igt_output_set_pipe(output, PIPE_NONE);
> > + igt_display_commit2(&data->display, COMMIT_ATOMIC);
> > + }
> > +
> > + igt_output_set_pipe(output, data->pipe);
> > +
> > if (data->big_fb_test) {
> > fb_w = data->big_fb_width;
> > fb_h = data->big_fb_height;
> > @@ -816,6 +844,11 @@ static void cleanup(data_t *data)
> > igt_plane_set_fb(sprite, NULL);
> > }
> >
> > + if (data->coexist_feature & FEATURE_DSC) {
> > + restore_force_dsc_en();
> > + igt_output_set_pipe(output, PIPE_NONE);
> > + }
> > +
> > igt_display_commit2(&data->display, COMMIT_ATOMIC);
> >
> > igt_remove_fb(data->drm_fd, &data->fb_primary);
> > @@ -839,9 +872,10 @@ igt_main
> > {
> > data_t data = {};
> > igt_output_t *outputs[IGT_MAX_PIPES * IGT_MAX_PIPES];
> > - int i, j;
> > + int i, j, k;
> > int pipes[IGT_MAX_PIPES * IGT_MAX_PIPES];
> > int n_pipes = 0;
> > + int coexist_features[IGT_MAX_PIPES * IGT_MAX_PIPES];
> >
> > igt_fixture {
> > drmModeResPtr res;
> > @@ -877,9 +911,14 @@ igt_main
> > "PSR2 selective fetch not
> > enabled\n");
> >
> > for_each_pipe_with_valid_output(&data.display,
> > data.pipe, data.output) {
> > + coexist_features[n_pipes] = 0;
> > if (check_psr2_support(&data)) {
> > pipes[n_pipes] = data.pipe;
> > outputs[n_pipes] = data.output;
> > +
> > + if
> > (check_dsc_on_connector(data.drm_fd, data.output))
> > + coexist_features[n_pipes]
> > |= FEATURE_DSC;
> > +
> > n_pipes++;
> > }
> > }
> > @@ -889,16 +928,22 @@ igt_main
> > igt_describe("Test that selective fetch works on primary
> > plane");
> > igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - for (j = 1; j <= MAX_DAMAGE_AREAS;
> > j++) {
> > - data.damage_area_count = j;
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + data.coexist_feature = j;
> > + for (k = 1; k <=
> > MAX_DAMAGE_AREAS; k++) {
> > + data.damage_area_co
> > unt = k;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -909,16 +954,22 @@ igt_main
> > igt_describe("Test that selective fetch works on primary
> > plane with big fb");
> > igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-fb",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - for (j = 1; j <= MAX_DAMAGE_AREAS;
> > j++) {
> > - data.damage_area_count = j;
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + data.coexist_feature = j;
> > + for (k = 1; k <=
> > MAX_DAMAGE_AREAS; k++) {
> > + data.damage_area_co
> > unt = k;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -929,16 +980,22 @@ igt_main
> > igt_describe("Test that selective fetch works on overlay
> > plane");
> > igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - for (j = 1; j <= MAX_DAMAGE_AREAS;
> > j++) {
> > - data.damage_area_count = j;
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + data.coexist_feature = j;
> > + for (k = 1; k <=
> > MAX_DAMAGE_AREAS; k++) {
> > + data.damage_area_co
> > unt = k;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -949,14 +1006,20 @@ igt_main
> > igt_describe("Test that selective fetch works on cursor
> > plane");
> > igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op))
> > {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > + data.coexist_feature = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -965,14 +1028,20 @@ igt_main
> > igt_describe("Test that selective fetch works on moving
> > cursor plane (no update)");
> > igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op))
> > {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > + data.coexist_feature = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -981,14 +1050,20 @@ igt_main
> > igt_describe("Test that selective fetch works on moving
> > cursor plane exceeding partially visible area (no update)");
> > igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op))
> > {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > + data.coexist_feature = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -997,14 +1072,20 @@ igt_main
> > igt_describe("Test that selective fetch works on moving
> > cursor plane exceeding fully visible area (no update)");
> > igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op))
> > {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > + data.coexist_feature = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -1015,16 +1096,22 @@ igt_main
> > igt_describe("Test that selective fetch works on moving
> > overlay plane");
> > igt_subtest_with_dynamic_f("%s-sf-dmg-area",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - for (j = POS_TOP_LEFT; j <=
> > POS_BOTTOM_RIGHT ; j++) {
> > - data.pos = j;
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + data.coexist_feature = j;
> > + for (k = POS_TOP_LEFT; k <=
> > POS_BOTTOM_RIGHT ; k++) {
> > + data.pos = k;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -1034,14 +1121,20 @@ igt_main
> > igt_describe("Test that selective fetch works on moving
> > overlay plane (no update)");
> > igt_subtest_with_dynamic_f("overlay-%s-sf",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > + 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)) {
> > data.pipe = pipes[i];
> > data.output = outputs[i];
> > data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > + data.coexist_feature = j;
> > prepare(&data);
> > run(&data);
> > cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -1050,14 +1143,20 @@ igt_main
> > igt_describe("Test that selective fetch works on moving
> > overlay plane partially exceeding visible area (no update)");
> > igt_subtest_with_dynamic_f("overlay-%s-sf",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > + data.coexist_feature = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -1066,14 +1165,20 @@ igt_main
> > igt_describe("Test that selective fetch works on moving
> > overlay plane fully exceeding visible area (no update)");
> > igt_subtest_with_dynamic_f("overlay-%s-sf",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > + data.coexist_feature = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -1084,16 +1189,22 @@ igt_main
> > "with blended overlay plane");
> > igt_subtest_with_dynamic_f("%s-sf-dmg-area",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > -
> > igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - for (j = 1; j <= MAX_DAMAGE_AREAS;
> > j++) {
> > - data.damage_area_count = j;
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + for (k = 1; k <=
> > MAX_DAMAGE_AREAS; k++) {
> > + data.damage_area_co
> > unt = k;
> > + data.test_plane_id
> > = DRM_PLANE_TYPE_PRIMARY;
> > + data.coexist_featur
> > e = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > @@ -1108,15 +1219,21 @@ igt_main
> > igt_describe("Test that selective fetch works on overlay
> > plane");
> > igt_subtest_with_dynamic_f("overlay-%s-sf",
> > op_str(data.op)) {
> > for (i = 0; i < n_pipes; i++) {
> > - igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(pipes[i]),
> > - igt_output_name(outputs[i]))
> > {
> > - data.pipe = pipes[i];
> > - data.output = outputs[i];
> > - data.damage_area_count = 1;
> > - data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > - prepare(&data);
> > - run(&data);
> > - cleanup(&data);
> > + 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)) {
> > + data.pipe = pipes[i];
> > + data.output = outputs[i];
> > + data.damage_area_count = 1;
> > + data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > + data.coexist_feature = j;
> > + prepare(&data);
> > + run(&data);
> > + cleanup(&data);
> > + }
> > }
> > }
> > }
> > diff --git a/tests/meson.build b/tests/meson.build
> > index cce9d89e..da8a4204 100644
> > --- a/tests/meson.build
> > +++ b/tests/meson.build
> > @@ -232,7 +232,6 @@ i915_progs = [
> > 'kms_pipe_b_c_ivb',
> > 'kms_psr',
> > 'kms_psr2_su',
> > - 'kms_psr2_sf',
> > 'kms_psr_stress_test',
> > 'kms_pwrite_crc',
> > 'sysfs_defaults',
> > @@ -435,6 +434,14 @@ test_executables += executable('kms_dsc',
> > install : true)
> > test_list += 'kms_dsc'
> >
> > +test_executables += executable('kms_psr2_sf',
> > + [ join_paths('i915', 'kms_psr2_sf.c'), join_paths
> > ('i915', 'kms_dsc_helper.c')],
> > + dependencies : test_deps,
> > + install_dir : libexecdir,
> > + install_rpath : libexecdir_rpathdir,
> > + install : true)
> > +test_list += 'kms_psr2_sf'
> > +
> > if chamelium.found()
> > test_executables += executable('kms_chamelium_color',
> > [ 'chamelium/kms_chamelium_color.c',
> > 'kms_color_helper.c' ],
>
More information about the igt-dev
mailing list