* [igt-dev] [PATCH i-g-t 0/2] Psr2 dsc testcases
@ 2023-01-25 9:07 Jouni Högander
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Jouni Högander @ 2023-01-25 9:07 UTC (permalink / raw)
To: igt-dev
This patch set is doing some cleanup to kms_psr2_sf testcases and adding
mechanism to stress other features with PSR2. It is utilizing this new
mechanism for testing DSC with PSR2.
Cc: Jeevan B <jeevan.b@intel.com>
Cc: Swati Sharma <swati2.sharma@intel.com>
Jouni Högander (2):
tests/i915/kms_psr2_sf: Some cleanups after
kms_psr2_sf: Add dynamic subtests which use DSC feature
tests/i915/kms_psr2_sf.c | 368 +++++++++++++++++++++++++--------------
tests/meson.build | 9 +-
2 files changed, 246 insertions(+), 131 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after
2023-01-25 9:07 [igt-dev] [PATCH i-g-t 0/2] Psr2 dsc testcases Jouni Högander
@ 2023-01-25 9:07 ` Jouni Högander
2023-01-30 9:12 ` B, Jeevan
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Jouni Högander @ 2023-01-25 9:07 UTC (permalink / raw)
To: igt-dev
Handle setting output for pipe in prepare and remove separate setup_output.
Carry all test parameters in data structure
Cc: Jeevan B <jeevan.b@intel.com>
Cc: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
tests/i915/kms_psr2_sf.c | 145 ++++++++++++++++++---------------------
1 file changed, 68 insertions(+), 77 deletions(-)
diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
index cfde6cfc..078884ac 100644
--- a/tests/i915/kms_psr2_sf.c
+++ b/tests/i915/kms_psr2_sf.c
@@ -85,6 +85,7 @@ typedef struct {
cairo_t *cr;
uint32_t screen_changes;
int cur_x, cur_y;
+ enum pipe pipe;
} data_t;
static const char *op_str(enum operations op)
@@ -103,30 +104,10 @@ static const char *op_str(enum operations op)
return name[op];
}
-static void setup_output(data_t *data)
-{
- igt_display_t *display = &data->display;
- igt_output_t *output;
- enum pipe pipe;
-
- for_each_pipe_with_valid_output(display, pipe, output) {
- drmModeConnectorPtr c = output->config.connector;
-
- if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
- continue;
-
- igt_output_set_pipe(output, pipe);
- data->output = output;
- data->mode = igt_output_get_mode(output);
-
- return;
- }
-}
-
static void display_init(data_t *data)
{
igt_display_require(&data->display, data->drm_fd);
- setup_output(data);
+ igt_display_reset(&data->display);
}
static void display_fini(data_t *data)
@@ -237,11 +218,15 @@ static void plane_move_setup_square(data_t *data, igt_fb_t *fb, uint32_t h,
set_clip(&data->plane_move_clip, x, y, SQUARE_SIZE, SQUARE_SIZE);
}
-static void prepare(data_t *data, igt_output_t *output)
+static void prepare(data_t *data)
{
+ igt_output_t *output = data->output;
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->big_fb_test) {
fb_w = data->big_fb_width;
fb_h = data->big_fb_height;
@@ -808,8 +793,9 @@ static void run(data_t *data)
}
}
-static void cleanup(data_t *data, igt_output_t *output)
+static void cleanup(data_t *data)
{
+ igt_output_t *output = data->output;
igt_plane_t *primary;
igt_plane_t *sprite;
@@ -838,20 +824,13 @@ static void cleanup(data_t *data, igt_output_t *output)
igt_remove_fb(data->drm_fd, &data->fb_test);
}
-static int check_psr2_support(data_t *data, enum pipe pipe)
+static int check_psr2_support(data_t *data)
{
int status;
- igt_output_t *output;
- igt_display_t *display = &data->display;
-
- igt_display_reset(display);
- output = data->output;
- igt_output_set_pipe(output, pipe);
-
- prepare(data, output);
+ prepare(data);
status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
- cleanup(data, output);
+ cleanup(data);
return status;
}
@@ -861,7 +840,6 @@ igt_main
data_t data = {};
igt_output_t *outputs[IGT_MAX_PIPES * IGT_MAX_PIPES];
int i, j;
- enum pipe pipe;
int pipes[IGT_MAX_PIPES * IGT_MAX_PIPES];
int n_pipes = 0;
@@ -898,9 +876,9 @@ igt_main
igt_require_f(psr2_selective_fetch_check(data.debugfs_fd),
"PSR2 selective fetch not enabled\n");
- for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
- if (check_psr2_support(&data, pipe)) {
- pipes[n_pipes] = pipe;
+ for_each_pipe_with_valid_output(&data.display, data.pipe, data.output) {
+ if (check_psr2_support(&data)) {
+ pipes[n_pipes] = data.pipe;
outputs[n_pipes] = data.output;
n_pipes++;
}
@@ -913,13 +891,14 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[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, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -932,13 +911,14 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[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, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -951,13 +931,14 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[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_OVERLAY;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -970,11 +951,12 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -985,11 +967,12 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1000,11 +983,12 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1015,11 +999,12 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1032,13 +1017,14 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
for (j = POS_TOP_LEFT; j <= POS_BOTTOM_RIGHT ; j++) {
data.pos = j;
data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1050,11 +1036,12 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1065,11 +1052,12 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1080,11 +1068,12 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[i]);
+ data.pipe = pipes[i];
+ data.output = outputs[i];
data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
- prepare(&data, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1097,13 +1086,14 @@ igt_main
for (i = 0; i < n_pipes; i++) {
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
igt_output_name(outputs[i])) {
- igt_output_set_pipe(outputs[i], pipes[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, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
@@ -1119,13 +1109,14 @@ igt_main
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])) {
- igt_output_set_pipe(outputs[i], 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, outputs[i]);
+ prepare(&data);
run(&data);
- cleanup(&data, outputs[i]);
+ cleanup(&data);
}
}
}
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature
2023-01-25 9:07 [igt-dev] [PATCH i-g-t 0/2] Psr2 dsc testcases Jouni Högander
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
@ 2023-01-25 9:07 ` Jouni Högander
2023-02-01 10:27 ` Swati Sharma
2023-01-25 14:25 ` [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases Patchwork
2023-01-25 22:18 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 1 reply; 8+ messages in thread
From: Jouni Högander @ 2023-01-25 9:07 UTC (permalink / raw)
To: igt-dev
Add mechanism to add coexisting features with selective fetch
and add dynamic subtests for DSC as coexisting feature.
Cc: Jeevan B <jeevan.b@intel.com>
Cc: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: Jouni Högander <jouni.hogander@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_count = 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_count = 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_count = 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_count = k;
+ data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+ data.coexist_feature = 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' ],
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases
2023-01-25 9:07 [igt-dev] [PATCH i-g-t 0/2] Psr2 dsc testcases Jouni Högander
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
@ 2023-01-25 14:25 ` Patchwork
2023-01-25 22:18 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-01-25 14:25 UTC (permalink / raw)
To: Jouni Högander; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 3680 bytes --]
== Series Details ==
Series: Psr2 dsc testcases
URL : https://patchwork.freedesktop.org/series/113308/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12635 -> IGTPW_8401
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/index.html
Participating hosts (36 -> 36)
------------------------------
Additional (1): bat-atsm-1
Missing (1): fi-kbl-soraka
Known issues
------------
Here are the changes found in IGTPW_8401 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size:
- fi-bsw-n3050: [PASS][1] -> [FAIL][2] ([i915#6298])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-2:
- bat-dg1-6: [PASS][3] -> [FAIL][4] ([fdo#103375]) +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/bat-dg1-6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-2.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/bat-dg1-6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-2.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077
[i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078
[i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093
[i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094
[i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166
[i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
[i915#6311]: https://gitlab.freedesktop.org/drm/intel/issues/6311
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
[i915#7357]: https://gitlab.freedesktop.org/drm/intel/issues/7357
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7136 -> IGTPW_8401
CI-20190529: 20190529
CI_DRM_12635: 479665dac7e36fbde1a1c7aab8fd0b1dfec208ab @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8401: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/index.html
IGT_7136: 31b6af91747ad8c705399c9006cdb81cb1864146 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
-igt@perf_pmu@pmu-read
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/index.html
[-- Attachment #2: Type: text/html, Size: 3023 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Psr2 dsc testcases
2023-01-25 9:07 [igt-dev] [PATCH i-g-t 0/2] Psr2 dsc testcases Jouni Högander
` (2 preceding siblings ...)
2023-01-25 14:25 ` [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases Patchwork
@ 2023-01-25 22:18 ` Patchwork
3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-01-25 22:18 UTC (permalink / raw)
To: Jouni Högander; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 24958 bytes --]
== Series Details ==
Series: Psr2 dsc testcases
URL : https://patchwork.freedesktop.org/series/113308/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12635_full -> IGTPW_8401_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/index.html
Participating hosts (12 -> 10)
------------------------------
Missing (2): pig-skl-6260u pig-kbl-iris
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8401_full:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@gem_exec_suspend@basic-s4-devices@smem:
- {shard-dg1}: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-dg1-18/igt@gem_exec_suspend@basic-s4-devices@smem.html
* igt@gem_lmem_evict@dontneed-evict-race:
- {shard-dg1}: NOTRUN -> [DMESG-WARN][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-dg1-15/igt@gem_lmem_evict@dontneed-evict-race.html
* igt@kms_cursor_edge_walk@top-edge@pipe-d-hdmi-a-4-256x256:
- {shard-dg1}: NOTRUN -> [FAIL][3] +54 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-dg1-16/igt@kms_cursor_edge_walk@top-edge@pipe-d-hdmi-a-4-256x256.html
Known issues
------------
Here are the changes found in IGTPW_8401_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@feature_discovery@display-4x:
- shard-glk: NOTRUN -> [SKIP][4] ([fdo#109271]) +40 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk4/igt@feature_discovery@display-4x.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-glk: NOTRUN -> [FAIL][5] ([i915#2842])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk1/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][6] -> [FAIL][7] ([i915#2842])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
- shard-apl: [PASS][8] -> [FAIL][9] ([i915#2842])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-apl2/igt@gem_exec_fair@basic-pace-share@rcs0.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl6/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_lmem_swapping@heavy-verify-multi-ccs:
- shard-glk: NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#4613])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
* igt@gem_lmem_swapping@parallel-random-verify:
- shard-apl: NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#4613])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl7/igt@gem_lmem_swapping@parallel-random-verify.html
* igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
- shard-snb: NOTRUN -> [SKIP][12] ([fdo#109271]) +14 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-snb2/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html
* igt@i915_pm_dc@dc3co-vpb-simulation:
- shard-glk: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#658])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk7/igt@i915_pm_dc@dc3co-vpb-simulation.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-glk: [PASS][14] -> [DMESG-WARN][15] ([i915#2017])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-glk1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][16] ([fdo#109271] / [i915#3886])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl3/igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
- shard-glk: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#3886]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk3/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-d-crc-primary-basic-4_tiled_dg2_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][18] ([fdo#109271]) +7 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl1/igt@kms_ccs@pipe-d-crc-primary-basic-4_tiled_dg2_mc_ccs.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1:
- shard-apl: [PASS][19] -> [FAIL][20] ([i915#79])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl6/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html
* igt@perf_pmu@module-unload:
- shard-snb: [PASS][21] -> [INCOMPLETE][22] ([i915#4528])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-snb7/igt@perf_pmu@module-unload.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-snb7/igt@perf_pmu@module-unload.html
#### Possible fixes ####
* igt@drm_fdinfo@idle@rcs0:
- {shard-rkl}: [FAIL][23] ([i915#7742]) -> [PASS][24] +1 similar issue
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-2/igt@drm_fdinfo@idle@rcs0.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-4/igt@drm_fdinfo@idle@rcs0.html
* igt@gem_exec_fair@basic-deadline:
- {shard-rkl}: [FAIL][25] ([i915#2846]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-5/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- {shard-rkl}: [FAIL][27] ([i915#2842]) -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-4/igt@gem_exec_fair@basic-none-share@rcs0.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-5/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-none@vcs0:
- shard-glk: [FAIL][29] ([i915#2842]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-glk1/igt@gem_exec_fair@basic-none@vcs0.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk1/igt@gem_exec_fair@basic-none@vcs0.html
* igt@gem_exec_reloc@basic-gtt-cpu:
- {shard-rkl}: [SKIP][31] ([i915#3281]) -> [PASS][32] +9 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-2/igt@gem_exec_reloc@basic-gtt-cpu.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-cpu.html
* igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
- {shard-rkl}: [SKIP][33] ([i915#3282]) -> [PASS][34] +6 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [DMESG-WARN][35] ([i915#5566] / [i915#716]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-apl3/igt@gen9_exec_parse@allowed-single.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl3/igt@gen9_exec_parse@allowed-single.html
* igt@gen9_exec_parse@batch-zero-length:
- {shard-rkl}: [SKIP][37] ([i915#2527]) -> [PASS][38] +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-1/igt@gen9_exec_parse@batch-zero-length.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-5/igt@gen9_exec_parse@batch-zero-length.html
* igt@i915_pm_dc@dc6-dpms:
- {shard-rkl}: [SKIP][39] ([i915#3361]) -> [PASS][40] +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-5/igt@i915_pm_dc@dc6-dpms.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-2/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_pm_rps@engine-order:
- shard-apl: [FAIL][41] ([i915#6537]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-apl1/igt@i915_pm_rps@engine-order.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl7/igt@i915_pm_rps@engine-order.html
* igt@i915_pm_sseu@full-enable:
- {shard-rkl}: [SKIP][43] ([i915#4387]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-1/igt@i915_pm_sseu@full-enable.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-5/igt@i915_pm_sseu@full-enable.html
* igt@i915_selftest@mock@sanitycheck:
- shard-snb: [SKIP][45] ([fdo#109271]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-snb4/igt@i915_selftest@mock@sanitycheck.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-snb2/igt@i915_selftest@mock@sanitycheck.html
* igt@kms_atomic@plane-immutable-zpos:
- {shard-rkl}: [SKIP][47] ([i915#1845] / [i915#4098]) -> [PASS][48] +4 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-5/igt@kms_atomic@plane-immutable-zpos.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-6/igt@kms_atomic@plane-immutable-zpos.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- {shard-dg1}: [FAIL][49] -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-dg1-17/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-dg1-14/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-apl: [FAIL][51] ([i915#2346]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-apl6/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
- shard-glk: [FAIL][53] ([i915#2346]) -> [PASS][54] +1 similar issue
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2:
- shard-glk: [FAIL][55] ([i915#79]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite:
- {shard-rkl}: [SKIP][57] ([i915#1849] / [i915#4098]) -> [PASS][58] +7 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
* igt@kms_properties@crtc-properties-atomic:
- {shard-rkl}: [SKIP][59] ([i915#1849]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-3/igt@kms_properties@crtc-properties-atomic.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-6/igt@kms_properties@crtc-properties-atomic.html
* igt@kms_psr@sprite_mmap_gtt:
- {shard-rkl}: [SKIP][61] ([i915#1072]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-3/igt@kms_psr@sprite_mmap_gtt.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-6/igt@kms_psr@sprite_mmap_gtt.html
* igt@perf@polling-small-buf:
- {shard-rkl}: [FAIL][63] ([i915#1722]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-rkl-1/igt@perf@polling-small-buf.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-rkl-5/igt@perf@polling-small-buf.html
* igt@perf_pmu@semaphore-busy@vcs1:
- {shard-dg1}: [FAIL][65] ([i915#4349]) -> [PASS][66] +1 similar issue
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12635/shard-dg1-12/igt@perf_pmu@semaphore-busy@vcs1.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/shard-dg1-18/igt@perf_pmu@semaphore-busy@vcs1.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#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
[i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2532]: https://gitlab.freedesktop.org/drm/intel/issues/2532
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
[i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
[i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6355]: https://gitlab.freedesktop.org/drm/intel/issues/6355
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#6537]: https://gitlab.freedesktop.org/drm/intel/issues/6537
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7076]: https://gitlab.freedesktop.org/drm/intel/issues/7076
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
[i915#7479]: https://gitlab.freedesktop.org/drm/intel/issues/7479
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7582]: https://gitlab.freedesktop.org/drm/intel/issues/7582
[i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7136 -> IGTPW_8401
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12635: 479665dac7e36fbde1a1c7aab8fd0b1dfec208ab @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8401: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/index.html
IGT_7136: 31b6af91747ad8c705399c9006cdb81cb1864146 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8401/index.html
[-- Attachment #2: Type: text/html, Size: 18866 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
@ 2023-01-30 9:12 ` B, Jeevan
0 siblings, 0 replies; 8+ messages in thread
From: B, Jeevan @ 2023-01-30 9:12 UTC (permalink / raw)
To: Hogander, Jouni, igt-dev
LGTM.
Reviewed-by: Jeevan B <jeevan.b@intel.com>
> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander@intel.com>
> Sent: Wednesday, January 25, 2023 2:38 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Hogander, Jouni <jouni.hogander@intel.com>; B, Jeevan
> <jeevan.b@intel.com>; Sharma, Swati2 <swati2.sharma@intel.com>
> Subject: [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after
>
> Handle setting output for pipe in prepare and remove separate setup_output.
> Carry all test parameters in data structure
>
> Cc: Jeevan B <jeevan.b@intel.com>
> Cc: Swati Sharma <swati2.sharma@intel.com>
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
> tests/i915/kms_psr2_sf.c | 145 ++++++++++++++++++---------------------
> 1 file changed, 68 insertions(+), 77 deletions(-)
>
> diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c index
> cfde6cfc..078884ac 100644
> --- a/tests/i915/kms_psr2_sf.c
> +++ b/tests/i915/kms_psr2_sf.c
> @@ -85,6 +85,7 @@ typedef struct {
> cairo_t *cr;
> uint32_t screen_changes;
> int cur_x, cur_y;
> + enum pipe pipe;
> } data_t;
>
> static const char *op_str(enum operations op) @@ -103,30 +104,10 @@ static
> const char *op_str(enum operations op)
> return name[op];
> }
>
> -static void setup_output(data_t *data)
> -{
> - igt_display_t *display = &data->display;
> - igt_output_t *output;
> - enum pipe pipe;
> -
> - for_each_pipe_with_valid_output(display, pipe, output) {
> - drmModeConnectorPtr c = output->config.connector;
> -
> - if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
> - continue;
> -
> - igt_output_set_pipe(output, pipe);
> - data->output = output;
> - data->mode = igt_output_get_mode(output);
> -
> - return;
> - }
> -}
> -
> static void display_init(data_t *data)
> {
> igt_display_require(&data->display, data->drm_fd);
> - setup_output(data);
> + igt_display_reset(&data->display);
> }
>
> static void display_fini(data_t *data)
> @@ -237,11 +218,15 @@ static void plane_move_setup_square(data_t *data,
> igt_fb_t *fb, uint32_t h,
> set_clip(&data->plane_move_clip, x, y, SQUARE_SIZE, SQUARE_SIZE); }
>
> -static void prepare(data_t *data, igt_output_t *output)
> +static void prepare(data_t *data)
> {
> + igt_output_t *output = data->output;
> 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->big_fb_test) {
> fb_w = data->big_fb_width;
> fb_h = data->big_fb_height;
> @@ -808,8 +793,9 @@ static void run(data_t *data)
> }
> }
>
> -static void cleanup(data_t *data, igt_output_t *output)
> +static void cleanup(data_t *data)
> {
> + igt_output_t *output = data->output;
> igt_plane_t *primary;
> igt_plane_t *sprite;
>
> @@ -838,20 +824,13 @@ static void cleanup(data_t *data, igt_output_t
> *output)
> igt_remove_fb(data->drm_fd, &data->fb_test); }
>
> -static int check_psr2_support(data_t *data, enum pipe pipe)
> +static int check_psr2_support(data_t *data)
> {
> int status;
>
> - igt_output_t *output;
> - igt_display_t *display = &data->display;
> -
> - igt_display_reset(display);
> - output = data->output;
> - igt_output_set_pipe(output, pipe);
> -
> - prepare(data, output);
> + prepare(data);
> status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> - cleanup(data, output);
> + cleanup(data);
>
> return status;
> }
> @@ -861,7 +840,6 @@ igt_main
> data_t data = {};
> igt_output_t *outputs[IGT_MAX_PIPES * IGT_MAX_PIPES];
> int i, j;
> - enum pipe pipe;
> int pipes[IGT_MAX_PIPES * IGT_MAX_PIPES];
> int n_pipes = 0;
>
> @@ -898,9 +876,9 @@ igt_main
> igt_require_f(psr2_selective_fetch_check(data.debugfs_fd),
> "PSR2 selective fetch not enabled\n");
>
> - for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> - if (check_psr2_support(&data, pipe)) {
> - pipes[n_pipes] = pipe;
> + for_each_pipe_with_valid_output(&data.display, data.pipe,
> data.output) {
> + if (check_psr2_support(&data)) {
> + pipes[n_pipes] = data.pipe;
> outputs[n_pipes] = data.output;
> n_pipes++;
> }
> @@ -913,13 +891,14 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[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, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -932,13 +911,14 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[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, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -951,13 +931,14 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[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_OVERLAY;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -970,11 +951,12 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -985,11 +967,12 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1000,11 +983,12 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1015,11 +999,12 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1032,13 +1017,14 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> for (j = POS_TOP_LEFT; j <=
> POS_BOTTOM_RIGHT ; j++) {
> data.pos = j;
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1050,11 +1036,12 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1065,11 +1052,12 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1080,11 +1068,12 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[i]);
> + data.pipe = pipes[i];
> + data.output = outputs[i];
> data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> - prepare(&data, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1097,13 +1086,14 @@ igt_main
> for (i = 0; i < n_pipes; i++) {
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipes[i]),
> igt_output_name(outputs[i])) {
> - igt_output_set_pipe(outputs[i], pipes[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, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> @@ -1119,13 +1109,14 @@ igt_main
> 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])) {
> - igt_output_set_pipe(outputs[i], 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, outputs[i]);
> + prepare(&data);
> run(&data);
> - cleanup(&data, outputs[i]);
> + cleanup(&data);
> }
> }
> }
> --
> 2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
@ 2023-02-01 10:27 ` Swati Sharma
2023-02-01 12:12 ` Hogander, Jouni
0 siblings, 1 reply; 8+ messages in thread
From: Swati Sharma @ 2023-02-01 10:27 UTC (permalink / raw)
To: Jouni Högander, igt-dev
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?
2. Are we doing manual inspection to check if pattern has no corruption?
3. We aren't using igt_is_dsc_enabled() to verify if DSC got enabled or not.
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@intel.com>
> Cc: Swati Sharma <swati2.sharma@intel.com>
> Signed-off-by: Jouni Högander <jouni.hogander@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_count = 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_count = 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_count = 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_count = k;
> + data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> + data.coexist_feature = 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' ],
--
~Swati Sharma
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature
2023-02-01 10:27 ` Swati Sharma
@ 2023-02-01 12:12 ` Hogander, Jouni
0 siblings, 0 replies; 8+ messages in thread
From: Hogander, Jouni @ 2023-02-01 12:12 UTC (permalink / raw)
To: igt-dev, Sharma, Swati2
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@intel.com>
> > Cc: Swati Sharma <swati2.sharma@intel.com>
> > Signed-off-by: Jouni Högander <jouni.hogander@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' ],
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-02-01 12:12 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-25 9:07 [igt-dev] [PATCH i-g-t 0/2] Psr2 dsc testcases Jouni Högander
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
2023-01-30 9:12 ` B, Jeevan
2023-01-25 9:07 ` [igt-dev] [PATCH i-g-t 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
2023-02-01 10:27 ` Swati Sharma
2023-02-01 12:12 ` Hogander, Jouni
2023-01-25 14:25 ` [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases Patchwork
2023-01-25 22:18 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.