* [igt-dev] [PATCH i-g-t v2 0/2] Psr2 dsc testcases
@ 2023-02-03 7:58 Jouni Högander
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Jouni Högander @ 2023-02-03 7:58 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.
v2:
- check dsc is enabled
- remove unused variables
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 | 370 +++++++++++++++++++++++++--------------
tests/meson.build | 9 +-
2 files changed, 248 insertions(+), 131 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t v2 1/2] tests/i915/kms_psr2_sf: Some cleanups after
2023-02-03 7:58 [igt-dev] [PATCH i-g-t v2 0/2] Psr2 dsc testcases Jouni Högander
@ 2023-02-03 7:58 ` Jouni Högander
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Jouni Högander @ 2023-02-03 7:58 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>
Reviewed-by: Jeevan B <jeevan.b@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] 7+ messages in thread
* [igt-dev] [PATCH i-g-t v2 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature
2023-02-03 7:58 [igt-dev] [PATCH i-g-t v2 0/2] Psr2 dsc testcases Jouni Högander
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
@ 2023-02-03 7:58 ` Jouni Högander
2023-02-06 18:14 ` Swati Sharma
2023-02-03 13:09 ` [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases (rev2) Patchwork
2023-02-04 1:24 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 1 reply; 7+ messages in thread
From: Jouni Högander @ 2023-02-03 7:58 UTC (permalink / raw)
To: igt-dev
Add mechanism to add coexisting features with selective fetch
and add dynamic subtests for DSC as coexisting feature.
v2:
- check dsc is enabled (Swati)
- remove unused variables
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 | 333 ++++++++++++++++++++++++++-------------
tests/meson.build | 9 +-
2 files changed, 234 insertions(+), 108 deletions(-)
diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
index 078884ac..2d761d31 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,11 @@ typedef struct {
uint32_t screen_changes;
int cur_x, cur_y;
enum pipe pipe;
+ enum {
+ FEATURE_NONE = 0,
+ FEATURE_DSC = 1,
+ FEATURE_COUNT = 2,
+ } coexist_feature;
} data_t;
static const char *op_str(enum operations op)
@@ -104,6 +110,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 +242,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;
@@ -357,6 +383,10 @@ static void prepare(data_t *data)
igt_plane_set_size(primary, view_w, view_h);
igt_plane_set_position(primary, 0, 0);
igt_display_commit2(&data->display, COMMIT_ATOMIC);
+
+ if (data->coexist_feature & FEATURE_DSC)
+ igt_require_f(igt_is_dsc_enabled(data->drm_fd, output->name),
+ "DSC is not enabled\n");
}
static inline void manual(const char *expected)
@@ -816,6 +846,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 +874,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 +913,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 +930,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 +956,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 +982,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 +1008,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 +1030,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 +1052,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 +1074,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 +1098,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 +1123,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 +1145,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 +1167,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 +1191,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 +1221,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 d93a07c9..6fb1bb86 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -233,7 +233,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',
@@ -436,6 +435,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] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases (rev2)
2023-02-03 7:58 [igt-dev] [PATCH i-g-t v2 0/2] Psr2 dsc testcases Jouni Högander
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
@ 2023-02-03 13:09 ` Patchwork
2023-02-04 1:24 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-02-03 13:09 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 2813 bytes --]
== Series Details ==
Series: Psr2 dsc testcases (rev2)
URL : https://patchwork.freedesktop.org/series/113308/
State : success
== Summary ==
CI Bug Log - changes from IGT_7146 -> IGTPW_8440
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/index.html
Participating hosts (25 -> 25)
------------------------------
Additional (1): fi-blb-e6850
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in IGTPW_8440 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_pm_rpm@module-reload:
- fi-blb-e6850: NOTRUN -> [SKIP][1] ([fdo#109271]) +51 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/fi-blb-e6850/igt@i915_pm_rpm@module-reload.html
#### Possible fixes ####
* igt@i915_selftest@live@gt_heartbeat:
- {bat-jsl-1}: [DMESG-FAIL][2] ([i915#5334]) -> [PASS][3]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/bat-jsl-1/igt@i915_selftest@live@gt_heartbeat.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/bat-jsl-1/igt@i915_selftest@live@gt_heartbeat.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
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6311]: https://gitlab.freedesktop.org/drm/intel/issues/6311
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
[i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7146 -> IGTPW_8440
CI-20190529: 20190529
CI_DRM_12688: 9fcffc218abe16fc5fbfca231fda6a7218661eb6 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8440: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/index.html
IGT_7146: cfb2b835a2d688f123c9ffe5ecc7148e19e30e39 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@kms_plane_alpha_blend@alpha-7efc
+igt@kms_plane_alpha_blend@alpha-basic
+igt@kms_plane_alpha_blend@alpha-opaque-fb
+igt@kms_plane_alpha_blend@alpha-transparent-fb
+igt@kms_plane_alpha_blend@constant-alpha-max
+igt@kms_plane_alpha_blend@constant-alpha-mid
+igt@kms_plane_alpha_blend@constant-alpha-min
+igt@kms_plane_alpha_blend@coverage-7efc
+igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/index.html
[-- Attachment #2: Type: text/html, Size: 3143 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Psr2 dsc testcases (rev2)
2023-02-03 7:58 [igt-dev] [PATCH i-g-t v2 0/2] Psr2 dsc testcases Jouni Högander
` (2 preceding siblings ...)
2023-02-03 13:09 ` [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases (rev2) Patchwork
@ 2023-02-04 1:24 ` Patchwork
3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-02-04 1:24 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 20033 bytes --]
== Series Details ==
Series: Psr2 dsc testcases (rev2)
URL : https://patchwork.freedesktop.org/series/113308/
State : success
== Summary ==
CI Bug Log - changes from IGT_7146_full -> IGTPW_8440_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/index.html
Participating hosts (11 -> 9)
------------------------------
Missing (2): shard-rkl0 shard-tglu-9
Known issues
------------
Here are the changes found in IGTPW_8440_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][1] -> [FAIL][2] ([i915#2846])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-glk4/igt@gem_exec_fair@basic-deadline.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-glk3/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk: [PASS][3] -> [FAIL][4] ([i915#2842])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-glk1/igt@gem_exec_fair@basic-throttle@rcs0.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-glk4/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][5] -> [FAIL][6] ([i915#79]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
#### Possible fixes ####
* igt@fbdev@unaligned-read:
- {shard-rkl}: [SKIP][7] ([i915#2582]) -> [PASS][8] +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-1/igt@fbdev@unaligned-read.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@fbdev@unaligned-read.html
* igt@feature_discovery@psr2:
- {shard-rkl}: [SKIP][9] ([i915#658]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-1/igt@feature_discovery@psr2.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@feature_discovery@psr2.html
* igt@gem_exec_reloc@basic-gtt-cpu:
- {shard-rkl}: [SKIP][11] ([i915#3281]) -> [PASS][12] +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-3/igt@gem_exec_reloc@basic-gtt-cpu.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-cpu.html
* igt@gem_madvise@dontneed-before-pwrite:
- {shard-rkl}: [SKIP][13] ([i915#3282]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-3/igt@gem_madvise@dontneed-before-pwrite.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-5/igt@gem_madvise@dontneed-before-pwrite.html
* igt@gen9_exec_parse@bb-chained:
- {shard-rkl}: [SKIP][15] ([i915#2527]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-1/igt@gen9_exec_parse@bb-chained.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-5/igt@gen9_exec_parse@bb-chained.html
* igt@i915_pm_rpm@drm-resources-equal:
- {shard-rkl}: [SKIP][17] ([fdo#109308]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-2/igt@i915_pm_rpm@drm-resources-equal.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@i915_pm_rpm@drm-resources-equal.html
* igt@i915_pm_rpm@modeset-lpsp-stress-no-wait:
- {shard-dg1}: [SKIP][19] ([i915#1397]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-dg1-12/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-dg1-14/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html
* igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs:
- {shard-tglu}: [SKIP][21] ([i915#1845] / [i915#7651]) -> [PASS][22] +2 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-tglu-6/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-tglu-7/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs.html
* igt@kms_fbcon_fbt@psr-suspend:
- {shard-rkl}: [SKIP][23] ([fdo#110189] / [i915#3955]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-1/igt@kms_fbcon_fbt@psr-suspend.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_fence_pin_leak:
- {shard-tglu}: [SKIP][25] ([fdo#109274] / [i915#1845]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-tglu-6/igt@kms_fence_pin_leak.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-tglu-7/igt@kms_fence_pin_leak.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu:
- {shard-tglu}: [SKIP][27] ([i915#1849]) -> [PASS][28] +2 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
- {shard-rkl}: [SKIP][29] ([i915#1849] / [i915#4098]) -> [PASS][30] +11 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes:
- {shard-rkl}: [SKIP][31] ([i915#1849]) -> [PASS][32] +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-4/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html
* igt@kms_psr@suspend:
- {shard-rkl}: [SKIP][33] ([i915#1072]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-2/igt@kms_psr@suspend.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@kms_psr@suspend.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- {shard-rkl}: [SKIP][35] ([i915#5461]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@exhaust-fences:
- {shard-rkl}: [SKIP][37] ([i915#1845] / [i915#4098]) -> [PASS][38] +23 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-4/igt@kms_rotation_crc@exhaust-fences.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@kms_rotation_crc@exhaust-fences.html
* igt@kms_vblank@pipe-c-query-busy-hang:
- {shard-tglu}: [SKIP][39] ([i915#7651]) -> [PASS][40] +7 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-tglu-6/igt@kms_vblank@pipe-c-query-busy-hang.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-tglu-1/igt@kms_vblank@pipe-c-query-busy-hang.html
* igt@perf@gen12-oa-tlb-invalidate:
- {shard-rkl}: [SKIP][41] ([fdo#109289]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-5/igt@perf@gen12-oa-tlb-invalidate.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@perf@gen12-oa-tlb-invalidate.html
* igt@perf_pmu@idle@rcs0:
- {shard-rkl}: [FAIL][43] ([i915#4349]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-2/igt@perf_pmu@idle@rcs0.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-4/igt@perf_pmu@idle@rcs0.html
* igt@prime_vgem@basic-read:
- {shard-rkl}: [SKIP][45] ([fdo#109295] / [i915#3291] / [i915#3708]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-1/igt@prime_vgem@basic-read.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-5/igt@prime_vgem@basic-read.html
* igt@testdisplay:
- {shard-rkl}: [SKIP][47] ([i915#4098]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7146/shard-rkl-1/igt@testdisplay.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/shard-rkl-6/igt@testdisplay.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#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
[fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
[fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
[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#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
[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#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[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#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[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#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[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#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
[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#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#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
[i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
[i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
[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#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[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#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
[i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115
[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#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#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
[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#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[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#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
[i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
[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
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7146 -> IGTPW_8440
CI-20190529: 20190529
CI_DRM_12688: 9fcffc218abe16fc5fbfca231fda6a7218661eb6 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8440: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/index.html
IGT_7146: cfb2b835a2d688f123c9ffe5ecc7148e19e30e39 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8440/index.html
[-- Attachment #2: Type: text/html, Size: 13066 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
@ 2023-02-06 18:14 ` Swati Sharma
2023-02-07 6:47 ` Hogander, Jouni
0 siblings, 1 reply; 7+ messages in thread
From: Swati Sharma @ 2023-02-06 18:14 UTC (permalink / raw)
To: Jouni Högander, igt-dev
Patch LGTM.
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
On 03-Feb-23 1:28 PM, Jouni Högander wrote:
> Add mechanism to add coexisting features with selective fetch
> and add dynamic subtests for DSC as coexisting feature.
>
> v2:
> - check dsc is enabled (Swati)
> - remove unused variables
>
> 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 | 333 ++++++++++++++++++++++++++-------------
> tests/meson.build | 9 +-
> 2 files changed, 234 insertions(+), 108 deletions(-)
>
> diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> index 078884ac..2d761d31 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,11 @@ typedef struct {
> uint32_t screen_changes;
> int cur_x, cur_y;
> enum pipe pipe;
> + enum {
> + FEATURE_NONE = 0,
> + FEATURE_DSC = 1,
> + FEATURE_COUNT = 2,
> + } coexist_feature;
> } data_t;
>
> static const char *op_str(enum operations op)
> @@ -104,6 +110,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 +242,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;
> @@ -357,6 +383,10 @@ static void prepare(data_t *data)
> igt_plane_set_size(primary, view_w, view_h);
> igt_plane_set_position(primary, 0, 0);
> igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +
> + if (data->coexist_feature & FEATURE_DSC)
> + igt_require_f(igt_is_dsc_enabled(data->drm_fd, output->name),
> + "DSC is not enabled\n");
> }
>
> static inline void manual(const char *expected)
> @@ -816,6 +846,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 +874,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 +913,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 +930,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 +956,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 +982,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 +1008,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 +1030,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 +1052,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 +1074,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 +1098,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 +1123,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 +1145,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 +1167,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 +1191,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 +1221,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 d93a07c9..6fb1bb86 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -233,7 +233,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',
> @@ -436,6 +435,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] 7+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature
2023-02-06 18:14 ` Swati Sharma
@ 2023-02-07 6:47 ` Hogander, Jouni
0 siblings, 0 replies; 7+ messages in thread
From: Hogander, Jouni @ 2023-02-07 6:47 UTC (permalink / raw)
To: igt-dev, Sharma, Swati2
On Mon, 2023-02-06 at 23:44 +0530, Swati Sharma wrote:
> Patch LGTM.
> Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
Thank you Swati. These two patches are now merged.
>
> On 03-Feb-23 1:28 PM, Jouni Högander wrote:
> > Add mechanism to add coexisting features with selective fetch
> > and add dynamic subtests for DSC as coexisting feature.
> >
> > v2:
> > - check dsc is enabled (Swati)
> > - remove unused variables
> >
> > 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 | 333 ++++++++++++++++++++++++++--------
> > -----
> > tests/meson.build | 9 +-
> > 2 files changed, 234 insertions(+), 108 deletions(-)
> >
> > diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> > index 078884ac..2d761d31 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,11 @@ typedef struct {
> > uint32_t screen_changes;
> > int cur_x, cur_y;
> > enum pipe pipe;
> > + enum {
> > + FEATURE_NONE = 0,
> > + FEATURE_DSC = 1,
> > + FEATURE_COUNT = 2,
> > + } coexist_feature;
> > } data_t;
> >
> > static const char *op_str(enum operations op)
> > @@ -104,6 +110,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 +242,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;
> > @@ -357,6 +383,10 @@ static void prepare(data_t *data)
> > igt_plane_set_size(primary, view_w, view_h);
> > igt_plane_set_position(primary, 0, 0);
> > igt_display_commit2(&data->display, COMMIT_ATOMIC);
> > +
> > + if (data->coexist_feature & FEATURE_DSC)
> > + igt_require_f(igt_is_dsc_enabled(data->drm_fd,
> > output->name),
> > + "DSC is not enabled\n");
> > }
> >
> > static inline void manual(const char *expected)
> > @@ -816,6 +846,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 +874,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 +913,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 +930,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 +956,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 +982,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 +1008,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 +1030,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 +1052,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 +1074,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 +1098,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 +1123,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 +1145,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 +1167,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 +1191,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 +1221,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 d93a07c9..6fb1bb86 100644
> > --- a/tests/meson.build
> > +++ b/tests/meson.build
> > @@ -233,7 +233,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',
> > @@ -436,6 +435,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] 7+ messages in thread
end of thread, other threads:[~2023-02-07 6:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-03 7:58 [igt-dev] [PATCH i-g-t v2 0/2] Psr2 dsc testcases Jouni Högander
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/i915/kms_psr2_sf: Some cleanups after Jouni Högander
2023-02-03 7:58 ` [igt-dev] [PATCH i-g-t v2 2/2] kms_psr2_sf: Add dynamic subtests which use DSC feature Jouni Högander
2023-02-06 18:14 ` Swati Sharma
2023-02-07 6:47 ` Hogander, Jouni
2023-02-03 13:09 ` [igt-dev] ✓ Fi.CI.BAT: success for Psr2 dsc testcases (rev2) Patchwork
2023-02-04 1:24 ` [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.