All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers
@ 2023-01-31 12:06 Ville Syrjala
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing igt_put_cairo_ctx() Ville Syrjala
                   ` (7 more replies)
  0 siblings, 8 replies; 25+ messages in thread
From: Ville Syrjala @ 2023-01-31 12:06 UTC (permalink / raw)
  To: igt-dev; +Cc: Arun R Murthy

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Fix up some issues in kms_async_flips, and remove most of
the hardcoded modifier stuff. Instead we can simply iterate
through all the modifiers reported by the plane.

Cc: Arun R Murthy <arun.r.murthy@intel.com>

Ville Syrjälä (6):
  tests/kms_async_flips: Add missing igt_put_cairo_ctx()
  tests/kms_async_flips: Render the bars full height
  tests/kms_async_flips: Ger rid of i915 specific fb creation
  tests/kms_async_flips: Run the test only once per pipe
  tests/kms_async_flips: Split test_init()
  tests/kms_async_flips: Test all modifiers

 tests/kms_async_flips.c | 118 +++++++++++++++++++++++++---------------
 1 file changed, 75 insertions(+), 43 deletions(-)

-- 
2.39.1

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [igt-dev] [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing igt_put_cairo_ctx()
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
@ 2023-01-31 12:06 ` Ville Syrjala
  2023-02-02 11:03   ` Murthy, Arun R
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_async_flips: Render the bars full height Ville Syrjala
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 25+ messages in thread
From: Ville Syrjala @ 2023-01-31 12:06 UTC (permalink / raw)
  To: igt-dev; +Cc: Arun R Murthy

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Remeber to call igt_put_cairo_ctx() after rendering to make
sure the results actually end up in the framebuffer (in case
the rendering happens to a temporary buffer and there needs
to be a copy back at the end).

Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 7cb71f6b441a..89e431ac32e2 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -134,6 +134,7 @@ static void make_fb(data_t *data, struct igt_fb *fb,
 
 	cr = igt_get_cairo_ctx(data->drm_fd, fb);
 	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, height / 4, rec_width, height / 2);
+	igt_put_cairo_ctx(cr);
 }
 
 static void require_monotonic_timestamp(int fd)
-- 
2.39.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [igt-dev] [PATCH i-g-t 2/6] tests/kms_async_flips: Render the bars full height
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing igt_put_cairo_ctx() Ville Syrjala
@ 2023-01-31 12:06 ` Ville Syrjala
  2023-02-09 14:11   ` Karthik B S
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation Ville Syrjala
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 25+ messages in thread
From: Ville Syrjala @ 2023-01-31 12:06 UTC (permalink / raw)
  To: igt-dev; +Cc: Arun R Murthy

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Make the colored bars full height so that we can actually see
the async flip activity on every scanline, as opposed to just
being able to see it in the middle of the screen.

Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 89e431ac32e2..55be0bd874ad 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -133,7 +133,7 @@ static void make_fb(data_t *data, struct igt_fb *fb,
 	}
 
 	cr = igt_get_cairo_ctx(data->drm_fd, fb);
-	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, height / 4, rec_width, height / 2);
+	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0, rec_width, height);
 	igt_put_cairo_ctx(cr);
 }
 
-- 
2.39.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing igt_put_cairo_ctx() Ville Syrjala
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_async_flips: Render the bars full height Ville Syrjala
@ 2023-01-31 12:06 ` Ville Syrjala
  2023-02-02 11:24   ` Murthy, Arun R
  2023-05-15  9:13   ` Murthy, Arun R
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe Ville Syrjala
                   ` (4 subsequent siblings)
  7 siblings, 2 replies; 25+ messages in thread
From: Ville Syrjala @ 2023-01-31 12:06 UTC (permalink / raw)
  To: igt-dev; +Cc: Arun R Murthy

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

No idea why the test wants to create the fb differently between i915
vs. others. Unify it.

Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 55be0bd874ad..f8c97e029c59 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -115,6 +115,15 @@ static void wait_flip_event(data_t *data)
 	}
 }
 
+static uint64_t default_modifier(data_t *data)
+{
+	if (igt_display_has_format_mod(&data->display, DRM_FORMAT_XRGB8888,
+				       I915_FORMAT_MOD_X_TILED))
+		return I915_FORMAT_MOD_X_TILED;
+	else
+		return DRM_FORMAT_MOD_LINEAR;
+}
+
 static void make_fb(data_t *data, struct igt_fb *fb,
 		    uint32_t width, uint32_t height, int index)
 {
@@ -123,14 +132,8 @@ static void make_fb(data_t *data, struct igt_fb *fb,
 
 	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
 
-	if (is_i915_device(data->drm_fd)) {
-		igt_create_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
-			      I915_FORMAT_MOD_X_TILED, fb);
-		igt_draw_fill_fb(data->drm_fd, fb, 0x88);
-	} else {
-		igt_create_color_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
-				    DRM_FORMAT_MOD_LINEAR, 0.0, 0.0, 0.5, fb);
-	}
+	igt_create_color_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
+			    default_modifier(data), 0.0, 0.0, 0.5, fb);
 
 	cr = igt_get_cairo_ctx(data->drm_fd, fb);
 	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0, rec_width, height);
-- 
2.39.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
                   ` (2 preceding siblings ...)
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation Ville Syrjala
@ 2023-01-31 12:06 ` Ville Syrjala
  2023-01-31 12:21   ` Modem, Bhanuprakash
  2023-02-02 11:25   ` Murthy, Arun R
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 5/6] tests/kms_async_flips: Split test_init() Ville Syrjala
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 25+ messages in thread
From: Ville Syrjala @ 2023-01-31 12:06 UTC (permalink / raw)
  To: igt-dev; +Cc: Arun R Murthy

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

No real reason to iterate over all the outputs here. Just
do the test once per pipe.

Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index f8c97e029c59..54611f66350d 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -544,20 +544,12 @@ static void test_crc(data_t *data)
 
 static void run_test(data_t *data, void (*test)(data_t *))
 {
-	igt_output_t *output;
-	enum pipe pipe;
+	for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
+		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe))
+			test(data);
 
-	for_each_pipe(&data->display, pipe) {
-		for_each_valid_output_on_pipe(&data->display, pipe, output) {
-			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
-				data->output = output;
-				data->pipe = pipe;
-				test(data);
-			}
-
-			if (!data->extended)
-				break;
-		}
+		if (!data->extended)
+			break;
 	}
 }
 
-- 
2.39.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [igt-dev] [PATCH i-g-t 5/6] tests/kms_async_flips: Split test_init()
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
                   ` (3 preceding siblings ...)
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe Ville Syrjala
@ 2023-01-31 12:06 ` Ville Syrjala
  2023-05-15  9:10   ` Murthy, Arun R
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers Ville Syrjala
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 25+ messages in thread
From: Ville Syrjala @ 2023-01-31 12:06 UTC (permalink / raw)
  To: igt-dev; +Cc: Arun R Murthy

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Split the test_init() into two parts: one sets up the mode, the
other the framebuffers. Will be useful for testing different
modifiers.

Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 54611f66350d..58740f6ab702 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -148,23 +148,31 @@ static void require_monotonic_timestamp(int fd)
 
 static void test_init(data_t *data)
 {
-	int i;
-	uint32_t width, height;
-	igt_plane_t *plane;
-	static uint32_t prev_output_id;
 	drmModeModeInfo *mode;
 
 	igt_display_reset(&data->display);
 	igt_display_commit(&data->display);
 
 	mode = igt_output_get_mode(data->output);
-	width = mode->hdisplay;
-	height = mode->vdisplay;
 
 	data->crtc_id = data->display.pipes[data->pipe].crtc_id;
 	data->refresh_rate = mode->vrefresh;
 
 	igt_output_set_pipe(data->output, data->pipe);
+}
+
+static void test_init_fbs(data_t *data)
+{
+	int i;
+	uint32_t width, height;
+	igt_plane_t *plane;
+	static uint32_t prev_output_id;
+	drmModeModeInfo *mode;
+
+	mode = igt_output_get_mode(data->output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
 	plane = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 
 	if (prev_output_id != data->output->id) {
@@ -191,8 +199,6 @@ static void test_async_flip(data_t *data)
 	long long int fps;
 	struct timeval start, end, diff;
 
-	test_init(data);
-
 	gettimeofday(&start, NULL);
 	frame = 1;
 	do {
@@ -287,8 +293,6 @@ static void test_timestamp(data_t *data)
 	unsigned int seq, seq1;
 	int ret;
 
-	test_init(data);
-
 	/*
 	 * In older platforms(<= gen10), async address update bit is double buffered.
 	 * So flip timestamp can be verified only from the second flip.
@@ -346,8 +350,6 @@ static void test_cursor(data_t *data)
 	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
 	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &height));
 
-	test_init(data);
-
 	igt_create_color_fb(data->drm_fd, width, height, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
 
@@ -388,8 +390,6 @@ static void test_invalid(data_t *data)
 	width = mode->hdisplay;
 	height = mode->vdisplay;
 
-	test_init(data);
-
 	igt_create_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
 		      I915_FORMAT_MOD_Y_TILED, &fb);
 
@@ -493,8 +493,6 @@ static void test_crc(data_t *data)
 	data->frame_count = 0;
 	data->flip_pending = false;
 
-	test_init(data);
-
 	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
 	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
 
@@ -545,8 +543,12 @@ static void test_crc(data_t *data)
 static void run_test(data_t *data, void (*test)(data_t *))
 {
 	for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
-		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe))
+		test_init(data);
+
+		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
+			test_init_fbs(data);
 			test(data);
+		}
 
 		if (!data->extended)
 			break;
-- 
2.39.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
                   ` (4 preceding siblings ...)
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 5/6] tests/kms_async_flips: Split test_init() Ville Syrjala
@ 2023-01-31 12:06 ` Ville Syrjala
  2023-02-02 11:23   ` Murthy, Arun R
  2023-01-31 12:38 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Test format modifiers Patchwork
  2023-01-31 16:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 1 reply; 25+ messages in thread
From: Ville Syrjala @ 2023-01-31 12:06 UTC (permalink / raw)
  To: igt-dev; +Cc: Arun R Murthy

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Run the basic async flip test for all modifiers reported
by the plane (for the XRGB8888 format). The driver may not
support async flip with all modifiers so we allow this to fail.

TODO: probably shuould add an even more basic subtest that
      makes sure the driver accepts async flips with a least
      one format/modifier combo, if it advertises async flip
      support

Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_async_flips.c | 54 +++++++++++++++++++++++++++++++++--------
 1 file changed, 44 insertions(+), 10 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 58740f6ab702..387fcff2f32c 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -53,6 +53,8 @@ typedef struct {
 	igt_output_t *output;
 	unsigned long flip_timestamp_us;
 	double flip_interval;
+	uint64_t modifier;
+	igt_plane_t *plane;
 	igt_pipe_crc_t *pipe_crc;
 	igt_crc_t ref_crc;
 	int flip_count;
@@ -61,6 +63,7 @@ typedef struct {
 	bool extended;
 	enum pipe pipe;
 	bool alternate_sync_async;
+	bool allow_fail;
 } data_t;
 
 static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
@@ -133,7 +136,7 @@ static void make_fb(data_t *data, struct igt_fb *fb,
 	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
 
 	igt_create_color_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
-			    default_modifier(data), 0.0, 0.0, 0.5, fb);
+			    data->modifier, 0.0, 0.0, 0.5, fb);
 
 	cr = igt_get_cairo_ctx(data->drm_fd, fb);
 	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0, rec_width, height);
@@ -159,24 +162,26 @@ static void test_init(data_t *data)
 	data->refresh_rate = mode->vrefresh;
 
 	igt_output_set_pipe(data->output, data->pipe);
+
+	data->plane = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 }
 
 static void test_init_fbs(data_t *data)
 {
 	int i;
 	uint32_t width, height;
-	igt_plane_t *plane;
 	static uint32_t prev_output_id;
+	static uint64_t prev_modifier;
 	drmModeModeInfo *mode;
 
 	mode = igt_output_get_mode(data->output);
 	width = mode->hdisplay;
 	height = mode->vdisplay;
 
-	plane = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
-
-	if (prev_output_id != data->output->id) {
+	if (prev_output_id != data->output->id ||
+	    prev_modifier != data->modifier) {
 		prev_output_id = data->output->id;
+		prev_modifier = data->modifier;
 
 		if (data->bufs[0].fb_id) {
 			for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
@@ -187,8 +192,8 @@ static void test_init_fbs(data_t *data)
 			make_fb(data, &data->bufs[i], width, height, i);
 	}
 
-	igt_plane_set_fb(plane, &data->bufs[0]);
-	igt_plane_set_size(plane, width, height);
+	igt_plane_set_fb(data->plane, &data->bufs[0]);
+	igt_plane_set_size(data->plane, width, height);
 
 	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 }
@@ -243,8 +248,10 @@ static void test_async_flip(data_t *data)
 		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
 				      data->bufs[frame % 4].fb_id,
 				      flags, data);
-
-		igt_assert(ret == 0);
+		if (frame == 1 && data->allow_fail)
+			igt_skip_on(ret == -EINVAL);
+		else
+			igt_assert(ret == 0);
 
 		wait_flip_event(data);
 
@@ -545,6 +552,9 @@ static void run_test(data_t *data, void (*test)(data_t *))
 	for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
 		test_init(data);
 
+		data->allow_fail = false;
+		data->modifier = default_modifier(data);
+
 		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
 			test_init_fbs(data);
 			test(data);
@@ -555,6 +565,30 @@ static void run_test(data_t *data, void (*test)(data_t *))
 	}
 }
 
+static void run_test_with_modifiers(data_t *data, void (*test)(data_t *))
+{
+	for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
+		test_init(data);
+
+		for (int i = 0; i < data->plane->format_mod_count; i++) {
+			if (data->plane->formats[i] != DRM_FORMAT_XRGB8888)
+				continue;
+
+			data->allow_fail = true;
+			data->modifier = data->plane->modifiers[i];
+
+			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data->pipe),
+				      igt_fb_modifier_name(data->modifier)) {
+				test_init_fbs(data);
+				test(data);
+			}
+		}
+
+		if (!data->extended)
+			break;
+	}
+}
+
 static int opt_handler(int opt, int opt_index, void *_data)
 {
 	data_t *data = _data;
@@ -595,7 +629,7 @@ igt_main_args("e", NULL, help_str, opt_handler, &data)
 		igt_describe("Wait for page flip events in between successive asynchronous flips");
 		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
 			data.alternate_sync_async = false;
-			run_test(&data, test_async_flip);
+			run_test_with_modifiers(&data, test_async_flip);
 		}
 
 		igt_describe("Alternate between sync and async flips");
-- 
2.39.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe Ville Syrjala
@ 2023-01-31 12:21   ` Modem, Bhanuprakash
  2023-02-02  9:27     ` Ville Syrjälä
  2023-02-02 11:25   ` Murthy, Arun R
  1 sibling, 1 reply; 25+ messages in thread
From: Modem, Bhanuprakash @ 2023-01-31 12:21 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev; +Cc: Arun R Murthy

Hi Ville,

On Tue-31-01-2023 05:36 pm, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> No real reason to iterate over all the outputs here. Just
> do the test once per pipe.
> 
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   tests/kms_async_flips.c | 18 +++++-------------
>   1 file changed, 5 insertions(+), 13 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index f8c97e029c59..54611f66350d 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -544,20 +544,12 @@ static void test_crc(data_t *data)
>   
>   static void run_test(data_t *data, void (*test)(data_t *))
>   {
> -	igt_output_t *output;
> -	enum pipe pipe;
> +	for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {

If data->extended is true, it'll iterate over all outputs. Maybe we can 
use for_each_pipe_with_single_output() to run test once per pipe.

- Bhanu

> +		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe))
> +			test(data);
>   
> -	for_each_pipe(&data->display, pipe) {
> -		for_each_valid_output_on_pipe(&data->display, pipe, output) {
> -			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
> -				data->output = output;
> -				data->pipe = pipe;
> -				test(data);
> -			}
> -
> -			if (!data->extended)
> -				break;
> -		}
> +		if (!data->extended)
> +			break;
>   	}
>   }
>   

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Test format modifiers
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
                   ` (5 preceding siblings ...)
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers Ville Syrjala
@ 2023-01-31 12:38 ` Patchwork
  2023-01-31 16:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2023-01-31 12:38 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 4342 bytes --]

== Series Details ==

Series: tests/kms_async_flips: Test format modifiers
URL   : https://patchwork.freedesktop.org/series/113525/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12672 -> IGTPW_8421
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/index.html

Participating hosts (26 -> 26)
------------------------------

  Additional (1): fi-kbl-7567u 
  Missing    (1): fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_8421 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-7567u:       NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/fi-kbl-7567u/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-kbl-7567u:       NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/fi-kbl-7567u/igt@gem_lmem_swapping@basic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size:
    - fi-bsw-n3050:       [PASS][3] -> [FAIL][4] ([i915#6298])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html

  * igt@kms_psr@cursor_plane_move:
    - fi-kbl-7567u:       NOTRUN -> [SKIP][5] ([fdo#109271]) +14 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/fi-kbl-7567u/igt@kms_psr@cursor_plane_move.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@basic-rte:
    - {bat-adlp-6}:       [ABORT][6] ([i915#7977]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/bat-adlp-6/igt@i915_pm_rpm@basic-rte.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/bat-adlp-6/igt@i915_pm_rpm@basic-rte.html

  * igt@i915_selftest@live@hangcheck:
    - {bat-dg2-8}:        [ABORT][8] -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/bat-dg2-8/igt@i915_selftest@live@hangcheck.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/bat-dg2-8/igt@i915_selftest@live@hangcheck.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#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
  [i915#6311]: https://gitlab.freedesktop.org/drm/intel/issues/6311
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7143 -> IGTPW_8421

  CI-20190529: 20190529
  CI_DRM_12672: df5c31e78609626a1278ad79305cd408f403ceac @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8421: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/index.html
  IGT_7143: c7b12dcc460fc2348e1fa7f4dcb791bb82e29e44 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/index.html

[-- Attachment #2: Type: text/html, Size: 4347 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_async_flips: Test format modifiers
  2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
                   ` (6 preceding siblings ...)
  2023-01-31 12:38 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Test format modifiers Patchwork
@ 2023-01-31 16:28 ` Patchwork
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2023-01-31 16:28 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 22443 bytes --]

== Series Details ==

Series: tests/kms_async_flips: Test format modifiers
URL   : https://patchwork.freedesktop.org/series/113525/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12672_full -> IGTPW_8421_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/index.html

Participating hosts (10 -> 11)
------------------------------

  Additional (1): shard-rkl0 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_8421_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-y-rc_ccs-cc} (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][1] +2 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-dg1-15/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-y-rc_ccs-cc.html
    - {shard-tglu}:       NOTRUN -> [SKIP][2] +2 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-tglu-2/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-y-rc_ccs-cc.html

  * {igt@kms_async_flips@crc@pipe-a} (NEW):
    - {shard-dg1}:        NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-dg1-17/igt@kms_async_flips@crc@pipe-a.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12672_full and IGTPW_8421_full:

### New IGT tests (13) ###

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-linear:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-x:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-y:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-y-ccs:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-y-rc_ccs:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-y-rc_ccs-cc:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-yf-ccs:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@crc@pipe-a:
    - Statuses : 1 fail(s) 2 pass(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@invalid-async-flip@pipe-a:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@test-cursor@pipe-a:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_async_flips@test-time-stamp@pipe-a:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_8421_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * {igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-linear} (NEW):
    - shard-glk:          NOTRUN -> [SKIP][4] ([fdo#109271]) +2 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-glk6/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-linear.html

  
#### Possible fixes ####

  * igt@drm_read@empty-nonblock:
    - {shard-tglu}:       [SKIP][5] ([i915#1845] / [i915#7651]) -> [PASS][6] +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-tglu-6/igt@drm_read@empty-nonblock.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-tglu-2/igt@drm_read@empty-nonblock.html

  * igt@fbdev@read:
    - {shard-rkl}:        [SKIP][7] ([i915#2582]) -> [PASS][8] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-4/igt@fbdev@read.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-2/igt@fbdev@read.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          [FAIL][9] ([i915#2846]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-glk3/igt@gem_exec_fair@basic-deadline.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-glk3/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - {shard-rkl}:        [FAIL][11] ([i915#2842]) -> [PASS][12] +2 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-6/igt@gem_exec_fair@basic-none@vcs0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-5/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_reloc@basic-wc-read-noreloc:
    - {shard-rkl}:        [SKIP][13] ([i915#3281]) -> [PASS][14] +8 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-3/igt@gem_exec_reloc@basic-wc-read-noreloc.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-5/igt@gem_exec_reloc@basic-wc-read-noreloc.html

  * igt@gem_mmap_gtt@coherency:
    - {shard-rkl}:        [SKIP][15] ([fdo#111656]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-4/igt@gem_mmap_gtt@coherency.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-5/igt@gem_mmap_gtt@coherency.html

  * igt@gem_pwrite@basic-self:
    - {shard-rkl}:        [SKIP][17] ([i915#3282]) -> [PASS][18] +4 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-1/igt@gem_pwrite@basic-self.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-5/igt@gem_pwrite@basic-self.html

  * igt@gen9_exec_parse@bb-secure:
    - {shard-rkl}:        [SKIP][19] ([i915#2527]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-4/igt@gen9_exec_parse@bb-secure.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-5/igt@gen9_exec_parse@bb-secure.html

  * igt@i915_pm_rc6_residency@rc6-idle@vcs0:
    - {shard-rkl}:        [WARN][21] ([i915#2681]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-5/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-3/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html

  * igt@i915_pm_rpm@modeset-lpsp-stress-no-wait:
    - {shard-tglu}:       [SKIP][23] ([i915#1397]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-tglu-6/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-tglu-5/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@i915_pm_sseu@full-enable:
    - {shard-rkl}:        [SKIP][25] ([i915#4387]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-4/igt@i915_pm_sseu@full-enable.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-5/igt@i915_pm_sseu@full-enable.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu:
    - {shard-tglu}:       [SKIP][27] ([i915#1849]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-tglu-2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-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] +19 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_properties@plane-properties-atomic:
    - {shard-rkl}:        [SKIP][31] ([i915#1849]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-5/igt@kms_properties@plane-properties-atomic.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-6/igt@kms_properties@plane-properties-atomic.html

  * igt@kms_psr@cursor_blt:
    - {shard-rkl}:        [SKIP][33] ([i915#1072]) -> [PASS][34] +2 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-5/igt@kms_psr@cursor_blt.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-6/igt@kms_psr@cursor_blt.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - {shard-tglu}:       [SKIP][35] ([i915#7651]) -> [PASS][36] +4 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-tglu-6/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-tglu-4/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@kms_vblank@pipe-b-query-idle:
    - {shard-rkl}:        [SKIP][37] ([i915#1845] / [i915#4098]) -> [PASS][38] +37 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-4/igt@kms_vblank@pipe-b-query-idle.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-6/igt@kms_vblank@pipe-b-query-idle.html

  * igt@perf@gen12-oa-tlb-invalidate:
    - {shard-rkl}:        [SKIP][39] ([fdo#109289]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-5/igt@perf@gen12-oa-tlb-invalidate.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-1/igt@perf@gen12-oa-tlb-invalidate.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - {shard-rkl}:        [SKIP][41] ([i915#2436]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-4/igt@perf@gen8-unprivileged-single-ctx-counters.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-5/igt@perf@gen8-unprivileged-single-ctx-counters.html

  * igt@prime_vgem@basic-fence-flip:
    - {shard-rkl}:        [SKIP][43] ([fdo#109295] / [i915#3708] / [i915#4098]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12672/shard-rkl-1/igt@prime_vgem@basic-fence-flip.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/shard-rkl-6/igt@prime_vgem@basic-fence-flip.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/CI_DRM_12672/shard-rkl-3/igt@prime_vgem@basic-read.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/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/CI_DRM_12672/shard-rkl-1/igt@testdisplay.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/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#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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [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#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [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#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [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#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [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#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#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [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#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
  [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#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [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#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [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#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [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#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [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#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884
  [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#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#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [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#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [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#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [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#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037
  [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#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#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
  [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7143 -> IGTPW_8421

  CI-20190529: 20190529
  CI_DRM_12672: df5c31e78609626a1278ad79305cd408f403ceac @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8421: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/index.html
  IGT_7143: c7b12dcc460fc2348e1fa7f4dcb791bb82e29e44 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8421/index.html

[-- Attachment #2: Type: text/html, Size: 15512 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe
  2023-01-31 12:21   ` Modem, Bhanuprakash
@ 2023-02-02  9:27     ` Ville Syrjälä
  0 siblings, 0 replies; 25+ messages in thread
From: Ville Syrjälä @ 2023-02-02  9:27 UTC (permalink / raw)
  To: Modem, Bhanuprakash; +Cc: igt-dev, Arun R Murthy

On Tue, Jan 31, 2023 at 05:51:22PM +0530, Modem, Bhanuprakash wrote:
> Hi Ville,
> 
> On Tue-31-01-2023 05:36 pm, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > No real reason to iterate over all the outputs here. Just
> > do the test once per pipe.
> > 
> > Cc: Arun R Murthy <arun.r.murthy@intel.com>
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >   tests/kms_async_flips.c | 18 +++++-------------
> >   1 file changed, 5 insertions(+), 13 deletions(-)
> > 
> > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> > index f8c97e029c59..54611f66350d 100644
> > --- a/tests/kms_async_flips.c
> > +++ b/tests/kms_async_flips.c
> > @@ -544,20 +544,12 @@ static void test_crc(data_t *data)
> >   
> >   static void run_test(data_t *data, void (*test)(data_t *))
> >   {
> > -	igt_output_t *output;
> > -	enum pipe pipe;
> > +	for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
> 
> If data->extended is true, it'll iterate over all outputs. Maybe we can 
> use for_each_pipe_with_single_output() to run test once per pipe.

Hmm. After further thought it might still be nice to iterate all
outputs, in case we have output specific stuff (eg. PSR) that
could affect the behaviour or async flips. In which case I suppose
we need to keep including the output name in the test name.

> 
> - Bhanu
> 
> > +		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe))
> > +			test(data);
> >   
> > -	for_each_pipe(&data->display, pipe) {
> > -		for_each_valid_output_on_pipe(&data->display, pipe, output) {
> > -			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
> > -				data->output = output;
> > -				data->pipe = pipe;
> > -				test(data);
> > -			}
> > -
> > -			if (!data->extended)
> > -				break;
> > -		}
> > +		if (!data->extended)
> > +			break;
> >   	}
> >   }
> >   

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing igt_put_cairo_ctx()
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing igt_put_cairo_ctx() Ville Syrjala
@ 2023-02-02 11:03   ` Murthy, Arun R
  0 siblings, 0 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-02-02 11:03 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> -----Original Message-----
> From: Ville Syrjala <ville.syrjala@linux.intel.com>
> Sent: Tuesday, January 31, 2023 5:37 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> Subject: [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing
> igt_put_cairo_ctx()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Remeber to call igt_put_cairo_ctx() after rendering to make sure the results
> actually end up in the framebuffer (in case the rendering happens to a
> temporary buffer and there needs to be a copy back at the end).
> 
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>

Thanks and Regards,
Arun R Murthy
-------------------
>  tests/kms_async_flips.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> 7cb71f6b441a..89e431ac32e2 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -134,6 +134,7 @@ static void make_fb(data_t *data, struct igt_fb *fb,
> 
>  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
>  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, height /
> 4, rec_width, height / 2);
> +	igt_put_cairo_ctx(cr);
>  }
> 
>  static void require_monotonic_timestamp(int fd)
> --
> 2.39.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers Ville Syrjala
@ 2023-02-02 11:23   ` Murthy, Arun R
  2023-02-02 12:15     ` Ville Syrjälä
  2023-02-03 12:29     ` Ville Syrjälä
  0 siblings, 2 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-02-02 11:23 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> -----Original Message-----
> From: Ville Syrjala <ville.syrjala@linux.intel.com>
> Sent: Tuesday, January 31, 2023 5:37 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Run the basic async flip test for all modifiers reported by the plane (for the
> XRGB8888 format). The driver may not support async flip with all modifiers
> so we allow this to fail.

Support for adding X-tile and linear for all platforms is being added as sub-test in https://patchwork.freedesktop.org/series/103137/

> 
> TODO: probably shuould add an even more basic subtest that
>       makes sure the driver accepts async flips with a least
>       one format/modifier combo, if it advertises async flip
>       support
> 
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  tests/kms_async_flips.c | 54 +++++++++++++++++++++++++++++++++--------
>  1 file changed, 44 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> 58740f6ab702..387fcff2f32c 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -53,6 +53,8 @@ typedef struct {
>  	igt_output_t *output;
>  	unsigned long flip_timestamp_us;
>  	double flip_interval;
> +	uint64_t modifier;
> +	igt_plane_t *plane;
>  	igt_pipe_crc_t *pipe_crc;
>  	igt_crc_t ref_crc;
>  	int flip_count;
> @@ -61,6 +63,7 @@ typedef struct {
>  	bool extended;
>  	enum pipe pipe;
>  	bool alternate_sync_async;
> +	bool allow_fail;
>  } data_t;
> 
>  static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> @@ -133,7 +136,7 @@ static void make_fb(data_t *data, struct igt_fb *fb,
>  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> 
>  	igt_create_color_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> -			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> +			    data->modifier, 0.0, 0.0, 0.5, fb);
> 
>  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
>  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0,
> rec_width, height); @@ -159,24 +162,26 @@ static void test_init(data_t
> *data)
>  	data->refresh_rate = mode->vrefresh;
> 
>  	igt_output_set_pipe(data->output, data->pipe);
> +
> +	data->plane = igt_output_get_plane_type(data->output,
> +DRM_PLANE_TYPE_PRIMARY);
>  }
> 
>  static void test_init_fbs(data_t *data)  {
>  	int i;
>  	uint32_t width, height;
> -	igt_plane_t *plane;
>  	static uint32_t prev_output_id;
> +	static uint64_t prev_modifier;
>  	drmModeModeInfo *mode;
> 
>  	mode = igt_output_get_mode(data->output);
>  	width = mode->hdisplay;
>  	height = mode->vdisplay;
> 
> -	plane = igt_output_get_plane_type(data->output,
> DRM_PLANE_TYPE_PRIMARY);
> -
> -	if (prev_output_id != data->output->id) {
> +	if (prev_output_id != data->output->id ||
> +	    prev_modifier != data->modifier) {
>  		prev_output_id = data->output->id;
> +		prev_modifier = data->modifier;
> 
>  		if (data->bufs[0].fb_id) {
>  			for (i = 0; i < ARRAY_SIZE(data->bufs); i++) @@ -187,8
> +192,8 @@ static void test_init_fbs(data_t *data)
>  			make_fb(data, &data->bufs[i], width, height, i);
>  	}
> 
> -	igt_plane_set_fb(plane, &data->bufs[0]);
> -	igt_plane_set_size(plane, width, height);
> +	igt_plane_set_fb(data->plane, &data->bufs[0]);
> +	igt_plane_set_size(data->plane, width, height);
> 
>  	igt_display_commit2(&data->display, data->display.is_atomic ?
> COMMIT_ATOMIC : COMMIT_LEGACY);  } @@ -243,8 +248,10 @@ static void
> test_async_flip(data_t *data)
>  		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
>  				      data->bufs[frame % 4].fb_id,
>  				      flags, data);
> -
> -		igt_assert(ret == 0);
> +		if (frame == 1 && data->allow_fail)
> +			igt_skip_on(ret == -EINVAL);
> +		else
> +			igt_assert(ret == 0);
> 
>  		wait_flip_event(data);
> 
> @@ -545,6 +552,9 @@ static void run_test(data_t *data, void (*test)(data_t
> *))
>  	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> >output) {
>  		test_init(data);
> 
> +		data->allow_fail = false;
> +		data->modifier = default_modifier(data);
> +
>  		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
>  			test_init_fbs(data);
>  			test(data);
> @@ -555,6 +565,30 @@ static void run_test(data_t *data, void
> (*test)(data_t *))
>  	}
>  }
> 
> +static void run_test_with_modifiers(data_t *data, void (*test)(data_t
> +*)) {
> +	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> >output) {
> +		test_init(data);
> +
> +		for (int i = 0; i < data->plane->format_mod_count; i++) {
> +			if (data->plane->formats[i] !=
> DRM_FORMAT_XRGB8888)
> +				continue;
> +
> +			data->allow_fail = true;
If the modifier is supported by the platform and there is a failure with a bug in driver/hardware, aren't we falsely reporting here?

Thanks and Regards,
Arun R Murthy
--------------------
> +			data->modifier = data->plane->modifiers[i];
> +
> +			igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(data->pipe),
> +				      igt_fb_modifier_name(data->modifier)) {
> +				test_init_fbs(data);
> +				test(data);
> +			}
> +		}
> +
> +		if (!data->extended)
> +			break;
> +	}
> +}
> +
>  static int opt_handler(int opt, int opt_index, void *_data)  {
>  	data_t *data = _data;
> @@ -595,7 +629,7 @@ igt_main_args("e", NULL, help_str, opt_handler,
> &data)
>  		igt_describe("Wait for page flip events in between successive
> asynchronous flips");
>  		igt_subtest_with_dynamic("async-flip-with-page-flip-events")
> {
>  			data.alternate_sync_async = false;
> -			run_test(&data, test_async_flip);
> +			run_test_with_modifiers(&data, test_async_flip);
>  		}
> 
>  		igt_describe("Alternate between sync and async flips");
> --
> 2.39.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation Ville Syrjala
@ 2023-02-02 11:24   ` Murthy, Arun R
  2023-05-15  9:13   ` Murthy, Arun R
  1 sibling, 0 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-02-02 11:24 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> -----Original Message-----
> From: Ville Syrjala <ville.syrjala@linux.intel.com>
> Sent: Tuesday, January 31, 2023 5:37 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> Subject: [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb
> creation
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> No idea why the test wants to create the fb differently between i915 vs.
> others. Unify it.
> 

This is already handled as part of the patch https://patchwork.freedesktop.org/series/103137/
Here subtests have been added and platform specific creation of fb is removed.

Thanks and Regards,
Arun R Murthy
--------------------

> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  tests/kms_async_flips.c | 19 +++++++++++--------
>  1 file changed, 11 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> 55be0bd874ad..f8c97e029c59 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -115,6 +115,15 @@ static void wait_flip_event(data_t *data)
>  	}
>  }
> 
> +static uint64_t default_modifier(data_t *data) {
> +	if (igt_display_has_format_mod(&data->display,
> DRM_FORMAT_XRGB8888,
> +				       I915_FORMAT_MOD_X_TILED))
> +		return I915_FORMAT_MOD_X_TILED;
> +	else
> +		return DRM_FORMAT_MOD_LINEAR;
> +}
> +
>  static void make_fb(data_t *data, struct igt_fb *fb,
>  		    uint32_t width, uint32_t height, int index)  { @@ -123,14
> +132,8 @@ static void make_fb(data_t *data, struct igt_fb *fb,
> 
>  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> 
> -	if (is_i915_device(data->drm_fd)) {
> -		igt_create_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> -			      I915_FORMAT_MOD_X_TILED, fb);
> -		igt_draw_fill_fb(data->drm_fd, fb, 0x88);
> -	} else {
> -		igt_create_color_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> -				    DRM_FORMAT_MOD_LINEAR, 0.0, 0.0, 0.5,
> fb);
> -	}
> +	igt_create_color_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> +			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> 
>  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
>  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0,
> rec_width, height);
> --
> 2.39.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe Ville Syrjala
  2023-01-31 12:21   ` Modem, Bhanuprakash
@ 2023-02-02 11:25   ` Murthy, Arun R
  1 sibling, 0 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-02-02 11:25 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> -----Original Message-----
> From: Ville Syrjala <ville.syrjala@linux.intel.com>
> Sent: Tuesday, January 31, 2023 5:37 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> Subject: [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per
> pipe
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> No real reason to iterate over all the outputs here. Just do the test once per
> pipe.
> 
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---

Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>

Thanks and Regards,
Arun R Murthy
---------------------

>  tests/kms_async_flips.c | 18 +++++-------------
>  1 file changed, 5 insertions(+), 13 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> f8c97e029c59..54611f66350d 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -544,20 +544,12 @@ static void test_crc(data_t *data)
> 
>  static void run_test(data_t *data, void (*test)(data_t *))  {
> -	igt_output_t *output;
> -	enum pipe pipe;
> +	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> >output) {
> +		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe))
> +			test(data);
> 
> -	for_each_pipe(&data->display, pipe) {
> -		for_each_valid_output_on_pipe(&data->display, pipe,
> output) {
> -			igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipe), output->name) {
> -				data->output = output;
> -				data->pipe = pipe;
> -				test(data);
> -			}
> -
> -			if (!data->extended)
> -				break;
> -		}
> +		if (!data->extended)
> +			break;
>  	}
>  }
> 
> --
> 2.39.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-02-02 11:23   ` Murthy, Arun R
@ 2023-02-02 12:15     ` Ville Syrjälä
  2023-02-02 12:24       ` Murthy, Arun R
  2023-02-03 12:29     ` Ville Syrjälä
  1 sibling, 1 reply; 25+ messages in thread
From: Ville Syrjälä @ 2023-02-02 12:15 UTC (permalink / raw)
  To: Murthy, Arun R; +Cc: igt-dev

On Thu, Feb 02, 2023 at 11:23:09AM +0000, Murthy, Arun R wrote:
> > -----Original Message-----
> > From: Ville Syrjala <ville.syrjala@linux.intel.com>
> > Sent: Tuesday, January 31, 2023 5:37 PM
> > To: igt-dev@lists.freedesktop.org
> > Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> > Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> > 
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Run the basic async flip test for all modifiers reported by the plane (for the
> > XRGB8888 format). The driver may not support async flip with all modifiers
> > so we allow this to fail.
> 
> Support for adding X-tile and linear for all platforms is being added as sub-test in https://patchwork.freedesktop.org/series/103137/
> 
> > 
> > TODO: probably shuould add an even more basic subtest that
> >       makes sure the driver accepts async flips with a least
> >       one format/modifier combo, if it advertises async flip
> >       support
> > 
> > Cc: Arun R Murthy <arun.r.murthy@intel.com>
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  tests/kms_async_flips.c | 54 +++++++++++++++++++++++++++++++++--------
> >  1 file changed, 44 insertions(+), 10 deletions(-)
> > 
> > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> > 58740f6ab702..387fcff2f32c 100644
> > --- a/tests/kms_async_flips.c
> > +++ b/tests/kms_async_flips.c
> > @@ -53,6 +53,8 @@ typedef struct {
> >  	igt_output_t *output;
> >  	unsigned long flip_timestamp_us;
> >  	double flip_interval;
> > +	uint64_t modifier;
> > +	igt_plane_t *plane;
> >  	igt_pipe_crc_t *pipe_crc;
> >  	igt_crc_t ref_crc;
> >  	int flip_count;
> > @@ -61,6 +63,7 @@ typedef struct {
> >  	bool extended;
> >  	enum pipe pipe;
> >  	bool alternate_sync_async;
> > +	bool allow_fail;
> >  } data_t;
> > 
> >  static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
> > @@ -133,7 +136,7 @@ static void make_fb(data_t *data, struct igt_fb *fb,
> >  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> > 
> >  	igt_create_color_fb(data->drm_fd, width, height,
> > DRM_FORMAT_XRGB8888,
> > -			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> > +			    data->modifier, 0.0, 0.0, 0.5, fb);
> > 
> >  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
> >  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0,
> > rec_width, height); @@ -159,24 +162,26 @@ static void test_init(data_t
> > *data)
> >  	data->refresh_rate = mode->vrefresh;
> > 
> >  	igt_output_set_pipe(data->output, data->pipe);
> > +
> > +	data->plane = igt_output_get_plane_type(data->output,
> > +DRM_PLANE_TYPE_PRIMARY);
> >  }
> > 
> >  static void test_init_fbs(data_t *data)  {
> >  	int i;
> >  	uint32_t width, height;
> > -	igt_plane_t *plane;
> >  	static uint32_t prev_output_id;
> > +	static uint64_t prev_modifier;
> >  	drmModeModeInfo *mode;
> > 
> >  	mode = igt_output_get_mode(data->output);
> >  	width = mode->hdisplay;
> >  	height = mode->vdisplay;
> > 
> > -	plane = igt_output_get_plane_type(data->output,
> > DRM_PLANE_TYPE_PRIMARY);
> > -
> > -	if (prev_output_id != data->output->id) {
> > +	if (prev_output_id != data->output->id ||
> > +	    prev_modifier != data->modifier) {
> >  		prev_output_id = data->output->id;
> > +		prev_modifier = data->modifier;
> > 
> >  		if (data->bufs[0].fb_id) {
> >  			for (i = 0; i < ARRAY_SIZE(data->bufs); i++) @@ -187,8
> > +192,8 @@ static void test_init_fbs(data_t *data)
> >  			make_fb(data, &data->bufs[i], width, height, i);
> >  	}
> > 
> > -	igt_plane_set_fb(plane, &data->bufs[0]);
> > -	igt_plane_set_size(plane, width, height);
> > +	igt_plane_set_fb(data->plane, &data->bufs[0]);
> > +	igt_plane_set_size(data->plane, width, height);
> > 
> >  	igt_display_commit2(&data->display, data->display.is_atomic ?
> > COMMIT_ATOMIC : COMMIT_LEGACY);  } @@ -243,8 +248,10 @@ static void
> > test_async_flip(data_t *data)
> >  		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
> >  				      data->bufs[frame % 4].fb_id,
> >  				      flags, data);
> > -
> > -		igt_assert(ret == 0);
> > +		if (frame == 1 && data->allow_fail)
> > +			igt_skip_on(ret == -EINVAL);
> > +		else
> > +			igt_assert(ret == 0);
> > 
> >  		wait_flip_event(data);
> > 
> > @@ -545,6 +552,9 @@ static void run_test(data_t *data, void (*test)(data_t
> > *))
> >  	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> > >output) {
> >  		test_init(data);
> > 
> > +		data->allow_fail = false;
> > +		data->modifier = default_modifier(data);
> > +
> >  		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
> >  			test_init_fbs(data);
> >  			test(data);
> > @@ -555,6 +565,30 @@ static void run_test(data_t *data, void
> > (*test)(data_t *))
> >  	}
> >  }
> > 
> > +static void run_test_with_modifiers(data_t *data, void (*test)(data_t
> > +*)) {
> > +	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> > >output) {
> > +		test_init(data);
> > +
> > +		for (int i = 0; i < data->plane->format_mod_count; i++) {
> > +			if (data->plane->formats[i] !=
> > DRM_FORMAT_XRGB8888)
> > +				continue;
> > +
> > +			data->allow_fail = true;
> If the modifier is supported by the platform and there is a failure with a bug in driver/hardware, aren't we falsely reporting here?

There is no way to query what is supported by the hw/driver, so
we just have to try them all and accept that not all may succeed.
As mentioned earlier it would be nice it we have a basic subtest to
confirm that at least one of the modifier/format combos works
when the driver advertises async flip support.

> 
> Thanks and Regards,
> Arun R Murthy
> --------------------
> > +			data->modifier = data->plane->modifiers[i];
> > +
> > +			igt_dynamic_f("pipe-%s-%s",
> > kmstest_pipe_name(data->pipe),
> > +				      igt_fb_modifier_name(data->modifier)) {
> > +				test_init_fbs(data);
> > +				test(data);
> > +			}
> > +		}
> > +
> > +		if (!data->extended)
> > +			break;
> > +	}
> > +}
> > +
> >  static int opt_handler(int opt, int opt_index, void *_data)  {
> >  	data_t *data = _data;
> > @@ -595,7 +629,7 @@ igt_main_args("e", NULL, help_str, opt_handler,
> > &data)
> >  		igt_describe("Wait for page flip events in between successive
> > asynchronous flips");
> >  		igt_subtest_with_dynamic("async-flip-with-page-flip-events")
> > {
> >  			data.alternate_sync_async = false;
> > -			run_test(&data, test_async_flip);
> > +			run_test_with_modifiers(&data, test_async_flip);
> >  		}
> > 
> >  		igt_describe("Alternate between sync and async flips");
> > --
> > 2.39.1
> 

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-02-02 12:15     ` Ville Syrjälä
@ 2023-02-02 12:24       ` Murthy, Arun R
  2023-02-03 12:32         ` Ville Syrjälä
  0 siblings, 1 reply; 25+ messages in thread
From: Murthy, Arun R @ 2023-02-02 12:24 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: Thursday, February 2, 2023 5:46 PM
> To: Murthy, Arun R <arun.r.murthy@intel.com>
> Cc: igt-dev@lists.freedesktop.org
> Subject: Re: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> 
> On Thu, Feb 02, 2023 at 11:23:09AM +0000, Murthy, Arun R wrote:
> > > -----Original Message-----
> > > From: Ville Syrjala <ville.syrjala@linux.intel.com>
> > > Sent: Tuesday, January 31, 2023 5:37 PM
> > > To: igt-dev@lists.freedesktop.org
> > > Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> > > Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> > >
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >
> > > Run the basic async flip test for all modifiers reported by the
> > > plane (for the
> > > XRGB8888 format). The driver may not support async flip with all
> > > modifiers so we allow this to fail.
> >
> > Support for adding X-tile and linear for all platforms is being added
> > as sub-test in https://patchwork.freedesktop.org/series/103137/
> >
> > >
> > > TODO: probably shuould add an even more basic subtest that
> > >       makes sure the driver accepts async flips with a least
> > >       one format/modifier combo, if it advertises async flip
> > >       support
> > >
> > > Cc: Arun R Murthy <arun.r.murthy@intel.com>
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  tests/kms_async_flips.c | 54
> > > +++++++++++++++++++++++++++++++++--------
> > >  1 file changed, 44 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> > > 58740f6ab702..387fcff2f32c 100644
> > > --- a/tests/kms_async_flips.c
> > > +++ b/tests/kms_async_flips.c
> > > @@ -53,6 +53,8 @@ typedef struct {
> > >  	igt_output_t *output;
> > >  	unsigned long flip_timestamp_us;
> > >  	double flip_interval;
> > > +	uint64_t modifier;
> > > +	igt_plane_t *plane;
> > >  	igt_pipe_crc_t *pipe_crc;
> > >  	igt_crc_t ref_crc;
> > >  	int flip_count;
> > > @@ -61,6 +63,7 @@ typedef struct {
> > >  	bool extended;
> > >  	enum pipe pipe;
> > >  	bool alternate_sync_async;
> > > +	bool allow_fail;
> > >  } data_t;
> > >
> > >  static void flip_handler(int fd_, unsigned int sequence, unsigned
> > > int tv_sec, @@ -133,7 +136,7 @@ static void make_fb(data_t *data,
> struct igt_fb *fb,
> > >  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> > >
> > >  	igt_create_color_fb(data->drm_fd, width, height,
> > > DRM_FORMAT_XRGB8888,
> > > -			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> > > +			    data->modifier, 0.0, 0.0, 0.5, fb);
> > >
> > >  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > >  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0,
> > > rec_width, height); @@ -159,24 +162,26 @@ static void
> > > test_init(data_t
> > > *data)
> > >  	data->refresh_rate = mode->vrefresh;
> > >
> > >  	igt_output_set_pipe(data->output, data->pipe);
> > > +
> > > +	data->plane = igt_output_get_plane_type(data->output,
> > > +DRM_PLANE_TYPE_PRIMARY);
> > >  }
> > >
> > >  static void test_init_fbs(data_t *data)  {
> > >  	int i;
> > >  	uint32_t width, height;
> > > -	igt_plane_t *plane;
> > >  	static uint32_t prev_output_id;
> > > +	static uint64_t prev_modifier;
> > >  	drmModeModeInfo *mode;
> > >
> > >  	mode = igt_output_get_mode(data->output);
> > >  	width = mode->hdisplay;
> > >  	height = mode->vdisplay;
> > >
> > > -	plane = igt_output_get_plane_type(data->output,
> > > DRM_PLANE_TYPE_PRIMARY);
> > > -
> > > -	if (prev_output_id != data->output->id) {
> > > +	if (prev_output_id != data->output->id ||
> > > +	    prev_modifier != data->modifier) {
> > >  		prev_output_id = data->output->id;
> > > +		prev_modifier = data->modifier;
> > >
> > >  		if (data->bufs[0].fb_id) {
> > >  			for (i = 0; i < ARRAY_SIZE(data->bufs); i++) @@ -187,8
> > > +192,8 @@ static void test_init_fbs(data_t *data)
> > >  			make_fb(data, &data->bufs[i], width, height, i);
> > >  	}
> > >
> > > -	igt_plane_set_fb(plane, &data->bufs[0]);
> > > -	igt_plane_set_size(plane, width, height);
> > > +	igt_plane_set_fb(data->plane, &data->bufs[0]);
> > > +	igt_plane_set_size(data->plane, width, height);
> > >
> > >  	igt_display_commit2(&data->display, data->display.is_atomic ?
> > > COMMIT_ATOMIC : COMMIT_LEGACY);  } @@ -243,8 +248,10 @@ static
> void
> > > test_async_flip(data_t *data)
> > >  		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
> > >  				      data->bufs[frame % 4].fb_id,
> > >  				      flags, data);
> > > -
> > > -		igt_assert(ret == 0);
> > > +		if (frame == 1 && data->allow_fail)
> > > +			igt_skip_on(ret == -EINVAL);
> > > +		else
> > > +			igt_assert(ret == 0);
> > >
> > >  		wait_flip_event(data);
> > >
> > > @@ -545,6 +552,9 @@ static void run_test(data_t *data, void
> > > (*test)(data_t
> > > *))
> > >  	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> > > >output) {
> > >  		test_init(data);
> > >
> > > +		data->allow_fail = false;
> > > +		data->modifier = default_modifier(data);
> > > +
> > >  		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
> > >  			test_init_fbs(data);
> > >  			test(data);
> > > @@ -555,6 +565,30 @@ static void run_test(data_t *data, void
> > > (*test)(data_t *))
> > >  	}
> > >  }
> > >
> > > +static void run_test_with_modifiers(data_t *data, void
> > > +(*test)(data_t
> > > +*)) {
> > > +	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> > > >output) {
> > > +		test_init(data);
> > > +
> > > +		for (int i = 0; i < data->plane->format_mod_count; i++) {
> > > +			if (data->plane->formats[i] !=
> > > DRM_FORMAT_XRGB8888)
> > > +				continue;
> > > +
> > > +			data->allow_fail = true;
> > If the modifier is supported by the platform and there is a failure with a
> bug in driver/hardware, aren't we falsely reporting here?
> 
> There is no way to query what is supported by the hw/driver, so we just have
> to try them all and accept that not all may succeed.
Yes that right!
Failing for particular modifier not supported would be better than allowing to escape a failure.
Moreover exceptions can be added for platforms not supporting a particular modifier.
Maybe a proper way of handling the error might be required.

Thanks and Regards,
Arun R Murthy
-------------------
> As mentioned earlier it would be nice it we have a basic subtest to confirm
> that at least one of the modifier/format combos works when the driver
> advertises async flip support.
> 
> >
> > Thanks and Regards,
> > Arun R Murthy
> > --------------------
> > > +			data->modifier = data->plane->modifiers[i];
> > > +
> > > +			igt_dynamic_f("pipe-%s-%s",
> > > kmstest_pipe_name(data->pipe),
> > > +				      igt_fb_modifier_name(data->modifier)) {
> > > +				test_init_fbs(data);
> > > +				test(data);
> > > +			}
> > > +		}
> > > +
> > > +		if (!data->extended)
> > > +			break;
> > > +	}
> > > +}
> > > +
> > >  static int opt_handler(int opt, int opt_index, void *_data)  {
> > >  	data_t *data = _data;
> > > @@ -595,7 +629,7 @@ igt_main_args("e", NULL, help_str, opt_handler,
> > > &data)
> > >  		igt_describe("Wait for page flip events in between successive
> > > asynchronous flips");
> > >  		igt_subtest_with_dynamic("async-flip-with-page-flip-events")
> > > {
> > >  			data.alternate_sync_async = false;
> > > -			run_test(&data, test_async_flip);
> > > +			run_test_with_modifiers(&data, test_async_flip);
> > >  		}
> > >
> > >  		igt_describe("Alternate between sync and async flips");
> > > --
> > > 2.39.1
> >
> 
> --
> Ville Syrjälä
> Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-02-02 11:23   ` Murthy, Arun R
  2023-02-02 12:15     ` Ville Syrjälä
@ 2023-02-03 12:29     ` Ville Syrjälä
  2023-02-07  5:41       ` Murthy, Arun R
  1 sibling, 1 reply; 25+ messages in thread
From: Ville Syrjälä @ 2023-02-03 12:29 UTC (permalink / raw)
  To: Murthy, Arun R; +Cc: igt-dev

On Thu, Feb 02, 2023 at 11:23:09AM +0000, Murthy, Arun R wrote:
> > -----Original Message-----
> > From: Ville Syrjala <ville.syrjala@linux.intel.com>
> > Sent: Tuesday, January 31, 2023 5:37 PM
> > To: igt-dev@lists.freedesktop.org
> > Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> > Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> > 
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Run the basic async flip test for all modifiers reported by the plane (for the
> > XRGB8888 format). The driver may not support async flip with all modifiers
> > so we allow this to fail.
> 
> Support for adding X-tile and linear for all platforms is being added as sub-test in https://patchwork.freedesktop.org/series/103137/

I presume you mean:
https://patchwork.freedesktop.org/patch/515577/?series=107871&rev=11

That does nothing to get rid of the i915isms, nor does do
anything to test all the other modifiers (both now and in 
the future).

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-02-02 12:24       ` Murthy, Arun R
@ 2023-02-03 12:32         ` Ville Syrjälä
  2023-02-07  5:49           ` Murthy, Arun R
  0 siblings, 1 reply; 25+ messages in thread
From: Ville Syrjälä @ 2023-02-03 12:32 UTC (permalink / raw)
  To: Murthy, Arun R; +Cc: igt-dev

On Thu, Feb 02, 2023 at 12:24:32PM +0000, Murthy, Arun R wrote:
> > -----Original Message-----
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Sent: Thursday, February 2, 2023 5:46 PM
> > To: Murthy, Arun R <arun.r.murthy@intel.com>
> > Cc: igt-dev@lists.freedesktop.org
> > Subject: Re: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> > 
> > On Thu, Feb 02, 2023 at 11:23:09AM +0000, Murthy, Arun R wrote:
> > > > -----Original Message-----
> > > > From: Ville Syrjala <ville.syrjala@linux.intel.com>
> > > > Sent: Tuesday, January 31, 2023 5:37 PM
> > > > To: igt-dev@lists.freedesktop.org
> > > > Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> > > > Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> > > >
> > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > >
> > > > Run the basic async flip test for all modifiers reported by the
> > > > plane (for the
> > > > XRGB8888 format). The driver may not support async flip with all
> > > > modifiers so we allow this to fail.
> > >
> > > Support for adding X-tile and linear for all platforms is being added
> > > as sub-test in https://patchwork.freedesktop.org/series/103137/
> > >
> > > >
> > > > TODO: probably shuould add an even more basic subtest that
> > > >       makes sure the driver accepts async flips with a least
> > > >       one format/modifier combo, if it advertises async flip
> > > >       support
> > > >
> > > > Cc: Arun R Murthy <arun.r.murthy@intel.com>
> > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > ---
> > > >  tests/kms_async_flips.c | 54
> > > > +++++++++++++++++++++++++++++++++--------
> > > >  1 file changed, 44 insertions(+), 10 deletions(-)
> > > >
> > > > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> > > > 58740f6ab702..387fcff2f32c 100644
> > > > --- a/tests/kms_async_flips.c
> > > > +++ b/tests/kms_async_flips.c
> > > > @@ -53,6 +53,8 @@ typedef struct {
> > > >  	igt_output_t *output;
> > > >  	unsigned long flip_timestamp_us;
> > > >  	double flip_interval;
> > > > +	uint64_t modifier;
> > > > +	igt_plane_t *plane;
> > > >  	igt_pipe_crc_t *pipe_crc;
> > > >  	igt_crc_t ref_crc;
> > > >  	int flip_count;
> > > > @@ -61,6 +63,7 @@ typedef struct {
> > > >  	bool extended;
> > > >  	enum pipe pipe;
> > > >  	bool alternate_sync_async;
> > > > +	bool allow_fail;
> > > >  } data_t;
> > > >
> > > >  static void flip_handler(int fd_, unsigned int sequence, unsigned
> > > > int tv_sec, @@ -133,7 +136,7 @@ static void make_fb(data_t *data,
> > struct igt_fb *fb,
> > > >  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> > > >
> > > >  	igt_create_color_fb(data->drm_fd, width, height,
> > > > DRM_FORMAT_XRGB8888,
> > > > -			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> > > > +			    data->modifier, 0.0, 0.0, 0.5, fb);
> > > >
> > > >  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > > >  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0,
> > > > rec_width, height); @@ -159,24 +162,26 @@ static void
> > > > test_init(data_t
> > > > *data)
> > > >  	data->refresh_rate = mode->vrefresh;
> > > >
> > > >  	igt_output_set_pipe(data->output, data->pipe);
> > > > +
> > > > +	data->plane = igt_output_get_plane_type(data->output,
> > > > +DRM_PLANE_TYPE_PRIMARY);
> > > >  }
> > > >
> > > >  static void test_init_fbs(data_t *data)  {
> > > >  	int i;
> > > >  	uint32_t width, height;
> > > > -	igt_plane_t *plane;
> > > >  	static uint32_t prev_output_id;
> > > > +	static uint64_t prev_modifier;
> > > >  	drmModeModeInfo *mode;
> > > >
> > > >  	mode = igt_output_get_mode(data->output);
> > > >  	width = mode->hdisplay;
> > > >  	height = mode->vdisplay;
> > > >
> > > > -	plane = igt_output_get_plane_type(data->output,
> > > > DRM_PLANE_TYPE_PRIMARY);
> > > > -
> > > > -	if (prev_output_id != data->output->id) {
> > > > +	if (prev_output_id != data->output->id ||
> > > > +	    prev_modifier != data->modifier) {
> > > >  		prev_output_id = data->output->id;
> > > > +		prev_modifier = data->modifier;
> > > >
> > > >  		if (data->bufs[0].fb_id) {
> > > >  			for (i = 0; i < ARRAY_SIZE(data->bufs); i++) @@ -187,8
> > > > +192,8 @@ static void test_init_fbs(data_t *data)
> > > >  			make_fb(data, &data->bufs[i], width, height, i);
> > > >  	}
> > > >
> > > > -	igt_plane_set_fb(plane, &data->bufs[0]);
> > > > -	igt_plane_set_size(plane, width, height);
> > > > +	igt_plane_set_fb(data->plane, &data->bufs[0]);
> > > > +	igt_plane_set_size(data->plane, width, height);
> > > >
> > > >  	igt_display_commit2(&data->display, data->display.is_atomic ?
> > > > COMMIT_ATOMIC : COMMIT_LEGACY);  } @@ -243,8 +248,10 @@ static
> > void
> > > > test_async_flip(data_t *data)
> > > >  		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
> > > >  				      data->bufs[frame % 4].fb_id,
> > > >  				      flags, data);
> > > > -
> > > > -		igt_assert(ret == 0);
> > > > +		if (frame == 1 && data->allow_fail)
> > > > +			igt_skip_on(ret == -EINVAL);
> > > > +		else
> > > > +			igt_assert(ret == 0);
> > > >
> > > >  		wait_flip_event(data);
> > > >
> > > > @@ -545,6 +552,9 @@ static void run_test(data_t *data, void
> > > > (*test)(data_t
> > > > *))
> > > >  	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> > > > >output) {
> > > >  		test_init(data);
> > > >
> > > > +		data->allow_fail = false;
> > > > +		data->modifier = default_modifier(data);
> > > > +
> > > >  		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
> > > >  			test_init_fbs(data);
> > > >  			test(data);
> > > > @@ -555,6 +565,30 @@ static void run_test(data_t *data, void
> > > > (*test)(data_t *))
> > > >  	}
> > > >  }
> > > >
> > > > +static void run_test_with_modifiers(data_t *data, void
> > > > +(*test)(data_t
> > > > +*)) {
> > > > +	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> > > > >output) {
> > > > +		test_init(data);
> > > > +
> > > > +		for (int i = 0; i < data->plane->format_mod_count; i++) {
> > > > +			if (data->plane->formats[i] !=
> > > > DRM_FORMAT_XRGB8888)
> > > > +				continue;
> > > > +
> > > > +			data->allow_fail = true;
> > > If the modifier is supported by the platform and there is a failure with a
> > bug in driver/hardware, aren't we falsely reporting here?
> > 
> > There is no way to query what is supported by the hw/driver, so we just have
> > to try them all and accept that not all may succeed.
> Yes that right!
> Failing for particular modifier not supported would be better than allowing to escape a failure.

It will skip, which if fine IMO.

> Moreover exceptions can be added for platforms not supporting a particular modifier.
> Maybe a proper way of handling the error might be required.

Adding i915 speicifc platform checks into the test means
we'll have to potentially touch this test for every new
platform. Which isn't a good thing.

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-02-03 12:29     ` Ville Syrjälä
@ 2023-02-07  5:41       ` Murthy, Arun R
  0 siblings, 0 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-02-07  5:41 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: Friday, February 3, 2023 6:00 PM
> To: Murthy, Arun R <arun.r.murthy@intel.com>
> Cc: igt-dev@lists.freedesktop.org
> Subject: Re: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> 
> On Thu, Feb 02, 2023 at 11:23:09AM +0000, Murthy, Arun R wrote:
> > > -----Original Message-----
> > > From: Ville Syrjala <ville.syrjala@linux.intel.com>
> > > Sent: Tuesday, January 31, 2023 5:37 PM
> > > To: igt-dev@lists.freedesktop.org
> > > Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> > > Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> > >
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >
> > > Run the basic async flip test for all modifiers reported by the
> > > plane (for the
> > > XRGB8888 format). The driver may not support async flip with all
> > > modifiers so we allow this to fail.
> >
> > Support for adding X-tile and linear for all platforms is being added
> > as sub-test in https://patchwork.freedesktop.org/series/103137/
> 
> I presume you mean:
> https://patchwork.freedesktop.org/patch/515577/?series=107871&rev=11
> 
> That does nothing to get rid of the i915isms, nor does do anything to test all
> the other modifiers (both now and in the future).
> 
Yes it doesn't test on all other modifiers but adds support for x-tiled and linear.
Testing all supported modifiers is a good one and have no comments on that.

Thanks and Regards,
Arun R Murthy
-------------------
> --
> Ville Syrjälä
> Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-02-03 12:32         ` Ville Syrjälä
@ 2023-02-07  5:49           ` Murthy, Arun R
  2023-05-15  9:07             ` Murthy, Arun R
  0 siblings, 1 reply; 25+ messages in thread
From: Murthy, Arun R @ 2023-02-07  5:49 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: Friday, February 3, 2023 6:02 PM
> To: Murthy, Arun R <arun.r.murthy@intel.com>
> Cc: igt-dev@lists.freedesktop.org
> Subject: Re: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> 
> On Thu, Feb 02, 2023 at 12:24:32PM +0000, Murthy, Arun R wrote:
> > > -----Original Message-----
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Sent: Thursday, February 2, 2023 5:46 PM
> > > To: Murthy, Arun R <arun.r.murthy@intel.com>
> > > Cc: igt-dev@lists.freedesktop.org
> > > Subject: Re: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all
> > > modifiers
> > >
> > > On Thu, Feb 02, 2023 at 11:23:09AM +0000, Murthy, Arun R wrote:
> > > > > -----Original Message-----
> > > > > From: Ville Syrjala <ville.syrjala@linux.intel.com>
> > > > > Sent: Tuesday, January 31, 2023 5:37 PM
> > > > > To: igt-dev@lists.freedesktop.org
> > > > > Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> > > > > Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all
> > > > > modifiers
> > > > >
> > > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > >
> > > > > Run the basic async flip test for all modifiers reported by the
> > > > > plane (for the
> > > > > XRGB8888 format). The driver may not support async flip with all
> > > > > modifiers so we allow this to fail.
> > > >
> > > > Support for adding X-tile and linear for all platforms is being
> > > > added as sub-test in
> > > > https://patchwork.freedesktop.org/series/103137/
> > > >
> > > > >
> > > > > TODO: probably shuould add an even more basic subtest that
> > > > >       makes sure the driver accepts async flips with a least
> > > > >       one format/modifier combo, if it advertises async flip
> > > > >       support
> > > > >
> > > > > Cc: Arun R Murthy <arun.r.murthy@intel.com>
> > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > ---
> > > > >  tests/kms_async_flips.c | 54
> > > > > +++++++++++++++++++++++++++++++++--------
> > > > >  1 file changed, 44 insertions(+), 10 deletions(-)
> > > > >
> > > > > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> > > > > index 58740f6ab702..387fcff2f32c 100644
> > > > > --- a/tests/kms_async_flips.c
> > > > > +++ b/tests/kms_async_flips.c
> > > > > @@ -53,6 +53,8 @@ typedef struct {
> > > > >  	igt_output_t *output;
> > > > >  	unsigned long flip_timestamp_us;
> > > > >  	double flip_interval;
> > > > > +	uint64_t modifier;
> > > > > +	igt_plane_t *plane;
> > > > >  	igt_pipe_crc_t *pipe_crc;
> > > > >  	igt_crc_t ref_crc;
> > > > >  	int flip_count;
> > > > > @@ -61,6 +63,7 @@ typedef struct {
> > > > >  	bool extended;
> > > > >  	enum pipe pipe;
> > > > >  	bool alternate_sync_async;
> > > > > +	bool allow_fail;
> > > > >  } data_t;
> > > > >
> > > > >  static void flip_handler(int fd_, unsigned int sequence,
> > > > > unsigned int tv_sec, @@ -133,7 +136,7 @@ static void
> > > > > make_fb(data_t *data,
> > > struct igt_fb *fb,
> > > > >  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> > > > >
> > > > >  	igt_create_color_fb(data->drm_fd, width, height,
> > > > > DRM_FORMAT_XRGB8888,
> > > > > -			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> > > > > +			    data->modifier, 0.0, 0.0, 0.5, fb);
> > > > >
> > > > >  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > > > >  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0,
> > > > > rec_width, height); @@ -159,24 +162,26 @@ static void
> > > > > test_init(data_t
> > > > > *data)
> > > > >  	data->refresh_rate = mode->vrefresh;
> > > > >
> > > > >  	igt_output_set_pipe(data->output, data->pipe);
> > > > > +
> > > > > +	data->plane = igt_output_get_plane_type(data->output,
> > > > > +DRM_PLANE_TYPE_PRIMARY);
> > > > >  }
> > > > >
> > > > >  static void test_init_fbs(data_t *data)  {
> > > > >  	int i;
> > > > >  	uint32_t width, height;
> > > > > -	igt_plane_t *plane;
> > > > >  	static uint32_t prev_output_id;
> > > > > +	static uint64_t prev_modifier;
> > > > >  	drmModeModeInfo *mode;
> > > > >
> > > > >  	mode = igt_output_get_mode(data->output);
> > > > >  	width = mode->hdisplay;
> > > > >  	height = mode->vdisplay;
> > > > >
> > > > > -	plane = igt_output_get_plane_type(data->output,
> > > > > DRM_PLANE_TYPE_PRIMARY);
> > > > > -
> > > > > -	if (prev_output_id != data->output->id) {
> > > > > +	if (prev_output_id != data->output->id ||
> > > > > +	    prev_modifier != data->modifier) {
> > > > >  		prev_output_id = data->output->id;
> > > > > +		prev_modifier = data->modifier;
> > > > >
> > > > >  		if (data->bufs[0].fb_id) {
> > > > >  			for (i = 0; i < ARRAY_SIZE(data->bufs); i++) @@ -187,8
> > > > > +192,8 @@ static void test_init_fbs(data_t *data)
> > > > >  			make_fb(data, &data->bufs[i], width, height, i);
> > > > >  	}
> > > > >
> > > > > -	igt_plane_set_fb(plane, &data->bufs[0]);
> > > > > -	igt_plane_set_size(plane, width, height);
> > > > > +	igt_plane_set_fb(data->plane, &data->bufs[0]);
> > > > > +	igt_plane_set_size(data->plane, width, height);
> > > > >
> > > > >  	igt_display_commit2(&data->display, data->display.is_atomic ?
> > > > > COMMIT_ATOMIC : COMMIT_LEGACY);  } @@ -243,8 +248,10 @@
> static
> > > void
> > > > > test_async_flip(data_t *data)
> > > > >  		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
> > > > >  				      data->bufs[frame % 4].fb_id,
> > > > >  				      flags, data);
> > > > > -
> > > > > -		igt_assert(ret == 0);
> > > > > +		if (frame == 1 && data->allow_fail)
> > > > > +			igt_skip_on(ret == -EINVAL);
> > > > > +		else
> > > > > +			igt_assert(ret == 0);
> > > > >
> > > > >  		wait_flip_event(data);
> > > > >
> > > > > @@ -545,6 +552,9 @@ static void run_test(data_t *data, void
> > > > > (*test)(data_t
> > > > > *))
> > > > >  	for_each_pipe_with_valid_output(&data->display, data->pipe,
> > > > > data-
> > > > > >output) {
> > > > >  		test_init(data);
> > > > >
> > > > > +		data->allow_fail = false;
> > > > > +		data->modifier = default_modifier(data);
> > > > > +
> > > > >  		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
> > > > >  			test_init_fbs(data);
> > > > >  			test(data);
> > > > > @@ -555,6 +565,30 @@ static void run_test(data_t *data, void
> > > > > (*test)(data_t *))
> > > > >  	}
> > > > >  }
> > > > >
> > > > > +static void run_test_with_modifiers(data_t *data, void
> > > > > +(*test)(data_t
> > > > > +*)) {
> > > > > +	for_each_pipe_with_valid_output(&data->display, data-
> >pipe,
> > > > > +data-
> > > > > >output) {
> > > > > +		test_init(data);
> > > > > +
> > > > > +		for (int i = 0; i < data->plane->format_mod_count;
> i++) {
> > > > > +			if (data->plane->formats[i] !=
> > > > > DRM_FORMAT_XRGB8888)
> > > > > +				continue;
> > > > > +
> > > > > +			data->allow_fail = true;
> > > > If the modifier is supported by the platform and there is a
> > > > failure with a
> > > bug in driver/hardware, aren't we falsely reporting here?
> > >
> > > There is no way to query what is supported by the hw/driver, so we
> > > just have to try them all and accept that not all may succeed.
> > Yes that right!
> > Failing for particular modifier not supported would be better than allowing
> to escape a failure.
> 
> It will skip, which if fine IMO.
I feel its better to add platform related stuff in config so as to include a particular modifier(Linear) rather than accepting that all may not succeed. Just because a real failure may also loose traction with this.
I will leave it for others to comment on this.

Thanks and Regards,
Arun R Murthy
-------------------
> 
> > Moreover exceptions can be added for platforms not supporting a
> particular modifier.
> > Maybe a proper way of handling the error might be required.
> 
> Adding i915 speicifc platform checks into the test means we'll have to
> potentially touch this test for every new platform. Which isn't a good thing.
> 
> --
> Ville Syrjälä
> Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/6] tests/kms_async_flips: Render the bars full height
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_async_flips: Render the bars full height Ville Syrjala
@ 2023-02-09 14:11   ` Karthik B S
  0 siblings, 0 replies; 25+ messages in thread
From: Karthik B S @ 2023-02-09 14:11 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev; +Cc: Arun R Murthy

LTGM.

On 1/31/2023 5:36 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Make the colored bars full height so that we can actually see
> the async flip activity on every scanline, as opposed to just
> being able to see it in the middle of the screen.
>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/kms_async_flips.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 89e431ac32e2..55be0bd874ad 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -133,7 +133,7 @@ static void make_fb(data_t *data, struct igt_fb *fb,
>   	}
>   
>   	cr = igt_get_cairo_ctx(data->drm_fd, fb);
> -	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, height / 4, rec_width, height / 2);
> +	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0, rec_width, height);
>   	igt_put_cairo_ctx(cr);
>   }
>   

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
  2023-02-07  5:49           ` Murthy, Arun R
@ 2023-05-15  9:07             ` Murthy, Arun R
  0 siblings, 0 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-05-15  9:07 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

> -----Original Message-----
> From: Murthy, Arun R
> Sent: Tuesday, February 7, 2023 11:19 AM
> To: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: igt-dev@lists.freedesktop.org
> Subject: RE: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers
> 
> > -----Original Message-----
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Sent: Friday, February 3, 2023 6:02 PM
> > To: Murthy, Arun R <arun.r.murthy@intel.com>
> > Cc: igt-dev@lists.freedesktop.org
> > Subject: Re: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all
> > modifiers
> >
> > On Thu, Feb 02, 2023 at 12:24:32PM +0000, Murthy, Arun R wrote:
> > > > -----Original Message-----
> > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > Sent: Thursday, February 2, 2023 5:46 PM
> > > > To: Murthy, Arun R <arun.r.murthy@intel.com>
> > > > Cc: igt-dev@lists.freedesktop.org
> > > > Subject: Re: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all
> > > > modifiers
> > > >
> > > > On Thu, Feb 02, 2023 at 11:23:09AM +0000, Murthy, Arun R wrote:
> > > > > > -----Original Message-----
> > > > > > From: Ville Syrjala <ville.syrjala@linux.intel.com>
> > > > > > Sent: Tuesday, January 31, 2023 5:37 PM
> > > > > > To: igt-dev@lists.freedesktop.org
> > > > > > Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> > > > > > Subject: [PATCH i-g-t 6/6] tests/kms_async_flips: Test all
> > > > > > modifiers
> > > > > >
> > > > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > >
> > > > > > Run the basic async flip test for all modifiers reported by
> > > > > > the plane (for the
> > > > > > XRGB8888 format). The driver may not support async flip with
> > > > > > all modifiers so we allow this to fail.
> > > > >
> > > > > Support for adding X-tile and linear for all platforms is being
> > > > > added as sub-test in
> > > > > https://patchwork.freedesktop.org/series/103137/
> > > > >
> > > > > >
> > > > > > TODO: probably shuould add an even more basic subtest that
> > > > > >       makes sure the driver accepts async flips with a least
> > > > > >       one format/modifier combo, if it advertises async flip
> > > > > >       support
> > > > > >
> > > > > > Cc: Arun R Murthy <arun.r.murthy@intel.com>
> > > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > > ---
> > > > > >  tests/kms_async_flips.c | 54
> > > > > > +++++++++++++++++++++++++++++++++--------
> > > > > >  1 file changed, 44 insertions(+), 10 deletions(-)
> > > > > >
> > > > > > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> > > > > > index 58740f6ab702..387fcff2f32c 100644
> > > > > > --- a/tests/kms_async_flips.c
> > > > > > +++ b/tests/kms_async_flips.c
> > > > > > @@ -53,6 +53,8 @@ typedef struct {
> > > > > >  	igt_output_t *output;
> > > > > >  	unsigned long flip_timestamp_us;
> > > > > >  	double flip_interval;
> > > > > > +	uint64_t modifier;
> > > > > > +	igt_plane_t *plane;
> > > > > >  	igt_pipe_crc_t *pipe_crc;
> > > > > >  	igt_crc_t ref_crc;
> > > > > >  	int flip_count;
> > > > > > @@ -61,6 +63,7 @@ typedef struct {
> > > > > >  	bool extended;
> > > > > >  	enum pipe pipe;
> > > > > >  	bool alternate_sync_async;
> > > > > > +	bool allow_fail;
> > > > > >  } data_t;
> > > > > >
> > > > > >  static void flip_handler(int fd_, unsigned int sequence,
> > > > > > unsigned int tv_sec, @@ -133,7 +136,7 @@ static void
> > > > > > make_fb(data_t *data,
> > > > struct igt_fb *fb,
> > > > > >  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> > > > > >
> > > > > >  	igt_create_color_fb(data->drm_fd, width, height,
> > > > > > DRM_FORMAT_XRGB8888,
> > > > > > -			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> > > > > > +			    data->modifier, 0.0, 0.0, 0.5, fb);
> > > > > >
> > > > > >  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > > > > >  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index,
> > > > > > 0, rec_width, height); @@ -159,24 +162,26 @@ static void
> > > > > > test_init(data_t
> > > > > > *data)
> > > > > >  	data->refresh_rate = mode->vrefresh;
> > > > > >
> > > > > >  	igt_output_set_pipe(data->output, data->pipe);
> > > > > > +
> > > > > > +	data->plane = igt_output_get_plane_type(data->output,
> > > > > > +DRM_PLANE_TYPE_PRIMARY);
> > > > > >  }
> > > > > >
> > > > > >  static void test_init_fbs(data_t *data)  {
> > > > > >  	int i;
> > > > > >  	uint32_t width, height;
> > > > > > -	igt_plane_t *plane;
> > > > > >  	static uint32_t prev_output_id;
> > > > > > +	static uint64_t prev_modifier;
> > > > > >  	drmModeModeInfo *mode;
> > > > > >
> > > > > >  	mode = igt_output_get_mode(data->output);
> > > > > >  	width = mode->hdisplay;
> > > > > >  	height = mode->vdisplay;
> > > > > >
> > > > > > -	plane = igt_output_get_plane_type(data->output,
> > > > > > DRM_PLANE_TYPE_PRIMARY);
> > > > > > -
> > > > > > -	if (prev_output_id != data->output->id) {
> > > > > > +	if (prev_output_id != data->output->id ||
> > > > > > +	    prev_modifier != data->modifier) {
> > > > > >  		prev_output_id = data->output->id;
> > > > > > +		prev_modifier = data->modifier;
> > > > > >
> > > > > >  		if (data->bufs[0].fb_id) {
> > > > > >  			for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
> @@ -187,8
> > > > > > +192,8 @@ static void test_init_fbs(data_t *data)
> > > > > >  			make_fb(data, &data->bufs[i], width, height,
> i);
> > > > > >  	}
> > > > > >
> > > > > > -	igt_plane_set_fb(plane, &data->bufs[0]);
> > > > > > -	igt_plane_set_size(plane, width, height);
> > > > > > +	igt_plane_set_fb(data->plane, &data->bufs[0]);
> > > > > > +	igt_plane_set_size(data->plane, width, height);
> > > > > >
> > > > > >  	igt_display_commit2(&data->display, data->display.is_atomic
> ?
> > > > > > COMMIT_ATOMIC : COMMIT_LEGACY);  } @@ -243,8 +248,10 @@
> > static
> > > > void
> > > > > > test_async_flip(data_t *data)
> > > > > >  		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
> > > > > >  				      data->bufs[frame % 4].fb_id,
> > > > > >  				      flags, data);
> > > > > > -
> > > > > > -		igt_assert(ret == 0);
> > > > > > +		if (frame == 1 && data->allow_fail)
> > > > > > +			igt_skip_on(ret == -EINVAL);
> > > > > > +		else
> > > > > > +			igt_assert(ret == 0);
> > > > > >
> > > > > >  		wait_flip_event(data);
> > > > > >
> > > > > > @@ -545,6 +552,9 @@ static void run_test(data_t *data, void
> > > > > > (*test)(data_t
> > > > > > *))
> > > > > >  	for_each_pipe_with_valid_output(&data->display, data-
> >pipe,
> > > > > > data-
> > > > > > >output) {
> > > > > >  		test_init(data);
> > > > > >
> > > > > > +		data->allow_fail = false;
> > > > > > +		data->modifier = default_modifier(data);
> > > > > > +
> > > > > >  		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data-
> >pipe)) {
> > > > > >  			test_init_fbs(data);
> > > > > >  			test(data);
> > > > > > @@ -555,6 +565,30 @@ static void run_test(data_t *data, void
> > > > > > (*test)(data_t *))
> > > > > >  	}
> > > > > >  }
> > > > > >
> > > > > > +static void run_test_with_modifiers(data_t *data, void
> > > > > > +(*test)(data_t
> > > > > > +*)) {
> > > > > > +	for_each_pipe_with_valid_output(&data->display, data-
> > >pipe,
> > > > > > +data-
> > > > > > >output) {
> > > > > > +		test_init(data);
> > > > > > +
> > > > > > +		for (int i = 0; i < data->plane->format_mod_count;
> > i++) {
> > > > > > +			if (data->plane->formats[i] !=
> > > > > > DRM_FORMAT_XRGB8888)
> > > > > > +				continue;
> > > > > > +
> > > > > > +			data->allow_fail = true;
> > > > > If the modifier is supported by the platform and there is a
> > > > > failure with a
> > > > bug in driver/hardware, aren't we falsely reporting here?
> > > >
> > > > There is no way to query what is supported by the hw/driver, so we
> > > > just have to try them all and accept that not all may succeed.
> > > Yes that right!
> > > Failing for particular modifier not supported would be better than
> > > allowing
> > to escape a failure.
> >
> > It will skip, which if fine IMO.
> I feel its better to add platform related stuff in config so as to include a
> particular modifier(Linear) rather than accepting that all may not succeed.
> Just because a real failure may also loose traction with this.
> I will leave it for others to comment on this.
> 
> Thanks and Regards,
> Arun R Murthy
> -------------------
Will take this change in a separate patch.

Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>

Thanks and Regards,
Arun R Murthy
--------------------
> >
> > > Moreover exceptions can be added for platforms not supporting a
> > particular modifier.
> > > Maybe a proper way of handling the error might be required.
> >
> > Adding i915 speicifc platform checks into the test means we'll have to
> > potentially touch this test for every new platform. Which isn't a good thing.
> >
> > --
> > Ville Syrjälä
> > Intel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 5/6] tests/kms_async_flips: Split test_init()
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 5/6] tests/kms_async_flips: Split test_init() Ville Syrjala
@ 2023-05-15  9:10   ` Murthy, Arun R
  0 siblings, 0 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-05-15  9:10 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> -----Original Message-----
> From: Ville Syrjala <ville.syrjala@linux.intel.com>
> Sent: Tuesday, January 31, 2023 5:37 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> Subject: [PATCH i-g-t 5/6] tests/kms_async_flips: Split test_init()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Split the test_init() into two parts: one sets up the mode, the other the
> framebuffers. Will be useful for testing different modifiers.
> 
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---	

Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>

Thanks and Regards,
Arun R Murthy
--------------------
>  tests/kms_async_flips.c | 36 +++++++++++++++++++-----------------
>  1 file changed, 19 insertions(+), 17 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> 54611f66350d..58740f6ab702 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -148,23 +148,31 @@ static void require_monotonic_timestamp(int fd)
> 
>  static void test_init(data_t *data)
>  {
> -	int i;
> -	uint32_t width, height;
> -	igt_plane_t *plane;
> -	static uint32_t prev_output_id;
>  	drmModeModeInfo *mode;
> 
>  	igt_display_reset(&data->display);
>  	igt_display_commit(&data->display);
> 
>  	mode = igt_output_get_mode(data->output);
> -	width = mode->hdisplay;
> -	height = mode->vdisplay;
> 
>  	data->crtc_id = data->display.pipes[data->pipe].crtc_id;
>  	data->refresh_rate = mode->vrefresh;
> 
>  	igt_output_set_pipe(data->output, data->pipe);
> +}
> +
> +static void test_init_fbs(data_t *data) {
> +	int i;
> +	uint32_t width, height;
> +	igt_plane_t *plane;
> +	static uint32_t prev_output_id;
> +	drmModeModeInfo *mode;
> +
> +	mode = igt_output_get_mode(data->output);
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
> +
>  	plane = igt_output_get_plane_type(data->output,
> DRM_PLANE_TYPE_PRIMARY);
> 
>  	if (prev_output_id != data->output->id) { @@ -191,8 +199,6 @@
> static void test_async_flip(data_t *data)
>  	long long int fps;
>  	struct timeval start, end, diff;
> 
> -	test_init(data);
> -
>  	gettimeofday(&start, NULL);
>  	frame = 1;
>  	do {
> @@ -287,8 +293,6 @@ static void test_timestamp(data_t *data)
>  	unsigned int seq, seq1;
>  	int ret;
> 
> -	test_init(data);
> -
>  	/*
>  	 * In older platforms(<= gen10), async address update bit is double
> buffered.
>  	 * So flip timestamp can be verified only from the second flip.
> @@ -346,8 +350,6 @@ static void test_cursor(data_t *data)
>  	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH,
> &width));
>  	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH,
> &height));
> 
> -	test_init(data);
> -
>  	igt_create_color_fb(data->drm_fd, width, height,
> DRM_FORMAT_ARGB8888,
>  			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1.,
> &cursor_fb);
> 
> @@ -388,8 +390,6 @@ static void test_invalid(data_t *data)
>  	width = mode->hdisplay;
>  	height = mode->vdisplay;
> 
> -	test_init(data);
> -
>  	igt_create_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
>  		      I915_FORMAT_MOD_Y_TILED, &fb);
> 
> @@ -493,8 +493,6 @@ static void test_crc(data_t *data)
>  	data->frame_count = 0;
>  	data->flip_pending = false;
> 
> -	test_init(data);
> -
>  	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
>  	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data-
> >bufs[frame].height, 1.0, 0.0, 0.0);
> 
> @@ -545,8 +543,12 @@ static void test_crc(data_t *data)  static void
> run_test(data_t *data, void (*test)(data_t *))  {
>  	for_each_pipe_with_valid_output(&data->display, data->pipe, data-
> >output) {
> -		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe))
> +		test_init(data);
> +
> +		igt_dynamic_f("pipe-%s", kmstest_pipe_name(data->pipe)) {
> +			test_init_fbs(data);
>  			test(data);
> +		}
> 
>  		if (!data->extended)
>  			break;
> --
> 2.39.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation
  2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation Ville Syrjala
  2023-02-02 11:24   ` Murthy, Arun R
@ 2023-05-15  9:13   ` Murthy, Arun R
  1 sibling, 0 replies; 25+ messages in thread
From: Murthy, Arun R @ 2023-05-15  9:13 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev



> -----Original Message-----
> From: Ville Syrjala <ville.syrjala@linux.intel.com>
> Sent: Tuesday, January 31, 2023 5:37 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Murthy, Arun R <arun.r.murthy@intel.com>
> Subject: [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb
> creation
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> No idea why the test wants to create the fb differently between i915 vs.
> others. Unify it.
> 
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>

Thanks and Regards,
Arun R Murthy
-------------------
>  tests/kms_async_flips.c | 19 +++++++++++--------
>  1 file changed, 11 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> 55be0bd874ad..f8c97e029c59 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -115,6 +115,15 @@ static void wait_flip_event(data_t *data)
>  	}
>  }
> 
> +static uint64_t default_modifier(data_t *data) {
> +	if (igt_display_has_format_mod(&data->display,
> DRM_FORMAT_XRGB8888,
> +				       I915_FORMAT_MOD_X_TILED))
> +		return I915_FORMAT_MOD_X_TILED;
> +	else
> +		return DRM_FORMAT_MOD_LINEAR;
> +}
> +
>  static void make_fb(data_t *data, struct igt_fb *fb,
>  		    uint32_t width, uint32_t height, int index)  { @@ -123,14
> +132,8 @@ static void make_fb(data_t *data, struct igt_fb *fb,
> 
>  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
> 
> -	if (is_i915_device(data->drm_fd)) {
> -		igt_create_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> -			      I915_FORMAT_MOD_X_TILED, fb);
> -		igt_draw_fill_fb(data->drm_fd, fb, 0x88);
> -	} else {
> -		igt_create_color_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> -				    DRM_FORMAT_MOD_LINEAR, 0.0, 0.0, 0.5,
> fb);
> -	}
> +	igt_create_color_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> +			    default_modifier(data), 0.0, 0.0, 0.5, fb);
> 
>  	cr = igt_get_cairo_ctx(data->drm_fd, fb);
>  	igt_paint_color_rand(cr, rec_width * 2 + rec_width * index, 0,
> rec_width, height);
> --
> 2.39.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2023-05-15  9:13 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-31 12:06 [igt-dev] [PATCH i-g-t 0/6] tests/kms_async_flips: Test format modifiers Ville Syrjala
2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 1/6] tests/kms_async_flips: Add missing igt_put_cairo_ctx() Ville Syrjala
2023-02-02 11:03   ` Murthy, Arun R
2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_async_flips: Render the bars full height Ville Syrjala
2023-02-09 14:11   ` Karthik B S
2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 3/6] tests/kms_async_flips: Ger rid of i915 specific fb creation Ville Syrjala
2023-02-02 11:24   ` Murthy, Arun R
2023-05-15  9:13   ` Murthy, Arun R
2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 4/6] tests/kms_async_flips: Run the test only once per pipe Ville Syrjala
2023-01-31 12:21   ` Modem, Bhanuprakash
2023-02-02  9:27     ` Ville Syrjälä
2023-02-02 11:25   ` Murthy, Arun R
2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 5/6] tests/kms_async_flips: Split test_init() Ville Syrjala
2023-05-15  9:10   ` Murthy, Arun R
2023-01-31 12:06 ` [igt-dev] [PATCH i-g-t 6/6] tests/kms_async_flips: Test all modifiers Ville Syrjala
2023-02-02 11:23   ` Murthy, Arun R
2023-02-02 12:15     ` Ville Syrjälä
2023-02-02 12:24       ` Murthy, Arun R
2023-02-03 12:32         ` Ville Syrjälä
2023-02-07  5:49           ` Murthy, Arun R
2023-05-15  9:07             ` Murthy, Arun R
2023-02-03 12:29     ` Ville Syrjälä
2023-02-07  5:41       ` Murthy, Arun R
2023-01-31 12:38 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Test format modifiers Patchwork
2023-01-31 16:28 ` [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.