public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2 0/2] PCU messaging test.
@ 2019-08-05  6:54 Karthik B S
  2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: " Karthik B S
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Karthik B S @ 2019-08-05  6:54 UTC (permalink / raw)
  To: igt-dev; +Cc: lucas.demarchi

Adding a PCU messaging subtest in kms_plane_multiple executable.
The test gives flips at highest mode with bandwidth requirement varying
between lowest and highest, thereby stress testing PCU messaging.

Karthik B S (2):
  tests/kms_plane_multiple: PCU messaging test
  tests/kms_plane_multiple: Set highest mode for PCU messaging test.

 tests/kms_plane_multiple.c | 202 +++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 184 insertions(+), 18 deletions(-)

-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: PCU messaging test
  2019-08-05  6:54 [igt-dev] [PATCH i-g-t v2 0/2] PCU messaging test Karthik B S
@ 2019-08-05  6:54 ` Karthik B S
  2019-09-25 13:55   ` Ville Syrjälä
  2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_plane_multiple: Set highest mode for " Karthik B S
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Karthik B S @ 2019-08-05  6:54 UTC (permalink / raw)
  To: igt-dev; +Cc: lucas.demarchi

Add a subtest that gives flips which alternate between least bandwidth
requirement and highest bandwidth requirement.

v2: Make the test more generic. (Ville)
    Rebase.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Karthik B S <karthik.b.s@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_multiple.c | 151 +++++++++++++++++++++++++++++++++++++++------
 1 file changed, 133 insertions(+), 18 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 81ed45d..bed337c 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -34,6 +34,11 @@ IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes.");
 
 #define SIZE_PLANE      256
 #define SIZE_CURSOR     128
+#define SIZE_PLANE_LOW	 10
+#define SIZE_PANE	  5
+#define SMALL_SCREEN	  0
+#define FULL_SCREEN	  1
+#define TEST_BANDWIDTH	  1
 #define LOOP_FOREVER     -1
 
 typedef struct {
@@ -48,9 +53,17 @@ typedef struct {
 	igt_crc_t ref_crc;
 	igt_pipe_crc_t *pipe_crc;
 	igt_plane_t **plane;
+	unsigned int flag;
 	struct igt_fb *fb;
 } data_t;
 
+enum bandwidth {
+	BW_PRIMARY_LOW,
+	BW_PRIMARY_HIGH,
+	BW_PRIMARY_LOW2,
+	BW_HIGH,
+	BW_INVALID,
+};
 /* Command line parameters. */
 struct {
 	int iterations;
@@ -97,7 +110,7 @@ static void test_fini(data_t *data, igt_output_t *output, int n_planes)
 
 static void
 get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
-	      color_t *color, uint64_t tiling)
+	      color_t *color, uint64_t tiling, int BW)
 {
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
@@ -110,7 +123,9 @@ get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
 
 	mode = igt_output_get_mode(output);
 
-	igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+	igt_create_color_fb(data->drm_fd,
+			    BW ? mode->hdisplay : SIZE_PLANE_LOW,
+			    BW ? mode->vdisplay : SIZE_PLANE_LOW,
 			    DRM_FORMAT_XRGB8888,
 			    LOCAL_DRM_FORMAT_MOD_NONE,
 			    color->red, color->green, color->blue,
@@ -270,6 +285,76 @@ prepare_planes(data_t *data, enum pipe pipe_id, color_t *color,
 	free((void*)suffle);
 }
 
+static void
+prepare_planes2(data_t *data, enum pipe pipe_id, color_t *color,
+	       uint64_t tiling, int max_planes, igt_output_t *output,
+	       enum bandwidth bandwidth)
+{
+	drmModeModeInfo *mode;
+	int hsize, vsize;
+	int i;
+	cairo_t *cr;
+
+	igt_output_set_pipe(output, pipe_id);
+	mode = igt_output_get_mode(output);
+
+	switch (bandwidth) {
+	case BW_PRIMARY_LOW:
+	case BW_PRIMARY_LOW2:
+		hsize = SIZE_PLANE_LOW;
+		vsize = SIZE_PLANE_LOW;
+		break;
+	case BW_PRIMARY_HIGH:
+	case BW_HIGH:
+		hsize = mode->hdisplay;
+		vsize = mode->vdisplay;
+		break;
+	default:
+		igt_warn("Invalid BW\n");
+	}
+
+	for (i = 0; i < max_planes; i++) {
+		igt_plane_t *plane = igt_output_get_plane(output, i);
+		uint32_t format = DRM_FORMAT_XRGB8888;
+
+		if (plane->type == DRM_PLANE_TYPE_CURSOR) {
+			format = DRM_FORMAT_ARGB8888;
+			tiling = LOCAL_DRM_FORMAT_MOD_NONE;
+			hsize = SIZE_CURSOR;
+			vsize = SIZE_CURSOR;
+		}
+
+		data->plane[i] = plane;
+		igt_create_color_fb(data->drm_fd,
+				    hsize, vsize,
+				    format, tiling,
+				    color->red, color->green,
+				    color->blue,
+				    &data->fb[i]);
+		igt_plane_set_position(data->plane[i], 0, 0);
+
+		hsize -= SIZE_PANE;
+
+		/* Create black color holes in all planes other than the cursor
+		 * and the topmost plane, so that all planes put together
+		 * produces a solid blue screen that matches with
+		 * the reference CRC.
+		 */
+		if (i < (max_planes - 2) && bandwidth == BW_HIGH) {
+			cr = igt_get_cairo_ctx(data->drm_fd, &data->fb[i]);
+			igt_paint_color(cr, 0, 0, hsize, vsize, 0.0, 0.0, 0.0);
+			igt_put_cairo_ctx(data->drm_fd, &data->fb[i], cr);
+		}
+
+		igt_plane_set_fb(data->plane[i], &data->fb[i]);
+
+		if (bandwidth != BW_HIGH &&
+		    plane->type == DRM_PLANE_TYPE_PRIMARY)
+			break;
+
+	}
+}
+
 /*
  * Multiple plane position test.
  *   - We start by grabbing a reference CRC of a full blue fb being scanned
@@ -306,8 +391,6 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 	test_init(data, pipe, n_planes);
 
-	get_reference_crc(data, output, pipe, &blue, tiling);
-
 	/* Find out how many planes are allowed simultaneously */
 	do {
 		c++;
@@ -325,27 +408,51 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 		c--;
 
 	igt_info("Testing connector %s using pipe %s with %d planes %s with seed %d\n",
-		 igt_output_name(output), kmstest_pipe_name(pipe), c,
-		 info, opt.seed);
+			igt_output_name(output), kmstest_pipe_name(pipe), c,
+			info, opt.seed);
+
+	if (data->flag == TEST_BANDWIDTH) {
+		for (i = BW_PRIMARY_LOW; i < BW_INVALID; i++) {
+			if (i == BW_PRIMARY_LOW || i == BW_PRIMARY_LOW2)
+				get_reference_crc(data, output, pipe, &blue,
+						tiling, SMALL_SCREEN);
+			else
+				get_reference_crc(data, output, pipe, &blue,
+						  tiling, FULL_SCREEN);
+
+			prepare_planes2(data, pipe, &blue, tiling,
+					c, output, i);
+			igt_display_commit2(&data->display, COMMIT_ATOMIC);
+
+			igt_pipe_crc_get_current(data->display.drm_fd,
+					data->pipe_crc, &crc);
+
+			igt_assert_crc_equal(&data->ref_crc, &crc);
+		}
+	} else {
+		i = 0;
+		get_reference_crc(data, output, pipe, &blue,
+				  tiling, FULL_SCREEN);
 
-	i = 0;
-	while (i < iterations || loop_forever) {
-		/* randomize planes and set up the holes */
-		prepare_planes(data, pipe, &blue, tiling, c, output);
+		while (i < iterations || loop_forever) {
+			prepare_planes(data, pipe, &blue, tiling,
+				       c, output);
 
-		igt_display_commit2(&data->display, COMMIT_ATOMIC);
+			igt_display_commit2(&data->display, COMMIT_ATOMIC);
 
-		igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc, &crc);
+			igt_pipe_crc_get_current(data->display.drm_fd,
+						 data->pipe_crc, &crc);
 
-		for_each_plane_on_pipe(&data->display, pipe, plane)
-			igt_plane_set_fb(plane, NULL);
+			for_each_plane_on_pipe(&data->display, pipe, plane)
+				igt_plane_set_fb(plane, NULL);
 
-		for (int x = 0; x < c; x++)
-			igt_remove_fb(data->drm_fd, &data->fb[x]);
+			for (int x = 0; x < c; x++)
+				igt_remove_fb(data->drm_fd, &data->fb[x]);
 
-		igt_assert_crc_equal(&data->ref_crc, &crc);
+			igt_assert_crc_equal(&data->ref_crc, &crc);
 
-		i++;
+			i++;
+		}
 	}
 
 	test_fini(data, output, n_planes);
@@ -377,6 +484,14 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
 		igt_require(data->display.pipes[pipe].n_planes > 0);
 	}
 
+
+	data->flag = TEST_BANDWIDTH;
+
+	igt_subtest_f("atomic-pipe-%s-tiling-none_bw", kmstest_pipe_name(pipe))
+		test_plane_position(data, pipe, LOCAL_DRM_FORMAT_MOD_NONE);
+
+	data->flag = 0;
+
 	igt_subtest_f("atomic-pipe-%s-tiling-x", kmstest_pipe_name(pipe))
 		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_X_TILED);
 
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_plane_multiple: Set highest mode for PCU messaging test.
  2019-08-05  6:54 [igt-dev] [PATCH i-g-t v2 0/2] PCU messaging test Karthik B S
  2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: " Karthik B S
@ 2019-08-05  6:54 ` Karthik B S
  2019-08-05  8:57 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
  2019-08-05 11:07 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Karthik B S @ 2019-08-05  6:54 UTC (permalink / raw)
  To: igt-dev; +Cc: lucas.demarchi

Set the highest mode allows for the stress test for PCU messaging, as
the BW requirement is the highest in this case.

v2: Rebase.

Signed-off-by: Karthik B S <karthik.b.s@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_multiple.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index bed337c..fcf66ac 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -355,6 +355,48 @@ prepare_planes2(data_t *data, enum pipe pipe_id, color_t *color,
 	}
 }
 
+static drmModeModeInfo
+get_highest_mode(int drmfd, int connector_id)
+{
+	drmModeRes *mode_resources = drmModeGetResources(drmfd);
+	drmModeModeInfo highestmode;
+	drmModeConnector *connector;
+	int i;
+	bool highestmodefound = false;
+
+	igt_require(mode_resources);
+
+	for (i = 0; i < mode_resources->count_connectors; i++) {
+		connector = drmModeGetConnectorCurrent(drmfd,
+					mode_resources->connectors[i]);
+		if (!connector) {
+			igt_warn("could not get connector %i: %s\n",
+				 mode_resources->connectors[i],
+				 strerror(errno));
+			continue;
+		}
+
+		if (connector->connector_id != connector_id)
+			continue;
+
+		if (!connector->count_modes)
+			continue;
+
+		/* First mode has the highest pixel rate */
+		highestmodefound = true;
+		highestmode = connector->modes[0];
+		break;
+	}
+
+	if (connector)
+		drmModeFreeConnector(connector);
+
+	drmModeFreeResources(mode_resources);
+
+	igt_require(highestmodefound);
+	return highestmode;
+}
+
 /*
  * Multiple plane position test.
  *   - We start by grabbing a reference CRC of a full blue fb being scanned
@@ -371,6 +413,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 				igt_output_t *output, int n_planes,
 				uint64_t tiling)
 {
+	drmModeModeInfo mode_highres;
 	color_t blue  = { 0.0f, 0.0f, 1.0f };
 	igt_crc_t crc;
 	igt_plane_t *plane;
@@ -412,6 +455,11 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 			info, opt.seed);
 
 	if (data->flag == TEST_BANDWIDTH) {
+		mode_highres = get_highest_mode(data->drm_fd, output->id);
+
+		/* switch to highest resolution */
+		igt_output_override_mode(output, &mode_highres);
+
 		for (i = BW_PRIMARY_LOW; i < BW_INVALID; i++) {
 			if (i == BW_PRIMARY_LOW || i == BW_PRIMARY_LOW2)
 				get_reference_crc(data, output, pipe, &blue,
@@ -429,6 +477,9 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 			igt_assert_crc_equal(&data->ref_crc, &crc);
 		}
+
+		/* switch back to default mode */
+		igt_output_override_mode(output, NULL);
 	} else {
 		i = 0;
 		get_reference_crc(data, output, pipe, &blue,
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for PCU messaging test.
  2019-08-05  6:54 [igt-dev] [PATCH i-g-t v2 0/2] PCU messaging test Karthik B S
  2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: " Karthik B S
  2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_plane_multiple: Set highest mode for " Karthik B S
@ 2019-08-05  8:57 ` Patchwork
  2019-08-05 11:07 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2019-08-05  8:57 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev

== Series Details ==

Series: PCU messaging test.
URL   : https://patchwork.freedesktop.org/series/64678/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6626 -> IGTPW_3317
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/64678/revisions/1/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_basic@basic-all:
    - fi-icl-u3:          [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-icl-u3/igt@gem_exec_basic@basic-all.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-icl-u3/igt@gem_exec_basic@basic-all.html

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-blb-e6850:       [PASS][3] -> [INCOMPLETE][4] ([fdo#107718])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@i915_selftest@live_hangcheck:
    - fi-icl-u3:          [PASS][5] -> [INCOMPLETE][6] ([fdo#107713] / [fdo#108569])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
    - fi-icl-dsi:         [PASS][7] -> [INCOMPLETE][8] ([fdo#107713] / [fdo#108569])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html

  * igt@kms_busy@basic-flip-a:
    - fi-kbl-7567u:       [PASS][9] -> [SKIP][10] ([fdo#109271] / [fdo#109278]) +2 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html

  * igt@kms_busy@basic-flip-c:
    - fi-kbl-7500u:       [PASS][11] -> [SKIP][12] ([fdo#109271] / [fdo#109278]) +2 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-kbl-7500u/igt@kms_busy@basic-flip-c.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-kbl-7500u/igt@kms_busy@basic-flip-c.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-kbl-7500u:       [PASS][13] -> [FAIL][14] ([fdo#109569])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html

  
#### Possible fixes ####

  * igt@gem_close_race@basic-threads:
    - fi-cml-u2:          [INCOMPLETE][15] ([fdo#110566]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-cml-u2/igt@gem_close_race@basic-threads.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-cml-u2/igt@gem_close_race@basic-threads.html

  * {igt@gem_ctx_switch@rcs0}:
    - {fi-icl-guc}:       [INCOMPLETE][17] ([fdo#107713]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-icl-guc/igt@gem_ctx_switch@rcs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-icl-guc/igt@gem_ctx_switch@rcs0.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-cml-u:           [INCOMPLETE][19] ([fdo#110566]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-cml-u/igt@gem_exec_suspend@basic-s3.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-cml-u/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_tiled_pread_basic:
    - fi-icl-u3:          [DMESG-WARN][21] ([fdo#107724]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-icl-u3/igt@gem_tiled_pread_basic.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-icl-u3/igt@gem_tiled_pread_basic.html

  * igt@i915_selftest@live_execlists:
    - fi-skl-gvtdvm:      [DMESG-FAIL][23] ([fdo#111108]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-kbl-7567u:       [WARN][25] ([fdo#109380]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-kbl-7567u/igt@kms_chamelium@common-hpd-after-suspend.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-kbl-7567u/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][27] ([fdo#102614]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
    - fi-icl-u2:          [FAIL][29] ([fdo#103167]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-c:
    - fi-kbl-7567u:       [SKIP][31] ([fdo#109271]) -> [PASS][32] +23 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-kbl-7567u/igt@kms_pipe_crc_basic@read-crc-pipe-c.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-kbl-7567u/igt@kms_pipe_crc_basic@read-crc-pipe-c.html

  * igt@prime_vgem@basic-fence-flip:
    - fi-ilk-650:         [DMESG-WARN][33] ([fdo#106387]) -> [PASS][34] +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html

  
#### Warnings ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][35] ([fdo#109485]) -> [FAIL][36] ([fdo#111168 ])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#109569]: https://bugs.freedesktop.org/show_bug.cgi?id=109569
  [fdo#109635 ]: https://bugs.freedesktop.org/show_bug.cgi?id=109635 
  [fdo#110387]: https://bugs.freedesktop.org/show_bug.cgi?id=110387
  [fdo#110566]: https://bugs.freedesktop.org/show_bug.cgi?id=110566
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111046 ]: https://bugs.freedesktop.org/show_bug.cgi?id=111046 
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108
  [fdo#111168 ]: https://bugs.freedesktop.org/show_bug.cgi?id=111168 


Participating hosts (52 -> 47)
------------------------------

  Missing    (5): fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5120 -> IGTPW_3317

  CI-20190529: 20190529
  CI_DRM_6626: 74ea5a4b7b0df73c1b8255a314dd54b375c9ebdd @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3317: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/
  IGT_5120: b3138fbea79d5d7935e53530b90efe3e816236f4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_plane_multiple@atomic-pipe-a-tiling-none_bw
+igt@kms_plane_multiple@atomic-pipe-b-tiling-none_bw
+igt@kms_plane_multiple@atomic-pipe-c-tiling-none_bw
+igt@kms_plane_multiple@atomic-pipe-d-tiling-none_bw
+igt@kms_plane_multiple@atomic-pipe-e-tiling-none_bw
+igt@kms_plane_multiple@atomic-pipe-f-tiling-none_bw

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.IGT: success for PCU messaging test.
  2019-08-05  6:54 [igt-dev] [PATCH i-g-t v2 0/2] PCU messaging test Karthik B S
                   ` (2 preceding siblings ...)
  2019-08-05  8:57 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2019-08-05 11:07 ` Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2019-08-05 11:07 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev

== Series Details ==

Series: PCU messaging test.
URL   : https://patchwork.freedesktop.org/series/64678/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6626_full -> IGTPW_3317_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/64678/revisions/1/mbox/

New tests
---------

  New tests have been introduced between CI_DRM_6626_full and IGTPW_3317_full:

### New IGT tests (3) ###

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-none_bw:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.16, 1.35] s

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none_bw:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.18, 2.49] s

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-none_bw:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 2.46] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_hangcheck:
    - shard-iclb:         [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#108569])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb4/igt@i915_selftest@live_hangcheck.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb3/igt@i915_selftest@live_hangcheck.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [PASS][3] -> [DMESG-WARN][4] ([fdo#108566]) +4 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-apl2/igt@i915_suspend@fence-restore-untiled.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-apl4/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-glk:          [PASS][5] -> [FAIL][6] ([fdo#105363])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-glk4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-glk5/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_tiling@flip-y-tiled:
    - shard-iclb:         [PASS][7] -> [FAIL][8] ([fdo#108303])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb6/igt@kms_flip_tiling@flip-y-tiled.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb5/igt@kms_flip_tiling@flip-y-tiled.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite:
    - shard-iclb:         [PASS][9] -> [FAIL][10] ([fdo#103167]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_psr@psr2_sprite_blt:
    - shard-iclb:         [PASS][11] -> [SKIP][12] ([fdo#109441]) +2 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb4/igt@kms_psr@psr2_sprite_blt.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [PASS][13] -> [FAIL][14] ([fdo#99912])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-kbl4/igt@kms_setmode@basic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-kbl3/igt@kms_setmode@basic.html

  * igt@perf_pmu@rc6-runtime-pm:
    - shard-hsw:          [PASS][15] -> [FAIL][16] ([fdo#105010])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-hsw7/igt@perf_pmu@rc6-runtime-pm.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-hsw5/igt@perf_pmu@rc6-runtime-pm.html

  
#### Possible fixes ####

  * {igt@gem_ctx_switch@legacy-blt}:
    - shard-apl:          [INCOMPLETE][17] ([fdo#103927]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-apl6/igt@gem_ctx_switch@legacy-blt.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-apl2/igt@gem_ctx_switch@legacy-blt.html

  * igt@gem_exec_await@wide-contexts:
    - shard-iclb:         [INCOMPLETE][19] ([fdo#107713]) -> [PASS][20] +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb7/igt@gem_exec_await@wide-contexts.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb6/igt@gem_exec_await@wide-contexts.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-apl:          [DMESG-WARN][21] ([fdo#108566]) -> [PASS][22] +4 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-apl3/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-iclb:         [FAIL][23] ([fdo#103167]) -> [PASS][24] +3 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-iclb:         [INCOMPLETE][25] ([fdo#107713] / [fdo#110036 ]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb4/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb5/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-snb:          [DMESG-WARN][27] ([fdo#102365]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-snb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-snb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_psr@psr2_sprite_mmap_cpu:
    - shard-iclb:         [SKIP][29] ([fdo#109441]) -> [PASS][30] +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-iclb7/igt@kms_psr@psr2_sprite_mmap_cpu.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_cpu.html

  * igt@kms_rotation_crc@sprite-rotation-180:
    - shard-snb:          [SKIP][31] ([fdo#109271]) -> [PASS][32] +2 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-snb2/igt@kms_rotation_crc@sprite-rotation-180.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-snb6/igt@kms_rotation_crc@sprite-rotation-180.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][33] ([fdo#99912]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-apl5/igt@kms_setmode@basic.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-apl1/igt@kms_setmode@basic.html

  
#### Warnings ####

  * igt@kms_atomic_transition@6x-modeset-transitions-fencing:
    - shard-snb:          [SKIP][35] ([fdo#109271]) -> [SKIP][36] ([fdo#109271] / [fdo#109278])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6626/shard-snb2/igt@kms_atomic_transition@6x-modeset-transitions-fencing.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/shard-snb7/igt@kms_atomic_transition@6x-modeset-transitions-fencing.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102365]: https://bugs.freedesktop.org/show_bug.cgi?id=102365
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108303]: https://bugs.freedesktop.org/show_bug.cgi?id=108303
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110036 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110036 
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5120 -> IGTPW_3317
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_6626: 74ea5a4b7b0df73c1b8255a314dd54b375c9ebdd @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3317: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/
  IGT_5120: b3138fbea79d5d7935e53530b90efe3e816236f4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3317/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: PCU messaging test
  2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: " Karthik B S
@ 2019-09-25 13:55   ` Ville Syrjälä
  2019-09-27  2:55     ` B S, Karthik
  0 siblings, 1 reply; 7+ messages in thread
From: Ville Syrjälä @ 2019-09-25 13:55 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev, lucas.demarchi

On Mon, Aug 05, 2019 at 12:24:53PM +0530, Karthik B S wrote:
> Add a subtest that gives flips which alternate between least bandwidth
> requirement and highest bandwidth requirement.

And what are we trying to achieve with such a test? Also the patch
subject talks about PCU communication which is nowhere mentioned in the
rest of the patch.

> 
> v2: Make the test more generic. (Ville)
>     Rebase.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
> ---
>  tests/kms_plane_multiple.c | 151 +++++++++++++++++++++++++++++++++++++++------
>  1 file changed, 133 insertions(+), 18 deletions(-)
> 
> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
> index 81ed45d..bed337c 100644
> --- a/tests/kms_plane_multiple.c
> +++ b/tests/kms_plane_multiple.c
> @@ -34,6 +34,11 @@ IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes.");
>  
>  #define SIZE_PLANE      256
>  #define SIZE_CURSOR     128
> +#define SIZE_PLANE_LOW	 10
> +#define SIZE_PANE	  5
> +#define SMALL_SCREEN	  0
> +#define FULL_SCREEN	  1
> +#define TEST_BANDWIDTH	  1
>  #define LOOP_FOREVER     -1
>  
>  typedef struct {
> @@ -48,9 +53,17 @@ typedef struct {
>  	igt_crc_t ref_crc;
>  	igt_pipe_crc_t *pipe_crc;
>  	igt_plane_t **plane;
> +	unsigned int flag;
>  	struct igt_fb *fb;
>  } data_t;
>  
> +enum bandwidth {
> +	BW_PRIMARY_LOW,
> +	BW_PRIMARY_HIGH,
> +	BW_PRIMARY_LOW2,
> +	BW_HIGH,
> +	BW_INVALID,
> +};
>  /* Command line parameters. */
>  struct {
>  	int iterations;
> @@ -97,7 +110,7 @@ static void test_fini(data_t *data, igt_output_t *output, int n_planes)
>  
>  static void
>  get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> -	      color_t *color, uint64_t tiling)
> +	      color_t *color, uint64_t tiling, int BW)
>  {
>  	drmModeModeInfo *mode;
>  	igt_plane_t *primary;
> @@ -110,7 +123,9 @@ get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
>  
>  	mode = igt_output_get_mode(output);
>  
> -	igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
> +	igt_create_color_fb(data->drm_fd,
> +			    BW ? mode->hdisplay : SIZE_PLANE_LOW,
> +			    BW ? mode->vdisplay : SIZE_PLANE_LOW,
>  			    DRM_FORMAT_XRGB8888,
>  			    LOCAL_DRM_FORMAT_MOD_NONE,
>  			    color->red, color->green, color->blue,
> @@ -270,6 +285,76 @@ prepare_planes(data_t *data, enum pipe pipe_id, color_t *color,
>  	free((void*)suffle);
>  }
>  
> +static void
> +prepare_planes2(data_t *data, enum pipe pipe_id, color_t *color,
> +	       uint64_t tiling, int max_planes, igt_output_t *output,
> +	       enum bandwidth bandwidth)
> +{
> +	drmModeModeInfo *mode;
> +	int hsize, vsize;
> +	int i;
> +	cairo_t *cr;
> +
> +	igt_output_set_pipe(output, pipe_id);
> +	mode = igt_output_get_mode(output);
> +
> +	switch (bandwidth) {
> +	case BW_PRIMARY_LOW:
> +	case BW_PRIMARY_LOW2:
> +		hsize = SIZE_PLANE_LOW;
> +		vsize = SIZE_PLANE_LOW;
> +		break;
> +	case BW_PRIMARY_HIGH:
> +	case BW_HIGH:
> +		hsize = mode->hdisplay;
> +		vsize = mode->vdisplay;
> +		break;
> +	default:
> +		igt_warn("Invalid BW\n");
> +	}
> +
> +	for (i = 0; i < max_planes; i++) {
> +		igt_plane_t *plane = igt_output_get_plane(output, i);
> +		uint32_t format = DRM_FORMAT_XRGB8888;
> +
> +		if (plane->type == DRM_PLANE_TYPE_CURSOR) {
> +			format = DRM_FORMAT_ARGB8888;
> +			tiling = LOCAL_DRM_FORMAT_MOD_NONE;
> +			hsize = SIZE_CURSOR;
> +			vsize = SIZE_CURSOR;
> +		}
> +
> +		data->plane[i] = plane;
> +		igt_create_color_fb(data->drm_fd,
> +				    hsize, vsize,
> +				    format, tiling,
> +				    color->red, color->green,
> +				    color->blue,
> +				    &data->fb[i]);
> +		igt_plane_set_position(data->plane[i], 0, 0);
> +
> +		hsize -= SIZE_PANE;
> +
> +		/* Create black color holes in all planes other than the cursor
> +		 * and the topmost plane, so that all planes put together
> +		 * produces a solid blue screen that matches with
> +		 * the reference CRC.
> +		 */
> +		if (i < (max_planes - 2) && bandwidth == BW_HIGH) {
> +			cr = igt_get_cairo_ctx(data->drm_fd, &data->fb[i]);
> +			igt_paint_color(cr, 0, 0, hsize, vsize, 0.0, 0.0, 0.0);
> +			igt_put_cairo_ctx(data->drm_fd, &data->fb[i], cr);
> +		}
> +
> +		igt_plane_set_fb(data->plane[i], &data->fb[i]);
> +
> +		if (bandwidth != BW_HIGH &&
> +		    plane->type == DRM_PLANE_TYPE_PRIMARY)
> +			break;
> +
> +	}
> +}
> +
>  /*
>   * Multiple plane position test.
>   *   - We start by grabbing a reference CRC of a full blue fb being scanned
> @@ -306,8 +391,6 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
>  
>  	test_init(data, pipe, n_planes);
>  
> -	get_reference_crc(data, output, pipe, &blue, tiling);
> -
>  	/* Find out how many planes are allowed simultaneously */
>  	do {
>  		c++;
> @@ -325,27 +408,51 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
>  		c--;
>  
>  	igt_info("Testing connector %s using pipe %s with %d planes %s with seed %d\n",
> -		 igt_output_name(output), kmstest_pipe_name(pipe), c,
> -		 info, opt.seed);
> +			igt_output_name(output), kmstest_pipe_name(pipe), c,
> +			info, opt.seed);
> +
> +	if (data->flag == TEST_BANDWIDTH) {
> +		for (i = BW_PRIMARY_LOW; i < BW_INVALID; i++) {
> +			if (i == BW_PRIMARY_LOW || i == BW_PRIMARY_LOW2)
> +				get_reference_crc(data, output, pipe, &blue,
> +						tiling, SMALL_SCREEN);
> +			else
> +				get_reference_crc(data, output, pipe, &blue,
> +						  tiling, FULL_SCREEN);
> +
> +			prepare_planes2(data, pipe, &blue, tiling,
> +					c, output, i);
> +			igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +
> +			igt_pipe_crc_get_current(data->display.drm_fd,
> +					data->pipe_crc, &crc);
> +
> +			igt_assert_crc_equal(&data->ref_crc, &crc);
> +		}
> +	} else {
> +		i = 0;
> +		get_reference_crc(data, output, pipe, &blue,
> +				  tiling, FULL_SCREEN);
>  
> -	i = 0;
> -	while (i < iterations || loop_forever) {
> -		/* randomize planes and set up the holes */
> -		prepare_planes(data, pipe, &blue, tiling, c, output);
> +		while (i < iterations || loop_forever) {
> +			prepare_planes(data, pipe, &blue, tiling,
> +				       c, output);
>  
> -		igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +			igt_display_commit2(&data->display, COMMIT_ATOMIC);
>  
> -		igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc, &crc);
> +			igt_pipe_crc_get_current(data->display.drm_fd,
> +						 data->pipe_crc, &crc);
>  
> -		for_each_plane_on_pipe(&data->display, pipe, plane)
> -			igt_plane_set_fb(plane, NULL);
> +			for_each_plane_on_pipe(&data->display, pipe, plane)
> +				igt_plane_set_fb(plane, NULL);
>  
> -		for (int x = 0; x < c; x++)
> -			igt_remove_fb(data->drm_fd, &data->fb[x]);
> +			for (int x = 0; x < c; x++)
> +				igt_remove_fb(data->drm_fd, &data->fb[x]);
>  
> -		igt_assert_crc_equal(&data->ref_crc, &crc);
> +			igt_assert_crc_equal(&data->ref_crc, &crc);
>  
> -		i++;
> +			i++;
> +		}
>  	}
>  
>  	test_fini(data, output, n_planes);
> @@ -377,6 +484,14 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
>  		igt_require(data->display.pipes[pipe].n_planes > 0);
>  	}
>  
> +
> +	data->flag = TEST_BANDWIDTH;
> +
> +	igt_subtest_f("atomic-pipe-%s-tiling-none_bw", kmstest_pipe_name(pipe))
> +		test_plane_position(data, pipe, LOCAL_DRM_FORMAT_MOD_NONE);
> +
> +	data->flag = 0;
> +
>  	igt_subtest_f("atomic-pipe-%s-tiling-x", kmstest_pipe_name(pipe))
>  		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_X_TILED);
>  
> -- 
> 2.7.4

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: PCU messaging test
  2019-09-25 13:55   ` Ville Syrjälä
@ 2019-09-27  2:55     ` B S, Karthik
  0 siblings, 0 replies; 7+ messages in thread
From: B S, Karthik @ 2019-09-27  2:55 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev, lucas.demarchi


On 9/25/2019 7:25 PM, Ville Syrjälä wrote:
> On Mon, Aug 05, 2019 at 12:24:53PM +0530, Karthik B S wrote:
>> Add a subtest that gives flips which alternate between least bandwidth
>> requirement and highest bandwidth requirement.
> And what are we trying to achieve with such a test? Also the patch
> subject talks about PCU communication which is nowhere mentioned in the
> rest of the patch.
It is a stress test, which intends to stress the system by providing 
flips with continuously changing bandwidth requirements.
I agree that PCU communication is not mentioned in the patch.
Will update the commit message accordingly, by removing PCU communication.
>
>> v2: Make the test more generic. (Ville)
>>      Rebase.
>>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
>> ---
>>   tests/kms_plane_multiple.c | 151 +++++++++++++++++++++++++++++++++++++++------
>>   1 file changed, 133 insertions(+), 18 deletions(-)
>>
>> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
>> index 81ed45d..bed337c 100644
>> --- a/tests/kms_plane_multiple.c
>> +++ b/tests/kms_plane_multiple.c
>> @@ -34,6 +34,11 @@ IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes.");
>>   
>>   #define SIZE_PLANE      256
>>   #define SIZE_CURSOR     128
>> +#define SIZE_PLANE_LOW	 10
>> +#define SIZE_PANE	  5
>> +#define SMALL_SCREEN	  0
>> +#define FULL_SCREEN	  1
>> +#define TEST_BANDWIDTH	  1
>>   #define LOOP_FOREVER     -1
>>   
>>   typedef struct {
>> @@ -48,9 +53,17 @@ typedef struct {
>>   	igt_crc_t ref_crc;
>>   	igt_pipe_crc_t *pipe_crc;
>>   	igt_plane_t **plane;
>> +	unsigned int flag;
>>   	struct igt_fb *fb;
>>   } data_t;
>>   
>> +enum bandwidth {
>> +	BW_PRIMARY_LOW,
>> +	BW_PRIMARY_HIGH,
>> +	BW_PRIMARY_LOW2,
>> +	BW_HIGH,
>> +	BW_INVALID,
>> +};
>>   /* Command line parameters. */
>>   struct {
>>   	int iterations;
>> @@ -97,7 +110,7 @@ static void test_fini(data_t *data, igt_output_t *output, int n_planes)
>>   
>>   static void
>>   get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
>> -	      color_t *color, uint64_t tiling)
>> +	      color_t *color, uint64_t tiling, int BW)
>>   {
>>   	drmModeModeInfo *mode;
>>   	igt_plane_t *primary;
>> @@ -110,7 +123,9 @@ get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
>>   
>>   	mode = igt_output_get_mode(output);
>>   
>> -	igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
>> +	igt_create_color_fb(data->drm_fd,
>> +			    BW ? mode->hdisplay : SIZE_PLANE_LOW,
>> +			    BW ? mode->vdisplay : SIZE_PLANE_LOW,
>>   			    DRM_FORMAT_XRGB8888,
>>   			    LOCAL_DRM_FORMAT_MOD_NONE,
>>   			    color->red, color->green, color->blue,
>> @@ -270,6 +285,76 @@ prepare_planes(data_t *data, enum pipe pipe_id, color_t *color,
>>   	free((void*)suffle);
>>   }
>>   
>> +static void
>> +prepare_planes2(data_t *data, enum pipe pipe_id, color_t *color,
>> +	       uint64_t tiling, int max_planes, igt_output_t *output,
>> +	       enum bandwidth bandwidth)
>> +{
>> +	drmModeModeInfo *mode;
>> +	int hsize, vsize;
>> +	int i;
>> +	cairo_t *cr;
>> +
>> +	igt_output_set_pipe(output, pipe_id);
>> +	mode = igt_output_get_mode(output);
>> +
>> +	switch (bandwidth) {
>> +	case BW_PRIMARY_LOW:
>> +	case BW_PRIMARY_LOW2:
>> +		hsize = SIZE_PLANE_LOW;
>> +		vsize = SIZE_PLANE_LOW;
>> +		break;
>> +	case BW_PRIMARY_HIGH:
>> +	case BW_HIGH:
>> +		hsize = mode->hdisplay;
>> +		vsize = mode->vdisplay;
>> +		break;
>> +	default:
>> +		igt_warn("Invalid BW\n");
>> +	}
>> +
>> +	for (i = 0; i < max_planes; i++) {
>> +		igt_plane_t *plane = igt_output_get_plane(output, i);
>> +		uint32_t format = DRM_FORMAT_XRGB8888;
>> +
>> +		if (plane->type == DRM_PLANE_TYPE_CURSOR) {
>> +			format = DRM_FORMAT_ARGB8888;
>> +			tiling = LOCAL_DRM_FORMAT_MOD_NONE;
>> +			hsize = SIZE_CURSOR;
>> +			vsize = SIZE_CURSOR;
>> +		}
>> +
>> +		data->plane[i] = plane;
>> +		igt_create_color_fb(data->drm_fd,
>> +				    hsize, vsize,
>> +				    format, tiling,
>> +				    color->red, color->green,
>> +				    color->blue,
>> +				    &data->fb[i]);
>> +		igt_plane_set_position(data->plane[i], 0, 0);
>> +
>> +		hsize -= SIZE_PANE;
>> +
>> +		/* Create black color holes in all planes other than the cursor
>> +		 * and the topmost plane, so that all planes put together
>> +		 * produces a solid blue screen that matches with
>> +		 * the reference CRC.
>> +		 */
>> +		if (i < (max_planes - 2) && bandwidth == BW_HIGH) {
>> +			cr = igt_get_cairo_ctx(data->drm_fd, &data->fb[i]);
>> +			igt_paint_color(cr, 0, 0, hsize, vsize, 0.0, 0.0, 0.0);
>> +			igt_put_cairo_ctx(data->drm_fd, &data->fb[i], cr);
>> +		}
>> +
>> +		igt_plane_set_fb(data->plane[i], &data->fb[i]);
>> +
>> +		if (bandwidth != BW_HIGH &&
>> +		    plane->type == DRM_PLANE_TYPE_PRIMARY)
>> +			break;
>> +
>> +	}
>> +}
>> +
>>   /*
>>    * Multiple plane position test.
>>    *   - We start by grabbing a reference CRC of a full blue fb being scanned
>> @@ -306,8 +391,6 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
>>   
>>   	test_init(data, pipe, n_planes);
>>   
>> -	get_reference_crc(data, output, pipe, &blue, tiling);
>> -
>>   	/* Find out how many planes are allowed simultaneously */
>>   	do {
>>   		c++;
>> @@ -325,27 +408,51 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
>>   		c--;
>>   
>>   	igt_info("Testing connector %s using pipe %s with %d planes %s with seed %d\n",
>> -		 igt_output_name(output), kmstest_pipe_name(pipe), c,
>> -		 info, opt.seed);
>> +			igt_output_name(output), kmstest_pipe_name(pipe), c,
>> +			info, opt.seed);
>> +
>> +	if (data->flag == TEST_BANDWIDTH) {
>> +		for (i = BW_PRIMARY_LOW; i < BW_INVALID; i++) {
>> +			if (i == BW_PRIMARY_LOW || i == BW_PRIMARY_LOW2)
>> +				get_reference_crc(data, output, pipe, &blue,
>> +						tiling, SMALL_SCREEN);
>> +			else
>> +				get_reference_crc(data, output, pipe, &blue,
>> +						  tiling, FULL_SCREEN);
>> +
>> +			prepare_planes2(data, pipe, &blue, tiling,
>> +					c, output, i);
>> +			igt_display_commit2(&data->display, COMMIT_ATOMIC);
>> +
>> +			igt_pipe_crc_get_current(data->display.drm_fd,
>> +					data->pipe_crc, &crc);
>> +
>> +			igt_assert_crc_equal(&data->ref_crc, &crc);
>> +		}
>> +	} else {
>> +		i = 0;
>> +		get_reference_crc(data, output, pipe, &blue,
>> +				  tiling, FULL_SCREEN);
>>   
>> -	i = 0;
>> -	while (i < iterations || loop_forever) {
>> -		/* randomize planes and set up the holes */
>> -		prepare_planes(data, pipe, &blue, tiling, c, output);
>> +		while (i < iterations || loop_forever) {
>> +			prepare_planes(data, pipe, &blue, tiling,
>> +				       c, output);
>>   
>> -		igt_display_commit2(&data->display, COMMIT_ATOMIC);
>> +			igt_display_commit2(&data->display, COMMIT_ATOMIC);
>>   
>> -		igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc, &crc);
>> +			igt_pipe_crc_get_current(data->display.drm_fd,
>> +						 data->pipe_crc, &crc);
>>   
>> -		for_each_plane_on_pipe(&data->display, pipe, plane)
>> -			igt_plane_set_fb(plane, NULL);
>> +			for_each_plane_on_pipe(&data->display, pipe, plane)
>> +				igt_plane_set_fb(plane, NULL);
>>   
>> -		for (int x = 0; x < c; x++)
>> -			igt_remove_fb(data->drm_fd, &data->fb[x]);
>> +			for (int x = 0; x < c; x++)
>> +				igt_remove_fb(data->drm_fd, &data->fb[x]);
>>   
>> -		igt_assert_crc_equal(&data->ref_crc, &crc);
>> +			igt_assert_crc_equal(&data->ref_crc, &crc);
>>   
>> -		i++;
>> +			i++;
>> +		}
>>   	}
>>   
>>   	test_fini(data, output, n_planes);
>> @@ -377,6 +484,14 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
>>   		igt_require(data->display.pipes[pipe].n_planes > 0);
>>   	}
>>   
>> +
>> +	data->flag = TEST_BANDWIDTH;
>> +
>> +	igt_subtest_f("atomic-pipe-%s-tiling-none_bw", kmstest_pipe_name(pipe))
>> +		test_plane_position(data, pipe, LOCAL_DRM_FORMAT_MOD_NONE);
>> +
>> +	data->flag = 0;
>> +
>>   	igt_subtest_f("atomic-pipe-%s-tiling-x", kmstest_pipe_name(pipe))
>>   		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_X_TILED);
>>   
>> -- 
>> 2.7.4
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2019-09-27  2:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-05  6:54 [igt-dev] [PATCH i-g-t v2 0/2] PCU messaging test Karthik B S
2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_plane_multiple: " Karthik B S
2019-09-25 13:55   ` Ville Syrjälä
2019-09-27  2:55     ` B S, Karthik
2019-08-05  6:54 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_plane_multiple: Set highest mode for " Karthik B S
2019-08-05  8:57 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2019-08-05 11:07 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox