* [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