* [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too
@ 2020-08-18 19:20 Lyude
2020-08-18 19:47 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2) Patchwork
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Lyude @ 2020-08-18 19:20 UTC (permalink / raw)
To: igt-dev
From: Lyude Paul <lyude@redhat.com>
There's been a TODO sitting in the kms_plane test suite for a while now
as a placeholder for actually generating a reference CRC for
plane-position-hole tests. This means we have never actually been
verifying whether or not partially covering our hole with a hardware
plane works displays properly, and have just simply been checking that
the frame CRC doesn't change when we're not changing the display output.
On nouveau at least, this has been causing us to pass these tests
even when we don't correctly program our hardware plane's framebuffer.
So, get rid of that TODO and implement this by converting
convert_fb_for_mode__position() to a generic convert_fb_for_mode()
function that allows us to create a colored FB, either with or without a
series of 64x64 rectangles, and use that in test_grab_crc() to generate
reference CRCs for the plane-position-hole tests. Additionally, we move
around all of the test flags into a single enumerator, and make sure
none of them have overlapping bits so we can correctly tell from
test_grab_crc() whether or not our reference CRC should include
rectangles (otherwise, we'll accidentally add rectangles in our
reference frame for the plane panning tests).
Then, we finally flip the TEST_POSITION_FULLY_COVERED enum to
TEST_POSITION_PARTIALLY_COVERED, so tests which don't explicitly specify
partial positioning don't get it in their reference fbs.
v2:
* Rebase
Signed-off-by: Lyude Paul <lyude@redhat.com>
---
tests/kms_plane.c | 164 +++++++++++++++++++++++++---------------------
1 file changed, 91 insertions(+), 73 deletions(-)
diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 430210d8..1b5e7fe9 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -44,6 +44,11 @@ typedef struct {
float blue;
} color_t;
+typedef struct {
+ int x, y;
+ color_t color;
+} rectangle_t;
+
typedef struct {
int drm_fd;
igt_display_t display;
@@ -71,9 +76,52 @@ static void test_fini(data_t *data)
igt_pipe_crc_free(data->pipe_crc);
}
+enum {
+ TEST_POSITION_PARTIALLY_COVERED = 1 << 0,
+ TEST_DPMS = 1 << 1,
+ TEST_PANNING_TOP_LEFT = 1 << 2,
+ TEST_PANNING_BOTTOM_RIGHT = 1 << 3,
+ TEST_SUSPEND_RESUME = 1 << 4,
+};
+
+/*
+ * create a colored fb, possibly with a series of 64x64 colored rectangles (used
+ * for position tests)
+ */
+static void
+create_fb_for_mode(data_t *data, drmModeModeInfo *mode,
+ color_t *fb_color,
+ const rectangle_t *rects, int rect_cnt,
+ struct igt_fb *fb /* out */)
+{
+ unsigned int fb_id;
+ cairo_t *cr;
+
+ fb_id = igt_create_fb(data->drm_fd,
+ mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ LOCAL_DRM_FORMAT_MOD_NONE,
+ fb);
+ igt_assert_fd(fb_id);
+
+ cr = igt_get_cairo_ctx(data->drm_fd, fb);
+ igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
+ fb_color->red, fb_color->green, fb_color->blue);
+ for (int i = 0; i < rect_cnt; i++) {
+ const rectangle_t *rect = &rects[i];
+ igt_paint_color(cr,
+ rect->x, rect->y, 64, 64,
+ rect->color.red,
+ rect->color.green,
+ rect->color.blue);
+ }
+
+ igt_put_cairo_ctx(cr);
+}
+
static void
test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
- color_t *fb_color, igt_crc_t *crc /* out */)
+ color_t *fb_color, unsigned int flags, igt_crc_t *crc /* out */)
{
struct igt_fb fb;
drmModeModeInfo *mode;
@@ -86,13 +134,19 @@ test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
primary = igt_output_get_plane(output, 0);
mode = igt_output_get_mode(output);
- igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
- DRM_FORMAT_XRGB8888,
- LOCAL_DRM_FORMAT_MOD_NONE,
- fb_color->red, fb_color->green, fb_color->blue,
- &fb);
- igt_plane_set_fb(primary, &fb);
+ if (flags & TEST_POSITION_PARTIALLY_COVERED) {
+ static const rectangle_t rects[] = {
+ { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }},
+ { .x = 132, .y = 132, .color = { 0.0, 1.0, 0.0 }},
+ };
+
+ create_fb_for_mode(data, mode, fb_color,
+ rects, ARRAY_SIZE(rects), &fb);
+ } else {
+ create_fb_for_mode(data, mode, fb_color, NULL, 0, &fb);
+ }
+ igt_plane_set_fb(primary, &fb);
ret = igt_display_try_commit2(&data->display, COMMIT_LEGACY);
igt_skip_on(ret != 0);
@@ -104,19 +158,24 @@ test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
igt_remove_fb(data->drm_fd, &fb);
crc_str = igt_crc_to_string(crc);
- igt_debug("CRC for a (%.02f,%.02f,%.02f) fb: %s\n", fb_color->red,
- fb_color->green, fb_color->blue, crc_str);
+ igt_debug("CRC for a %s covered (%.02f,%.02f,%.02f) fb: %s\n",
+ flags & TEST_POSITION_PARTIALLY_COVERED ? "partially" : "fully",
+ fb_color->red, fb_color->green, fb_color->blue,
+ crc_str);
free(crc_str);
}
/*
* Plane position test.
- * - We start by grabbing a reference CRC of a full green fb being scanned
- * out on the primary plane
+ * - For testing positions that fully cover our hole, we start by grabbing a
+ * reference CRC of a full green fb being scanned out on the primary plane.
+ * For testing positions that only partially cover our hole, we instead use
+ * a full green fb with a partially covered black rectangle.
* - Then we scannout 2 planes:
* - the primary plane uses a green fb with a black rectangle
* - a plane, on top of the primary plane, with a green fb that is set-up
- * to cover the black rectangle of the primary plane fb
+ * to fully or partially cover the black rectangle of the primary plane
+ * fb
* The resulting CRC should be identical to the reference CRC
*/
@@ -125,38 +184,6 @@ typedef struct {
igt_crc_t reference_crc;
} test_position_t;
-/*
- * create a green fb with a black rectangle at (rect_x,rect_y) and of size
- * (rect_w,rect_h)
- */
-static void
-create_fb_for_mode__position(data_t *data, drmModeModeInfo *mode,
- double rect_x, double rect_y,
- double rect_w, double rect_h,
- struct igt_fb *fb /* out */)
-{
- unsigned int fb_id;
- cairo_t *cr;
-
- fb_id = igt_create_fb(data->drm_fd,
- mode->hdisplay, mode->vdisplay,
- DRM_FORMAT_XRGB8888,
- LOCAL_DRM_FORMAT_MOD_NONE,
- fb);
- igt_assert(fb_id);
-
- cr = igt_get_cairo_ctx(data->drm_fd, fb);
- igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
- 0.0, 1.0, 0.0);
- igt_paint_color(cr, rect_x, rect_y, rect_w, rect_h, 0.0, 0.0, 0.0);
- igt_put_cairo_ctx(cr);
-}
-
-enum {
- TEST_POSITION_FULLY_COVERED = 1 << 0,
- TEST_DPMS = 1 << 1,
-};
-
static void
test_plane_position_with_output(data_t *data,
enum pipe pipe,
@@ -165,6 +192,7 @@ test_plane_position_with_output(data_t *data,
igt_crc_t *reference_crc,
unsigned int flags)
{
+ rectangle_t rect = { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }};
igt_plane_t *primary, *sprite;
struct igt_fb primary_fb, sprite_fb;
drmModeModeInfo *mode;
@@ -179,26 +207,26 @@ test_plane_position_with_output(data_t *data,
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
sprite = igt_output_get_plane(output, plane);
- create_fb_for_mode__position(data, mode, 100, 100, 64, 64,
- &primary_fb);
+ create_fb_for_mode(data, mode, &green, &rect, 1, &primary_fb);
igt_plane_set_fb(primary, &primary_fb);
igt_create_color_fb(data->drm_fd,
- 64, 64, /* width, height */
- DRM_FORMAT_XRGB8888,
- LOCAL_DRM_FORMAT_MOD_NONE,
- 0.0, 1.0, 0.0,
- &sprite_fb);
+ 64, 64, /* width, height */
+ DRM_FORMAT_XRGB8888,
+ LOCAL_DRM_FORMAT_MOD_NONE,
+ 0.0, 1.0, 0.0,
+ &sprite_fb);
igt_plane_set_fb(sprite, &sprite_fb);
- if (flags & TEST_POSITION_FULLY_COVERED)
- igt_plane_set_position(sprite, 100, 100);
- else
+ if (flags & TEST_POSITION_PARTIALLY_COVERED)
igt_plane_set_position(sprite, 132, 132);
+ else
+ igt_plane_set_position(sprite, 100, 100);
igt_display_commit(&data->display);
igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
+ igt_assert_crc_equal(reference_crc, &crc);
if (flags & TEST_DPMS) {
kmstest_set_connector_dpms(data->drm_fd,
@@ -211,12 +239,6 @@ test_plane_position_with_output(data_t *data,
igt_pipe_crc_collect_crc(data->pipe_crc, &crc2);
- if (flags & TEST_POSITION_FULLY_COVERED)
- igt_assert_crc_equal(reference_crc, &crc);
- else {
- ;/* FIXME: missing reference CRCs */
- }
-
igt_assert_crc_equal(&crc, &crc2);
igt_plane_set_fb(primary, NULL);
@@ -237,8 +259,7 @@ test_plane_position(data_t *data, enum pipe pipe, unsigned int flags)
igt_require(output);
test_init(data, pipe);
-
- test_grab_crc(data, output, pipe, &green, &reference_crc);
+ test_grab_crc(data, output, pipe, &green, flags, &reference_crc);
for (int plane = 1; plane < n_planes; plane++)
test_plane_position_with_output(data, pipe, plane,
@@ -287,12 +308,6 @@ create_fb_for_mode__panning(data_t *data, drmModeModeInfo *mode,
igt_put_cairo_ctx(cr);
}
-enum {
- TEST_PANNING_TOP_LEFT = 1 << 0,
- TEST_PANNING_BOTTOM_RIGHT = 1 << 1,
- TEST_SUSPEND_RESUME = 1 << 2,
-};
-
static void
test_plane_panning_with_output(data_t *data,
enum pipe pipe,
@@ -355,8 +370,8 @@ test_plane_panning(data_t *data, enum pipe pipe, unsigned int flags)
test_init(data, pipe);
- test_grab_crc(data, output, pipe, &red, &red_crc);
- test_grab_crc(data, output, pipe, &blue, &blue_crc);
+ test_grab_crc(data, output, pipe, &red, flags, &red_crc);
+ test_grab_crc(data, output, pipe, &blue, flags, &blue_crc);
for (int plane = 1; plane < n_planes; plane++)
test_plane_panning_with_output(data, pipe, plane, output,
@@ -961,15 +976,18 @@ run_tests_for_pipe_plane(data_t *data, enum pipe pipe)
data->crop = 0;
igt_subtest_f("plane-position-covered-pipe-%s-planes",
kmstest_pipe_name(pipe))
- test_plane_position(data, pipe, TEST_POSITION_FULLY_COVERED);
+ test_plane_position(data, pipe, 0);
igt_subtest_f("plane-position-hole-pipe-%s-planes",
kmstest_pipe_name(pipe))
- test_plane_position(data, pipe, 0);
+ test_plane_position(data, pipe,
+ TEST_POSITION_PARTIALLY_COVERED);
igt_subtest_f("plane-position-hole-dpms-pipe-%s-planes",
kmstest_pipe_name(pipe))
- test_plane_position(data, pipe, TEST_DPMS);
+ test_plane_position(data, pipe,
+ TEST_POSITION_PARTIALLY_COVERED |
+ TEST_DPMS);
igt_subtest_f("plane-panning-top-left-pipe-%s-planes",
kmstest_pipe_name(pipe))
--
2.26.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2)
2020-08-18 19:20 [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too Lyude
@ 2020-08-18 19:47 ` Patchwork
2020-08-18 22:48 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2020-08-18 19:47 UTC (permalink / raw)
To: Lyude; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 4262 bytes --]
== Series Details ==
Series: tests/kms_plane: Generate reference CRCs for partial coverage too (rev2)
URL : https://patchwork.freedesktop.org/series/74806/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8900 -> IGTPW_4886
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/index.html
Known issues
------------
Here are the changes found in IGTPW_4886 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s3:
- fi-tgl-u2: [PASS][1] -> [FAIL][2] ([i915#1888])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html
* igt@i915_selftest@live@gt_lrc:
- fi-tgl-u2: [PASS][3] -> [DMESG-FAIL][4] ([i915#1233])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s0:
- fi-tgl-u2: [FAIL][5] ([i915#1888]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html
* igt@i915_selftest@live@execlists:
- fi-apl-guc: [INCOMPLETE][7] ([i915#1635]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/fi-apl-guc/igt@i915_selftest@live@execlists.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-apl-guc/igt@i915_selftest@live@execlists.html
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-7500u: [DMESG-WARN][9] ([i915#2203]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/fi-kbl-7500u/igt@kms_chamelium@common-hpd-after-suspend.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-kbl-7500u/igt@kms_chamelium@common-hpd-after-suspend.html
#### Warnings ####
* igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275: [DMESG-FAIL][11] ([i915#62] / [i915#95]) -> [SKIP][12] ([fdo#109271])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- fi-kbl-x1275: [DMESG-WARN][13] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][14] ([i915#62] / [i915#92]) +4 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1233]: https://gitlab.freedesktop.org/drm/intel/issues/1233
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
[i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
[i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
[i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (39 -> 34)
------------------------------
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5769 -> IGTPW_4886
CI-20190529: 20190529
CI_DRM_8900: 3dc196787bc40e012dece11fc052a4dd467bc421 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4886: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/index.html
IGT_5769: 4e5f76be680b65780204668e302026cf638decc9 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/index.html
[-- Attachment #1.2: Type: text/html, Size: 5350 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2)
2020-08-18 19:20 [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too Lyude
2020-08-18 19:47 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2) Patchwork
@ 2020-08-18 22:48 ` Patchwork
2020-08-18 23:19 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_plane: Generate reference CRCs for partial coverage too (rev3) Patchwork
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2020-08-18 22:48 UTC (permalink / raw)
To: Lyude Paul; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 17504 bytes --]
== Series Details ==
Series: tests/kms_plane: Generate reference CRCs for partial coverage too (rev2)
URL : https://patchwork.freedesktop.org/series/74806/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_8900_full -> IGTPW_4886_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_4886_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_4886_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_4886_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-glk: [PASS][1] -> [INCOMPLETE][2] +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-glk8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
Known issues
------------
Here are the changes found in IGTPW_4886_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_persistence@engines-mixed-process@rcs0:
- shard-apl: [PASS][3] -> [FAIL][4] ([i915#1528] / [i915#1635])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-apl7/igt@gem_ctx_persistence@engines-mixed-process@rcs0.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl4/igt@gem_ctx_persistence@engines-mixed-process@rcs0.html
* igt@gem_exec_params@invalid-fence-in:
- shard-hsw: [PASS][5] -> [TIMEOUT][6] ([i915#1958]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw6/igt@gem_exec_params@invalid-fence-in.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw2/igt@gem_exec_params@invalid-fence-in.html
* igt@gem_exec_whisper@basic-forked-all:
- shard-glk: [PASS][7] -> [DMESG-WARN][8] ([i915#118] / [i915#95]) +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-glk5/igt@gem_exec_whisper@basic-forked-all.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk1/igt@gem_exec_whisper@basic-forked-all.html
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [PASS][9] -> [WARN][10] ([i915#1515])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-iclb5/igt@i915_pm_rc6_residency@rc6-fence.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb8/igt@i915_pm_rc6_residency@rc6-fence.html
* igt@i915_selftest@mock@requests:
- shard-hsw: [PASS][11] -> [INCOMPLETE][12] ([i915#2278])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw7/igt@i915_selftest@mock@requests.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw6/igt@i915_selftest@mock@requests.html
* igt@kms_cursor_crc@pipe-c-cursor-64x21-onscreen:
- shard-apl: [PASS][13] -> [FAIL][14] ([i915#1635] / [i915#54]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-apl2/igt@kms_cursor_crc@pipe-c-cursor-64x21-onscreen.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl4/igt@kms_cursor_crc@pipe-c-cursor-64x21-onscreen.html
- shard-kbl: [PASS][15] -> [FAIL][16] ([i915#54]) +1 similar issue
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-64x21-onscreen.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-64x21-onscreen.html
* igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-kbl: [PASS][17] -> [DMESG-WARN][18] ([i915#180]) +6 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
* igt@kms_cursor_legacy@short-flip-after-cursor-atomic-transitions:
- shard-apl: [PASS][19] -> [DMESG-WARN][20] ([i915#1635] / [i915#1982]) +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-apl4/igt@kms_cursor_legacy@short-flip-after-cursor-atomic-transitions.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl8/igt@kms_cursor_legacy@short-flip-after-cursor-atomic-transitions.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1:
- shard-apl: [PASS][21] -> [FAIL][22] ([i915#1635] / [i915#79])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-apl1/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl6/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp1.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt:
- shard-kbl: [PASS][23] -> [DMESG-WARN][24] ([i915#1982])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-badstride:
- shard-tglb: [PASS][25] -> [DMESG-WARN][26] ([i915#1982]) +3 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-badstride.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-badstride.html
* igt@kms_hdmi_inject@inject-audio:
- shard-tglb: [PASS][27] -> [SKIP][28] ([i915#433])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-tglb8/igt@kms_hdmi_inject@inject-audio.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-tglb5/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
- shard-kbl: [PASS][29] -> [INCOMPLETE][30] ([i915#155])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl1/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
- shard-kbl: [PASS][31] -> [DMESG-WARN][32] ([i915#165])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
* igt@kms_psr@psr2_no_drrs:
- shard-iclb: [PASS][33] -> [SKIP][34] ([fdo#109441]) +2 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb8/igt@kms_psr@psr2_no_drrs.html
* igt@prime_busy@before@vecs0:
- shard-hsw: [PASS][35] -> [FAIL][36] ([i915#2258]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw7/igt@prime_busy@before@vecs0.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw4/igt@prime_busy@before@vecs0.html
#### Possible fixes ####
* {igt@feature_discovery@psr2}:
- shard-iclb: [SKIP][37] ([i915#658]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-iclb8/igt@feature_discovery@psr2.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb2/igt@feature_discovery@psr2.html
* igt@gem_ctx_shared@q-smoketest-all:
- shard-glk: [DMESG-WARN][39] ([i915#118] / [i915#95]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-glk5/igt@gem_ctx_shared@q-smoketest-all.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk8/igt@gem_ctx_shared@q-smoketest-all.html
* igt@gem_exec_suspend@basic-s3:
- shard-snb: [TIMEOUT][41] ([i915#1958]) -> [PASS][42] +2 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-snb4/igt@gem_exec_suspend@basic-s3.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-snb2/igt@gem_exec_suspend@basic-s3.html
* igt@gen9_exec_parse@allowed-all:
- shard-apl: [DMESG-WARN][43] ([i915#1436] / [i915#1635] / [i915#716]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-apl3/igt@gen9_exec_parse@allowed-all.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl1/igt@gen9_exec_parse@allowed-all.html
* igt@i915_selftest@mock@contexts:
- shard-apl: [INCOMPLETE][45] ([i915#1635] / [i915#2278]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-apl3/igt@i915_selftest@mock@contexts.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl6/igt@i915_selftest@mock@contexts.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
- shard-tglb: [DMESG-WARN][47] ([i915#1982]) -> [PASS][48] +4 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-tglb5/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-tglb8/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
- shard-kbl: [DMESG-WARN][49] ([i915#1982]) -> [PASS][50] +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-kbl: [INCOMPLETE][51] ([i915#155]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-suspend.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-kbl: [DMESG-WARN][53] ([i915#180]) -> [PASS][54] +7 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl6/igt@kms_hdr@bpc-switch-suspend.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl2/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_plane_cursor@pipe-a-primary-size-128:
- shard-glk: [DMESG-WARN][55] ([i915#1982]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-glk2/igt@kms_plane_cursor@pipe-a-primary-size-128.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk6/igt@kms_plane_cursor@pipe-a-primary-size-128.html
* igt@kms_psr@psr2_primary_mmap_gtt:
- shard-iclb: [SKIP][57] ([fdo#109441]) -> [PASS][58] +1 similar issue
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-iclb7/igt@kms_psr@psr2_primary_mmap_gtt.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html
* igt@perf@oa-exponents:
- shard-hsw: [INCOMPLETE][59] ([i915#1958]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw1/igt@perf@oa-exponents.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw7/igt@perf@oa-exponents.html
* igt@prime_busy@hang-wait@bcs0:
- shard-hsw: [FAIL][61] ([i915#2258]) -> [PASS][62] +8 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw4/igt@prime_busy@hang-wait@bcs0.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw7/igt@prime_busy@hang-wait@bcs0.html
#### Warnings ####
* igt@gem_exec_reloc@basic-concurrent16:
- shard-snb: [TIMEOUT][63] ([i915#1958]) -> [FAIL][64] ([i915#1930])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-snb4/igt@gem_exec_reloc@basic-concurrent16.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-snb2/igt@gem_exec_reloc@basic-concurrent16.html
* igt@gem_exec_schedule@preemptive-hang:
- shard-snb: [TIMEOUT][65] ([i915#1958]) -> [SKIP][66] ([fdo#109271]) +1 similar issue
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-snb4/igt@gem_exec_schedule@preemptive-hang.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-snb2/igt@gem_exec_schedule@preemptive-hang.html
* igt@kms_content_protection@lic:
- shard-kbl: [TIMEOUT][67] ([i915#1319] / [i915#1958]) -> [TIMEOUT][68] ([i915#1319])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-kbl1/igt@kms_content_protection@lic.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl6/igt@kms_content_protection@lic.html
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [SKIP][69] ([fdo#109349]) -> [DMESG-WARN][70] ([i915#1226])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-iclb1/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@kms_plane_lowres@pipe-b-tiling-yf:
- shard-hsw: [SKIP][71] ([fdo#109271]) -> [TIMEOUT][72] ([i915#1958]) +2 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw1/igt@kms_plane_lowres@pipe-b-tiling-yf.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw2/igt@kms_plane_lowres@pipe-b-tiling-yf.html
* igt@runner@aborted:
- shard-hsw: ([FAIL][73], [FAIL][74]) ([i915#1958] / [i915#2283]) -> ([FAIL][75], [FAIL][76]) ([i915#1436] / [i915#2110] / [i915#2283])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw1/igt@runner@aborted.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw4/igt@runner@aborted.html
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw6/igt@runner@aborted.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw4/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1515]: https://gitlab.freedesktop.org/drm/intel/issues/1515
[i915#1528]: https://gitlab.freedesktop.org/drm/intel/issues/1528
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#165]: https://gitlab.freedesktop.org/drm/intel/issues/165
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1930]: https://gitlab.freedesktop.org/drm/intel/issues/1930
[i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2110]: https://gitlab.freedesktop.org/drm/intel/issues/2110
[i915#2258]: https://gitlab.freedesktop.org/drm/intel/issues/2258
[i915#2278]: https://gitlab.freedesktop.org/drm/intel/issues/2278
[i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (11 -> 8)
------------------------------
Missing (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5769 -> IGTPW_4886
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_8900: 3dc196787bc40e012dece11fc052a4dd467bc421 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4886: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/index.html
IGT_5769: 4e5f76be680b65780204668e302026cf638decc9 @ 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_4886/index.html
[-- Attachment #1.2: Type: text/html, Size: 20967 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_plane: Generate reference CRCs for partial coverage too (rev3)
2020-08-18 19:20 [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too Lyude
2020-08-18 19:47 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2) Patchwork
2020-08-18 22:48 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-08-18 23:19 ` Patchwork
2020-08-19 1:59 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev4) Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2020-08-18 23:19 UTC (permalink / raw)
To: Lyude Paul; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 5568 bytes --]
== Series Details ==
Series: tests/kms_plane: Generate reference CRCs for partial coverage too (rev3)
URL : https://patchwork.freedesktop.org/series/74806/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_8901 -> IGTPW_4891
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_4891 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_4891, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_4891:
### IGT changes ###
#### Possible regressions ####
* igt@gem_exec_parallel@engines@contexts:
- fi-bdw-gvtdvm: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-bdw-gvtdvm/igt@gem_exec_parallel@engines@contexts.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-bdw-gvtdvm/igt@gem_exec_parallel@engines@contexts.html
Known issues
------------
Here are the changes found in IGTPW_4891 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@execlists:
- fi-icl-y: [PASS][3] -> [INCOMPLETE][4] ([i915#2276])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-icl-y/igt@i915_selftest@live@execlists.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-icl-y/igt@i915_selftest@live@execlists.html
#### Possible fixes ####
* igt@i915_selftest@live@gt_lrc:
- fi-tgl-u2: [DMESG-FAIL][5] ([i915#1233]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html
* igt@kms_busy@basic@flip:
- fi-kbl-x1275: [DMESG-WARN][7] ([i915#62] / [i915#92] / [i915#95]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@kms_busy@basic@flip.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@kms_busy@basic@flip.html
* igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2:
- fi-skl-guc: [DMESG-WARN][9] ([i915#2203]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html
#### Warnings ####
* igt@gem_exec_suspend@basic-s0:
- fi-kbl-x1275: [DMESG-WARN][11] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][12] ([i915#62] / [i915#92]) +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
* igt@gem_exec_suspend@basic-s3:
- fi-kbl-x1275: [DMESG-WARN][13] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][14] ([i915#1982] / [i915#62] / [i915#92] / [i915#95])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@gem_exec_suspend@basic-s3.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@gem_exec_suspend@basic-s3.html
* igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275: [SKIP][15] ([fdo#109271]) -> [DMESG-FAIL][16] ([i915#62] / [i915#95])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
* igt@kms_force_connector_basic@force-connector-state:
- fi-kbl-x1275: [DMESG-WARN][17] ([i915#62] / [i915#92]) -> [DMESG-WARN][18] ([i915#62] / [i915#92] / [i915#95]) +3 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@kms_force_connector_basic@force-connector-state.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@kms_force_connector_basic@force-connector-state.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1233]: https://gitlab.freedesktop.org/drm/intel/issues/1233
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
[i915#2276]: https://gitlab.freedesktop.org/drm/intel/issues/2276
[i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
[i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (39 -> 34)
------------------------------
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5769 -> IGTPW_4891
CI-20190529: 20190529
CI_DRM_8901: 39e63f96cd9438015d6204a3ca33819447e4c066 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4891: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/index.html
IGT_5769: 4e5f76be680b65780204668e302026cf638decc9 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/index.html
[-- Attachment #1.2: Type: text/html, Size: 7529 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev4)
2020-08-18 19:20 [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too Lyude
` (2 preceding siblings ...)
2020-08-18 23:19 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_plane: Generate reference CRCs for partial coverage too (rev3) Patchwork
@ 2020-08-19 1:59 ` Patchwork
2020-08-19 11:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2020-08-25 21:04 ` [igt-dev] [i-g-t, v2] tests/kms_plane: Generate reference CRCs for partial coverage too Jeremy Cline
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2020-08-19 1:59 UTC (permalink / raw)
To: Lyude Paul; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 5355 bytes --]
== Series Details ==
Series: tests/kms_plane: Generate reference CRCs for partial coverage too (rev4)
URL : https://patchwork.freedesktop.org/series/74806/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8901 -> IGTPW_4892
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/index.html
Known issues
------------
Here are the changes found in IGTPW_4892 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_module_load@reload:
- fi-byt-j1900: [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-byt-j1900/igt@i915_module_load@reload.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-byt-j1900/igt@i915_module_load@reload.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-n3050: [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-bsw-n3050/igt@i915_pm_rpm@basic-pci-d3-state.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-bsw-n3050/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_selftest@live@execlists:
- fi-icl-y: [PASS][5] -> [INCOMPLETE][6] ([i915#2276])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-icl-y/igt@i915_selftest@live@execlists.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-icl-y/igt@i915_selftest@live@execlists.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka: [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
#### Possible fixes ####
* igt@kms_busy@basic@flip:
- fi-kbl-x1275: [DMESG-WARN][9] ([i915#62] / [i915#92] / [i915#95]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@kms_busy@basic@flip.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@kms_busy@basic@flip.html
* igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2:
- fi-skl-guc: [DMESG-WARN][11] ([i915#2203]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html
#### Warnings ####
* igt@i915_pm_rpm@module-reload:
- fi-kbl-x1275: [SKIP][13] ([fdo#109271]) -> [DMESG-FAIL][14] ([i915#62] / [i915#95])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
- fi-kbl-guc: [DMESG-WARN][15] ([i915#2203]) -> [DMESG-FAIL][16] ([i915#2203])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-guc/igt@i915_pm_rpm@module-reload.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-guc/igt@i915_pm_rpm@module-reload.html
* igt@kms_force_connector_basic@force-connector-state:
- fi-kbl-x1275: [DMESG-WARN][17] ([i915#62] / [i915#92]) -> [DMESG-WARN][18] ([i915#62] / [i915#92] / [i915#95]) +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@kms_force_connector_basic@force-connector-state.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@kms_force_connector_basic@force-connector-state.html
* igt@prime_vgem@basic-fence-flip:
- fi-kbl-x1275: [DMESG-WARN][19] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][20] ([i915#62] / [i915#92]) +4 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/fi-kbl-x1275/igt@prime_vgem@basic-fence-flip.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@prime_vgem@basic-fence-flip.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
[i915#2276]: https://gitlab.freedesktop.org/drm/intel/issues/2276
[i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
[i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (39 -> 34)
------------------------------
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5769 -> IGTPW_4892
CI-20190529: 20190529
CI_DRM_8901: 39e63f96cd9438015d6204a3ca33819447e4c066 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4892: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/index.html
IGT_5769: 4e5f76be680b65780204668e302026cf638decc9 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/index.html
[-- Attachment #1.2: Type: text/html, Size: 7223 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev4)
2020-08-18 19:20 [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too Lyude
` (3 preceding siblings ...)
2020-08-19 1:59 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev4) Patchwork
@ 2020-08-19 11:33 ` Patchwork
2020-08-25 21:04 ` [igt-dev] [i-g-t, v2] tests/kms_plane: Generate reference CRCs for partial coverage too Jeremy Cline
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2020-08-19 11:33 UTC (permalink / raw)
To: Lyude Paul; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 17545 bytes --]
== Series Details ==
Series: tests/kms_plane: Generate reference CRCs for partial coverage too (rev4)
URL : https://patchwork.freedesktop.org/series/74806/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8901_full -> IGTPW_4892_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/index.html
Known issues
------------
Here are the changes found in IGTPW_4892_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_persistence@processes:
- shard-glk: [PASS][1] -> [FAIL][2] ([i915#1528])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-glk2/igt@gem_ctx_persistence@processes.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk5/igt@gem_ctx_persistence@processes.html
* igt@gem_eio@in-flight-internal-10ms:
- shard-hsw: [PASS][3] -> [TIMEOUT][4] ([i915#1958])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw4/igt@gem_eio@in-flight-internal-10ms.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw8/igt@gem_eio@in-flight-internal-10ms.html
- shard-snb: [PASS][5] -> [TIMEOUT][6] ([i915#1958])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-snb2/igt@gem_eio@in-flight-internal-10ms.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb2/igt@gem_eio@in-flight-internal-10ms.html
* igt@gem_workarounds@suspend-resume:
- shard-tglb: [PASS][7] -> [DMESG-WARN][8] ([i915#1602] / [i915#1887])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb5/igt@gem_workarounds@suspend-resume.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@gem_workarounds@suspend-resume.html
* igt@i915_pm_dc@dc5-psr:
- shard-iclb: [PASS][9] -> [FAIL][10] ([i915#1899])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb8/igt@i915_pm_dc@dc5-psr.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb5/igt@i915_pm_dc@dc5-psr.html
- shard-tglb: [PASS][11] -> [FAIL][12] ([i915#1899])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb7/igt@i915_pm_dc@dc5-psr.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb3/igt@i915_pm_dc@dc5-psr.html
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [PASS][13] -> [WARN][14] ([i915#1515])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb4/igt@i915_pm_rc6_residency@rc6-fence.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb4/igt@i915_pm_rc6_residency@rc6-fence.html
* igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-kbl: [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +5 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
* igt@kms_draw_crc@draw-method-rgb565-pwrite-xtiled:
- shard-apl: [PASS][17] -> [DMESG-WARN][18] ([i915#1635] / [i915#1982]) +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-apl3/igt@kms_draw_crc@draw-method-rgb565-pwrite-xtiled.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl6/igt@kms_draw_crc@draw-method-rgb565-pwrite-xtiled.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
- shard-glk: [PASS][19] -> [FAIL][20] ([i915#49])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-glk8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
- shard-tglb: [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +5 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
* igt@kms_psr@psr2_suspend:
- shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109441])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb2/igt@kms_psr@psr2_suspend.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb4/igt@kms_psr@psr2_suspend.html
* igt@perf@missing-sample-flags:
- shard-apl: [PASS][25] -> [SKIP][26] ([fdo#109271] / [i915#1635])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-apl8/igt@perf@missing-sample-flags.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl6/igt@perf@missing-sample-flags.html
- shard-glk: [PASS][27] -> [SKIP][28] ([fdo#109271])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-glk6/igt@perf@missing-sample-flags.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk7/igt@perf@missing-sample-flags.html
- shard-iclb: [PASS][29] -> [SKIP][30] ([i915#405])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb3/igt@perf@missing-sample-flags.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb5/igt@perf@missing-sample-flags.html
- shard-hsw: [PASS][31] -> [SKIP][32] ([fdo#109271])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw1/igt@perf@missing-sample-flags.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw2/igt@perf@missing-sample-flags.html
- shard-kbl: [PASS][33] -> [SKIP][34] ([fdo#109271])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-kbl4/igt@perf@missing-sample-flags.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl7/igt@perf@missing-sample-flags.html
- shard-tglb: [PASS][35] -> [SKIP][36] ([i915#405])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb2/igt@perf@missing-sample-flags.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@perf@missing-sample-flags.html
#### Possible fixes ####
* igt@gem_ctx_isolation@preservation-s3@vcs0:
- shard-kbl: [DMESG-WARN][37] ([i915#180]) -> [PASS][38] +3 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-kbl6/igt@gem_ctx_isolation@preservation-s3@vcs0.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl1/igt@gem_ctx_isolation@preservation-s3@vcs0.html
* igt@gem_exec_gttfill@all:
- shard-glk: [DMESG-WARN][39] ([i915#118] / [i915#95]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-glk9/igt@gem_exec_gttfill@all.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk3/igt@gem_exec_gttfill@all.html
* igt@gem_exec_suspend@basic-s3:
- shard-snb: [TIMEOUT][41] ([i915#1958]) -> [PASS][42] +2 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-snb4/igt@gem_exec_suspend@basic-s3.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb2/igt@gem_exec_suspend@basic-s3.html
* igt@gem_mmap_gtt@fault-concurrent:
- shard-snb: [DMESG-WARN][43] -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-snb4/igt@gem_mmap_gtt@fault-concurrent.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb5/igt@gem_mmap_gtt@fault-concurrent.html
* igt@i915_selftest@mock@contexts:
- shard-apl: [INCOMPLETE][45] ([i915#1635] / [i915#2278]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-apl6/igt@i915_selftest@mock@contexts.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl7/igt@i915_selftest@mock@contexts.html
* igt@kms_big_fb@linear-64bpp-rotate-180:
- shard-glk: [DMESG-FAIL][47] ([i915#118] / [i915#95]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-glk8/igt@kms_big_fb@linear-64bpp-rotate-180.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk4/igt@kms_big_fb@linear-64bpp-rotate-180.html
* igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [DMESG-WARN][49] ([i915#1982]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-glk1/igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-hdmi-a1-hdmi-a2.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk7/igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-tglb: [FAIL][51] ([i915#79]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb1/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb1/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
- shard-kbl: [DMESG-WARN][53] ([i915#1982]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-kbl: [INCOMPLETE][55] ([i915#155]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu:
- shard-tglb: [DMESG-WARN][57] ([i915#1982]) -> [PASS][58] +6 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html
* igt@kms_psr@psr2_cursor_render:
- shard-iclb: [SKIP][59] ([fdo#109441]) -> [PASS][60] +2 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb1/igt@kms_psr@psr2_cursor_render.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
* igt@kms_vblank@pipe-c-wait-idle-hang:
- shard-apl: [DMESG-WARN][61] ([i915#1635] / [i915#1982]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-apl8/igt@kms_vblank@pipe-c-wait-idle-hang.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl2/igt@kms_vblank@pipe-c-wait-idle-hang.html
* igt@perf@oa-exponents:
- shard-hsw: [INCOMPLETE][63] ([i915#1958]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw6/igt@perf@oa-exponents.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw2/igt@perf@oa-exponents.html
* igt@prime_busy@hang-wait@bcs0:
- shard-hsw: [FAIL][65] ([i915#2258]) -> [PASS][66] +6 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw7/igt@prime_busy@hang-wait@bcs0.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw8/igt@prime_busy@hang-wait@bcs0.html
#### Warnings ####
* igt@gem_exec_schedule@preemptive-hang:
- shard-snb: [TIMEOUT][67] ([i915#1958]) -> [SKIP][68] ([fdo#109271]) +1 similar issue
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-snb4/igt@gem_exec_schedule@preemptive-hang.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb5/igt@gem_exec_schedule@preemptive-hang.html
* igt@i915_pm_dc@dc3co-vpb-simulation:
- shard-iclb: [SKIP][69] ([i915#658]) -> [SKIP][70] ([i915#588])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb5/igt@i915_pm_dc@dc3co-vpb-simulation.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
* igt@i915_pm_dc@dc5-dpms:
- shard-snb: [SKIP][71] ([fdo#109271]) -> [INCOMPLETE][72] ([i915#82])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-snb5/igt@i915_pm_dc@dc5-dpms.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb4/igt@i915_pm_dc@dc5-dpms.html
* igt@kms_content_protection@lic:
- shard-kbl: [TIMEOUT][73] ([i915#1319]) -> [TIMEOUT][74] ([i915#1319] / [i915#1958])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-kbl1/igt@kms_content_protection@lic.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl2/igt@kms_content_protection@lic.html
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [DMESG-WARN][75] ([i915#1226]) -> [SKIP][76] ([fdo#109349])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb5/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
- shard-snb: [SKIP][77] ([fdo#109271]) -> [TIMEOUT][78] ([i915#1958]) +2 similar issues
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-snb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
* igt@kms_vblank@pipe-d-ts-continuation-suspend:
- shard-hsw: [SKIP][79] ([fdo#109271]) -> [TIMEOUT][80] ([i915#1958]) +2 similar issues
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw1/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw8/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
* igt@runner@aborted:
- shard-hsw: ([FAIL][81], [FAIL][82]) ([i915#1958] / [i915#2283]) -> [FAIL][83] ([i915#2283])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw6/igt@runner@aborted.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw7/igt@runner@aborted.html
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw1/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#1515]: https://gitlab.freedesktop.org/drm/intel/issues/1515
[i915#1528]: https://gitlab.freedesktop.org/drm/intel/issues/1528
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1887]: https://gitlab.freedesktop.org/drm/intel/issues/1887
[i915#1899]: https://gitlab.freedesktop.org/drm/intel/issues/1899
[i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2258]: https://gitlab.freedesktop.org/drm/intel/issues/2258
[i915#2278]: https://gitlab.freedesktop.org/drm/intel/issues/2278
[i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
[i915#405]: https://gitlab.freedesktop.org/drm/intel/issues/405
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (11 -> 8)
------------------------------
Missing (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5769 -> IGTPW_4892
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_8901: 39e63f96cd9438015d6204a3ca33819447e4c066 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4892: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/index.html
IGT_5769: 4e5f76be680b65780204668e302026cf638decc9 @ 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_4892/index.html
[-- Attachment #1.2: Type: text/html, Size: 21167 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [i-g-t, v2] tests/kms_plane: Generate reference CRCs for partial coverage too
2020-08-18 19:20 [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too Lyude
` (4 preceding siblings ...)
2020-08-19 11:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2020-08-25 21:04 ` Jeremy Cline
2020-08-26 16:04 ` Lyude Paul
5 siblings, 1 reply; 9+ messages in thread
From: Jeremy Cline @ 2020-08-25 21:04 UTC (permalink / raw)
To: Lyude; +Cc: igt-dev
On Tue, Aug 18, 2020 at 03:20:54PM -0400, Lyude wrote:
> From: Lyude Paul <lyude@redhat.com>
>
> There's been a TODO sitting in the kms_plane test suite for a while now
> as a placeholder for actually generating a reference CRC for
> plane-position-hole tests. This means we have never actually been
> verifying whether or not partially covering our hole with a hardware
> plane works displays properly, and have just simply been checking that
> the frame CRC doesn't change when we're not changing the display output.
> On nouveau at least, this has been causing us to pass these tests
> even when we don't correctly program our hardware plane's framebuffer.
>
> So, get rid of that TODO and implement this by converting
> convert_fb_for_mode__position() to a generic convert_fb_for_mode()
> function that allows us to create a colored FB, either with or without a
> series of 64x64 rectangles, and use that in test_grab_crc() to generate
> reference CRCs for the plane-position-hole tests. Additionally, we move
> around all of the test flags into a single enumerator, and make sure
> none of them have overlapping bits so we can correctly tell from
> test_grab_crc() whether or not our reference CRC should include
> rectangles (otherwise, we'll accidentally add rectangles in our
> reference frame for the plane panning tests).
>
> Then, we finally flip the TEST_POSITION_FULLY_COVERED enum to
> TEST_POSITION_PARTIALLY_COVERED, so tests which don't explicitly specify
> partial positioning don't get it in their reference fbs.
>
> v2:
> * Rebase
>
> Signed-off-by: Lyude Paul <lyude@redhat.com>
> ---
> tests/kms_plane.c | 164 +++++++++++++++++++++++++---------------------
> 1 file changed, 91 insertions(+), 73 deletions(-)
>
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index 430210d8..1b5e7fe9 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -44,6 +44,11 @@ typedef struct {
> float blue;
> } color_t;
>
> +typedef struct {
> + int x, y;
> + color_t color;
> +} rectangle_t;
> +
> typedef struct {
> int drm_fd;
> igt_display_t display;
> @@ -71,9 +76,52 @@ static void test_fini(data_t *data)
> igt_pipe_crc_free(data->pipe_crc);
> }
>
> +enum {
> + TEST_POSITION_PARTIALLY_COVERED = 1 << 0,
> + TEST_DPMS = 1 << 1,
> + TEST_PANNING_TOP_LEFT = 1 << 2,
> + TEST_PANNING_BOTTOM_RIGHT = 1 << 3,
> + TEST_SUSPEND_RESUME = 1 << 4,
> +};
> +
> +/*
> + * create a colored fb, possibly with a series of 64x64 colored rectangles (used
> + * for position tests)
> + */
> +static void
> +create_fb_for_mode(data_t *data, drmModeModeInfo *mode,
> + color_t *fb_color,
> + const rectangle_t *rects, int rect_cnt,
> + struct igt_fb *fb /* out */)
> +{
It looks like data is only ever used to access the data->drm_fd. It's
real nit-picky, but it might be nice to accept the fd to line up the API
with igt_create_fb() and friends for the sake of familiarity and
consistency. The others also return the fb_id or possible error code,
although it does seem to be ignored by callers so...
After more reviewing I notice this was the prior API so I'd consider
this comment even more nit-picky.
> + unsigned int fb_id;
> + cairo_t *cr;
> +
> + fb_id = igt_create_fb(data->drm_fd,
> + mode->hdisplay, mode->vdisplay,
> + DRM_FORMAT_XRGB8888,
> + LOCAL_DRM_FORMAT_MOD_NONE,
> + fb);
> + igt_assert_fd(fb_id);
> +
> + cr = igt_get_cairo_ctx(data->drm_fd, fb);
> + igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
> + fb_color->red, fb_color->green, fb_color->blue);
> + for (int i = 0; i < rect_cnt; i++) {
> + const rectangle_t *rect = &rects[i];
> + igt_paint_color(cr,
> + rect->x, rect->y, 64, 64,
> + rect->color.red,
> + rect->color.green,
> + rect->color.blue);
> + }
> +
> + igt_put_cairo_ctx(cr);
> +}
> +
> static void
> test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> - color_t *fb_color, igt_crc_t *crc /* out */)
> + color_t *fb_color, unsigned int flags, igt_crc_t *crc /* out */)
> {
> struct igt_fb fb;
> drmModeModeInfo *mode;
> @@ -86,13 +134,19 @@ test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> primary = igt_output_get_plane(output, 0);
>
> mode = igt_output_get_mode(output);
> - igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
> - DRM_FORMAT_XRGB8888,
> - LOCAL_DRM_FORMAT_MOD_NONE,
> - fb_color->red, fb_color->green, fb_color->blue,
> - &fb);
> - igt_plane_set_fb(primary, &fb);
> + if (flags & TEST_POSITION_PARTIALLY_COVERED) {
> + static const rectangle_t rects[] = {
> + { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }},
> + { .x = 132, .y = 132, .color = { 0.0, 1.0, 0.0 }},
> + };
> +
> + create_fb_for_mode(data, mode, fb_color,
> + rects, ARRAY_SIZE(rects), &fb);
> + } else {
> + create_fb_for_mode(data, mode, fb_color, NULL, 0, &fb);
If I understand correctly, this is equivalent to a call to
igt_create_color_fb(). If that is indeed the case, it might be clearer
to just call that here.
> + }
>
> + igt_plane_set_fb(primary, &fb);
> ret = igt_display_try_commit2(&data->display, COMMIT_LEGACY);
> igt_skip_on(ret != 0);
>
> @@ -104,19 +158,24 @@ test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> igt_remove_fb(data->drm_fd, &fb);
>
> crc_str = igt_crc_to_string(crc);
> - igt_debug("CRC for a (%.02f,%.02f,%.02f) fb: %s\n", fb_color->red,
> - fb_color->green, fb_color->blue, crc_str);
> + igt_debug("CRC for a %s covered (%.02f,%.02f,%.02f) fb: %s\n",
> + flags & TEST_POSITION_PARTIALLY_COVERED ? "partially" : "fully",
> + fb_color->red, fb_color->green, fb_color->blue,
> + crc_str);
> free(crc_str);
> }
>
> /*
> * Plane position test.
> - * - We start by grabbing a reference CRC of a full green fb being scanned
> - * out on the primary plane
> + * - For testing positions that fully cover our hole, we start by grabbing a
> + * reference CRC of a full green fb being scanned out on the primary plane.
> + * For testing positions that only partially cover our hole, we instead use
> + * a full green fb with a partially covered black rectangle.
> * - Then we scannout 2 planes:
> * - the primary plane uses a green fb with a black rectangle
> * - a plane, on top of the primary plane, with a green fb that is set-up
> - * to cover the black rectangle of the primary plane fb
> + * to fully or partially cover the black rectangle of the primary plane
> + * fb
> * The resulting CRC should be identical to the reference CRC
> */
>
> @@ -125,38 +184,6 @@ typedef struct {
> igt_crc_t reference_crc;
> } test_position_t;
>
> -/*
> - * create a green fb with a black rectangle at (rect_x,rect_y) and of size
> - * (rect_w,rect_h)
> - */
> -static void
> -create_fb_for_mode__position(data_t *data, drmModeModeInfo *mode,
> - double rect_x, double rect_y,
> - double rect_w, double rect_h,
> - struct igt_fb *fb /* out */)
> -{
> - unsigned int fb_id;
> - cairo_t *cr;
> -
> - fb_id = igt_create_fb(data->drm_fd,
> - mode->hdisplay, mode->vdisplay,
> - DRM_FORMAT_XRGB8888,
> - LOCAL_DRM_FORMAT_MOD_NONE,
> - fb);
> - igt_assert(fb_id);
> -
> - cr = igt_get_cairo_ctx(data->drm_fd, fb);
> - igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
> - 0.0, 1.0, 0.0);
> - igt_paint_color(cr, rect_x, rect_y, rect_w, rect_h, 0.0, 0.0, 0.0);
> - igt_put_cairo_ctx(cr);
> -}
> -
> -enum {
> - TEST_POSITION_FULLY_COVERED = 1 << 0,
> - TEST_DPMS = 1 << 1,
> -};
> -
> static void
> test_plane_position_with_output(data_t *data,
> enum pipe pipe,
> @@ -165,6 +192,7 @@ test_plane_position_with_output(data_t *data,
> igt_crc_t *reference_crc,
> unsigned int flags)
> {
> + rectangle_t rect = { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }};
> igt_plane_t *primary, *sprite;
> struct igt_fb primary_fb, sprite_fb;
> drmModeModeInfo *mode;
> @@ -179,26 +207,26 @@ test_plane_position_with_output(data_t *data,
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> sprite = igt_output_get_plane(output, plane);
>
> - create_fb_for_mode__position(data, mode, 100, 100, 64, 64,
> - &primary_fb);
> + create_fb_for_mode(data, mode, &green, &rect, 1, &primary_fb);
> igt_plane_set_fb(primary, &primary_fb);
>
> igt_create_color_fb(data->drm_fd,
> - 64, 64, /* width, height */
> - DRM_FORMAT_XRGB8888,
> - LOCAL_DRM_FORMAT_MOD_NONE,
> - 0.0, 1.0, 0.0,
> - &sprite_fb);
> + 64, 64, /* width, height */
> + DRM_FORMAT_XRGB8888,
> + LOCAL_DRM_FORMAT_MOD_NONE,
> + 0.0, 1.0, 0.0,
> + &sprite_fb);
I'd include any whitespace-only changes separately, but don't know what
the project's preferences are there.
> igt_plane_set_fb(sprite, &sprite_fb);
>
> - if (flags & TEST_POSITION_FULLY_COVERED)
> - igt_plane_set_position(sprite, 100, 100);
> - else
> + if (flags & TEST_POSITION_PARTIALLY_COVERED)
> igt_plane_set_position(sprite, 132, 132);
> + else
> + igt_plane_set_position(sprite, 100, 100);
>
> igt_display_commit(&data->display);
>
> igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
> + igt_assert_crc_equal(reference_crc, &crc);
>
🎉
> if (flags & TEST_DPMS) {
> kmstest_set_connector_dpms(data->drm_fd,
> @@ -211,12 +239,6 @@ test_plane_position_with_output(data_t *data,
>
> igt_pipe_crc_collect_crc(data->pipe_crc, &crc2);
>
> - if (flags & TEST_POSITION_FULLY_COVERED)
> - igt_assert_crc_equal(reference_crc, &crc);
> - else {
> - ;/* FIXME: missing reference CRCs */
> - }
> -
> igt_assert_crc_equal(&crc, &crc2);
>
> igt_plane_set_fb(primary, NULL);
> @@ -237,8 +259,7 @@ test_plane_position(data_t *data, enum pipe pipe, unsigned int flags)
> igt_require(output);
>
> test_init(data, pipe);
> -
> - test_grab_crc(data, output, pipe, &green, &reference_crc);
> + test_grab_crc(data, output, pipe, &green, flags, &reference_crc);
>
> for (int plane = 1; plane < n_planes; plane++)
> test_plane_position_with_output(data, pipe, plane,
> @@ -287,12 +308,6 @@ create_fb_for_mode__panning(data_t *data, drmModeModeInfo *mode,
> igt_put_cairo_ctx(cr);
> }
>
> -enum {
> - TEST_PANNING_TOP_LEFT = 1 << 0,
> - TEST_PANNING_BOTTOM_RIGHT = 1 << 1,
> - TEST_SUSPEND_RESUME = 1 << 2,
> -};
> -
> static void
> test_plane_panning_with_output(data_t *data,
> enum pipe pipe,
> @@ -355,8 +370,8 @@ test_plane_panning(data_t *data, enum pipe pipe, unsigned int flags)
>
> test_init(data, pipe);
>
> - test_grab_crc(data, output, pipe, &red, &red_crc);
> - test_grab_crc(data, output, pipe, &blue, &blue_crc);
> + test_grab_crc(data, output, pipe, &red, flags, &red_crc);
> + test_grab_crc(data, output, pipe, &blue, flags, &blue_crc);
>
> for (int plane = 1; plane < n_planes; plane++)
> test_plane_panning_with_output(data, pipe, plane, output,
> @@ -961,15 +976,18 @@ run_tests_for_pipe_plane(data_t *data, enum pipe pipe)
> data->crop = 0;
> igt_subtest_f("plane-position-covered-pipe-%s-planes",
> kmstest_pipe_name(pipe))
> - test_plane_position(data, pipe, TEST_POSITION_FULLY_COVERED);
> + test_plane_position(data, pipe, 0);
>
> igt_subtest_f("plane-position-hole-pipe-%s-planes",
> kmstest_pipe_name(pipe))
> - test_plane_position(data, pipe, 0);
> + test_plane_position(data, pipe,
> + TEST_POSITION_PARTIALLY_COVERED);
>
> igt_subtest_f("plane-position-hole-dpms-pipe-%s-planes",
> kmstest_pipe_name(pipe))
> - test_plane_position(data, pipe, TEST_DPMS);
> + test_plane_position(data, pipe,
> + TEST_POSITION_PARTIALLY_COVERED |
> + TEST_DPMS);
>
> igt_subtest_f("plane-panning-top-left-pipe-%s-planes",
> kmstest_pipe_name(pipe))
Very minor nits, overall it looks good to me:
Reviewed-by: Jeremy Cline <jcline@redhat.com>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [i-g-t, v2] tests/kms_plane: Generate reference CRCs for partial coverage too
2020-08-25 21:04 ` [igt-dev] [i-g-t, v2] tests/kms_plane: Generate reference CRCs for partial coverage too Jeremy Cline
@ 2020-08-26 16:04 ` Lyude Paul
2020-08-27 6:46 ` Petri Latvala
0 siblings, 1 reply; 9+ messages in thread
From: Lyude Paul @ 2020-08-26 16:04 UTC (permalink / raw)
To: Jeremy Cline; +Cc: igt-dev
On Tue, 2020-08-25 at 17:04 -0400, Jeremy Cline wrote:
> On Tue, Aug 18, 2020 at 03:20:54PM -0400, Lyude wrote:
> > From: Lyude Paul <lyude@redhat.com>
> >
> > There's been a TODO sitting in the kms_plane test suite for a while now
> > as a placeholder for actually generating a reference CRC for
> > plane-position-hole tests. This means we have never actually been
> > verifying whether or not partially covering our hole with a hardware
> > plane works displays properly, and have just simply been checking that
> > the frame CRC doesn't change when we're not changing the display output.
> > On nouveau at least, this has been causing us to pass these tests
> > even when we don't correctly program our hardware plane's framebuffer.
> >
> > So, get rid of that TODO and implement this by converting
> > convert_fb_for_mode__position() to a generic convert_fb_for_mode()
> > function that allows us to create a colored FB, either with or without a
> > series of 64x64 rectangles, and use that in test_grab_crc() to generate
> > reference CRCs for the plane-position-hole tests. Additionally, we move
> > around all of the test flags into a single enumerator, and make sure
> > none of them have overlapping bits so we can correctly tell from
> > test_grab_crc() whether or not our reference CRC should include
> > rectangles (otherwise, we'll accidentally add rectangles in our
> > reference frame for the plane panning tests).
> >
> > Then, we finally flip the TEST_POSITION_FULLY_COVERED enum to
> > TEST_POSITION_PARTIALLY_COVERED, so tests which don't explicitly specify
> > partial positioning don't get it in their reference fbs.
> >
> > v2:
> > * Rebase
> >
> > Signed-off-by: Lyude Paul <lyude@redhat.com>
> > ---
> > tests/kms_plane.c | 164 +++++++++++++++++++++++++---------------------
> > 1 file changed, 91 insertions(+), 73 deletions(-)
> >
> > diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> > index 430210d8..1b5e7fe9 100644
> > --- a/tests/kms_plane.c
> > +++ b/tests/kms_plane.c
> > @@ -44,6 +44,11 @@ typedef struct {
> > float blue;
> > } color_t;
> >
> > +typedef struct {
> > + int x, y;
> > + color_t color;
> > +} rectangle_t;
> > +
> > typedef struct {
> > int drm_fd;
> > igt_display_t display;
> > @@ -71,9 +76,52 @@ static void test_fini(data_t *data)
> > igt_pipe_crc_free(data->pipe_crc);
> > }
> >
> > +enum {
> > + TEST_POSITION_PARTIALLY_COVERED = 1 << 0,
> > + TEST_DPMS = 1 << 1,
> > + TEST_PANNING_TOP_LEFT = 1 << 2,
> > + TEST_PANNING_BOTTOM_RIGHT = 1 << 3,
> > + TEST_SUSPEND_RESUME = 1 << 4,
> > +};
> > +
> > +/*
> > + * create a colored fb, possibly with a series of 64x64 colored rectangles
> > (used
> > + * for position tests)
> > + */
> > +static void
> > +create_fb_for_mode(data_t *data, drmModeModeInfo *mode,
> > + color_t *fb_color,
> > + const rectangle_t *rects, int rect_cnt,
> > + struct igt_fb *fb /* out */)
> > +{
>
> It looks like data is only ever used to access the data->drm_fd. It's
> real nit-picky, but it might be nice to accept the fd to line up the API
> with igt_create_fb() and friends for the sake of familiarity and
> consistency. The others also return the fb_id or possible error code,
> although it does seem to be ignored by callers so...
>
> After more reviewing I notice this was the prior API so I'd consider
> this comment even more nit-picky.
>
> > + unsigned int fb_id;
> > + cairo_t *cr;
> > +
> > + fb_id = igt_create_fb(data->drm_fd,
> > + mode->hdisplay, mode->vdisplay,
> > + DRM_FORMAT_XRGB8888,
> > + LOCAL_DRM_FORMAT_MOD_NONE,
> > + fb);
> > + igt_assert_fd(fb_id);
> > +
> > + cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > + igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
> > + fb_color->red, fb_color->green, fb_color->blue);
> > + for (int i = 0; i < rect_cnt; i++) {
> > + const rectangle_t *rect = &rects[i];
> > + igt_paint_color(cr,
> > + rect->x, rect->y, 64, 64,
> > + rect->color.red,
> > + rect->color.green,
> > + rect->color.blue);
> > + }
> > +
> > + igt_put_cairo_ctx(cr);
> > +}
> > +
> > static void
> > test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> > - color_t *fb_color, igt_crc_t *crc /* out */)
> > + color_t *fb_color, unsigned int flags, igt_crc_t *crc /* out */)
> > {
> > struct igt_fb fb;
> > drmModeModeInfo *mode;
> > @@ -86,13 +134,19 @@ test_grab_crc(data_t *data, igt_output_t *output, enum
> > pipe pipe,
> > primary = igt_output_get_plane(output, 0);
> >
> > mode = igt_output_get_mode(output);
> > - igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
> > - DRM_FORMAT_XRGB8888,
> > - LOCAL_DRM_FORMAT_MOD_NONE,
> > - fb_color->red, fb_color->green, fb_color->blue,
> > - &fb);
> > - igt_plane_set_fb(primary, &fb);
> > + if (flags & TEST_POSITION_PARTIALLY_COVERED) {
> > + static const rectangle_t rects[] = {
> > + { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }},
> > + { .x = 132, .y = 132, .color = { 0.0, 1.0, 0.0 }},
> > + };
> > +
> > + create_fb_for_mode(data, mode, fb_color,
> > + rects, ARRAY_SIZE(rects), &fb);
> > + } else {
> > + create_fb_for_mode(data, mode, fb_color, NULL, 0, &fb);
>
> If I understand correctly, this is equivalent to a call to
> igt_create_color_fb(). If that is indeed the case, it might be clearer
> to just call that here.
>
> > + }
> >
> > + igt_plane_set_fb(primary, &fb);
> > ret = igt_display_try_commit2(&data->display, COMMIT_LEGACY);
> > igt_skip_on(ret != 0);
> >
> > @@ -104,19 +158,24 @@ test_grab_crc(data_t *data, igt_output_t *output, enum
> > pipe pipe,
> > igt_remove_fb(data->drm_fd, &fb);
> >
> > crc_str = igt_crc_to_string(crc);
> > - igt_debug("CRC for a (%.02f,%.02f,%.02f) fb: %s\n", fb_color->red,
> > - fb_color->green, fb_color->blue, crc_str);
> > + igt_debug("CRC for a %s covered (%.02f,%.02f,%.02f) fb: %s\n",
> > + flags & TEST_POSITION_PARTIALLY_COVERED ? "partially" :
> > "fully",
> > + fb_color->red, fb_color->green, fb_color->blue,
> > + crc_str);
> > free(crc_str);
> > }
> >
> > /*
> > * Plane position test.
> > - * - We start by grabbing a reference CRC of a full green fb being
> > scanned
> > - * out on the primary plane
> > + * - For testing positions that fully cover our hole, we start by
> > grabbing a
> > + * reference CRC of a full green fb being scanned out on the primary
> > plane.
> > + * For testing positions that only partially cover our hole, we instead
> > use
> > + * a full green fb with a partially covered black rectangle.
> > * - Then we scannout 2 planes:
> > * - the primary plane uses a green fb with a black rectangle
> > * - a plane, on top of the primary plane, with a green fb that is
> > set-up
> > - * to cover the black rectangle of the primary plane fb
> > + * to fully or partially cover the black rectangle of the primary
> > plane
> > + * fb
> > * The resulting CRC should be identical to the reference CRC
> > */
> >
> > @@ -125,38 +184,6 @@ typedef struct {
> > igt_crc_t reference_crc;
> > } test_position_t;
> >
> > -/*
> > - * create a green fb with a black rectangle at (rect_x,rect_y) and of size
> > - * (rect_w,rect_h)
> > - */
> > -static void
> > -create_fb_for_mode__position(data_t *data, drmModeModeInfo *mode,
> > - double rect_x, double rect_y,
> > - double rect_w, double rect_h,
> > - struct igt_fb *fb /* out */)
> > -{
> > - unsigned int fb_id;
> > - cairo_t *cr;
> > -
> > - fb_id = igt_create_fb(data->drm_fd,
> > - mode->hdisplay, mode->vdisplay,
> > - DRM_FORMAT_XRGB8888,
> > - LOCAL_DRM_FORMAT_MOD_NONE,
> > - fb);
> > - igt_assert(fb_id);
> > -
> > - cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > - igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
> > - 0.0, 1.0, 0.0);
> > - igt_paint_color(cr, rect_x, rect_y, rect_w, rect_h, 0.0, 0.0, 0.0);
> > - igt_put_cairo_ctx(cr);
> > -}
> > -
> > -enum {
> > - TEST_POSITION_FULLY_COVERED = 1 << 0,
> > - TEST_DPMS = 1 << 1,
> > -};
> > -
> > static void
> > test_plane_position_with_output(data_t *data,
> > enum pipe pipe,
> > @@ -165,6 +192,7 @@ test_plane_position_with_output(data_t *data,
> > igt_crc_t *reference_crc,
> > unsigned int flags)
> > {
> > + rectangle_t rect = { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }};
> > igt_plane_t *primary, *sprite;
> > struct igt_fb primary_fb, sprite_fb;
> > drmModeModeInfo *mode;
> > @@ -179,26 +207,26 @@ test_plane_position_with_output(data_t *data,
> > primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> > sprite = igt_output_get_plane(output, plane);
> >
> > - create_fb_for_mode__position(data, mode, 100, 100, 64, 64,
> > - &primary_fb);
> > + create_fb_for_mode(data, mode, &green, &rect, 1, &primary_fb);
> > igt_plane_set_fb(primary, &primary_fb);
> >
> > igt_create_color_fb(data->drm_fd,
> > - 64, 64, /* width, height */
> > - DRM_FORMAT_XRGB8888,
> > - LOCAL_DRM_FORMAT_MOD_NONE,
> > - 0.0, 1.0, 0.0,
> > - &sprite_fb);
> > + 64, 64, /* width, height */
> > + DRM_FORMAT_XRGB8888,
> > + LOCAL_DRM_FORMAT_MOD_NONE,
> > + 0.0, 1.0, 0.0,
> > + &sprite_fb);
>
> I'd include any whitespace-only changes separately, but don't know what
> the project's preferences are there.
FWIW - I think it's usually fine as long as you're already modifying the code
around the changes for not-whitespace related reasons, we're not usually as
strict about this sort of thing with igt as the linux kernel is
>
> > igt_plane_set_fb(sprite, &sprite_fb);
> >
> > - if (flags & TEST_POSITION_FULLY_COVERED)
> > - igt_plane_set_position(sprite, 100, 100);
> > - else
> > + if (flags & TEST_POSITION_PARTIALLY_COVERED)
> > igt_plane_set_position(sprite, 132, 132);
> > + else
> > + igt_plane_set_position(sprite, 100, 100);
> >
> > igt_display_commit(&data->display);
> >
> > igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
> > + igt_assert_crc_equal(reference_crc, &crc);
> >
>
> 🎉
>
> > if (flags & TEST_DPMS) {
> > kmstest_set_connector_dpms(data->drm_fd,
> > @@ -211,12 +239,6 @@ test_plane_position_with_output(data_t *data,
> >
> > igt_pipe_crc_collect_crc(data->pipe_crc, &crc2);
> >
> > - if (flags & TEST_POSITION_FULLY_COVERED)
> > - igt_assert_crc_equal(reference_crc, &crc);
> > - else {
> > - ;/* FIXME: missing reference CRCs */
> > - }
> > -
> > igt_assert_crc_equal(&crc, &crc2);
> >
> > igt_plane_set_fb(primary, NULL);
> > @@ -237,8 +259,7 @@ test_plane_position(data_t *data, enum pipe pipe,
> > unsigned int flags)
> > igt_require(output);
> >
> > test_init(data, pipe);
> > -
> > - test_grab_crc(data, output, pipe, &green, &reference_crc);
> > + test_grab_crc(data, output, pipe, &green, flags, &reference_crc);
> >
> > for (int plane = 1; plane < n_planes; plane++)
> > test_plane_position_with_output(data, pipe, plane,
> > @@ -287,12 +308,6 @@ create_fb_for_mode__panning(data_t *data,
> > drmModeModeInfo *mode,
> > igt_put_cairo_ctx(cr);
> > }
> >
> > -enum {
> > - TEST_PANNING_TOP_LEFT = 1 << 0,
> > - TEST_PANNING_BOTTOM_RIGHT = 1 << 1,
> > - TEST_SUSPEND_RESUME = 1 << 2,
> > -};
> > -
> > static void
> > test_plane_panning_with_output(data_t *data,
> > enum pipe pipe,
> > @@ -355,8 +370,8 @@ test_plane_panning(data_t *data, enum pipe pipe,
> > unsigned int flags)
> >
> > test_init(data, pipe);
> >
> > - test_grab_crc(data, output, pipe, &red, &red_crc);
> > - test_grab_crc(data, output, pipe, &blue, &blue_crc);
> > + test_grab_crc(data, output, pipe, &red, flags, &red_crc);
> > + test_grab_crc(data, output, pipe, &blue, flags, &blue_crc);
> >
> > for (int plane = 1; plane < n_planes; plane++)
> > test_plane_panning_with_output(data, pipe, plane, output,
> > @@ -961,15 +976,18 @@ run_tests_for_pipe_plane(data_t *data, enum pipe pipe)
> > data->crop = 0;
> > igt_subtest_f("plane-position-covered-pipe-%s-planes",
> > kmstest_pipe_name(pipe))
> > - test_plane_position(data, pipe, TEST_POSITION_FULLY_COVERED);
> > + test_plane_position(data, pipe, 0);
> >
> > igt_subtest_f("plane-position-hole-pipe-%s-planes",
> > kmstest_pipe_name(pipe))
> > - test_plane_position(data, pipe, 0);
> > + test_plane_position(data, pipe,
> > + TEST_POSITION_PARTIALLY_COVERED);
> >
> > igt_subtest_f("plane-position-hole-dpms-pipe-%s-planes",
> > kmstest_pipe_name(pipe))
> > - test_plane_position(data, pipe, TEST_DPMS);
> > + test_plane_position(data, pipe,
> > + TEST_POSITION_PARTIALLY_COVERED |
> > + TEST_DPMS);
> >
> > igt_subtest_f("plane-panning-top-left-pipe-%s-planes",
> > kmstest_pipe_name(pipe))
>
> Very minor nits, overall it looks good to me:
>
> Reviewed-by: Jeremy Cline <jcline@redhat.com>
>
--
Sincerely,
Lyude Paul (she/her)
Software Engineer at Red Hat
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [i-g-t, v2] tests/kms_plane: Generate reference CRCs for partial coverage too
2020-08-26 16:04 ` Lyude Paul
@ 2020-08-27 6:46 ` Petri Latvala
0 siblings, 0 replies; 9+ messages in thread
From: Petri Latvala @ 2020-08-27 6:46 UTC (permalink / raw)
To: Lyude Paul; +Cc: igt-dev
On Wed, Aug 26, 2020 at 12:04:44PM -0400, Lyude Paul wrote:
> On Tue, 2020-08-25 at 17:04 -0400, Jeremy Cline wrote:
> > On Tue, Aug 18, 2020 at 03:20:54PM -0400, Lyude wrote:
> > > From: Lyude Paul <lyude@redhat.com>
> > >
> > > There's been a TODO sitting in the kms_plane test suite for a while now
> > > as a placeholder for actually generating a reference CRC for
> > > plane-position-hole tests. This means we have never actually been
> > > verifying whether or not partially covering our hole with a hardware
> > > plane works displays properly, and have just simply been checking that
> > > the frame CRC doesn't change when we're not changing the display output.
> > > On nouveau at least, this has been causing us to pass these tests
> > > even when we don't correctly program our hardware plane's framebuffer.
> > >
> > > So, get rid of that TODO and implement this by converting
> > > convert_fb_for_mode__position() to a generic convert_fb_for_mode()
> > > function that allows us to create a colored FB, either with or without a
> > > series of 64x64 rectangles, and use that in test_grab_crc() to generate
> > > reference CRCs for the plane-position-hole tests. Additionally, we move
> > > around all of the test flags into a single enumerator, and make sure
> > > none of them have overlapping bits so we can correctly tell from
> > > test_grab_crc() whether or not our reference CRC should include
> > > rectangles (otherwise, we'll accidentally add rectangles in our
> > > reference frame for the plane panning tests).
> > >
> > > Then, we finally flip the TEST_POSITION_FULLY_COVERED enum to
> > > TEST_POSITION_PARTIALLY_COVERED, so tests which don't explicitly specify
> > > partial positioning don't get it in their reference fbs.
> > >
> > > v2:
> > > * Rebase
> > >
> > > Signed-off-by: Lyude Paul <lyude@redhat.com>
> > > ---
> > > tests/kms_plane.c | 164 +++++++++++++++++++++++++---------------------
> > > 1 file changed, 91 insertions(+), 73 deletions(-)
> > >
> > > diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> > > index 430210d8..1b5e7fe9 100644
> > > --- a/tests/kms_plane.c
> > > +++ b/tests/kms_plane.c
> > > @@ -44,6 +44,11 @@ typedef struct {
> > > float blue;
> > > } color_t;
> > >
> > > +typedef struct {
> > > + int x, y;
> > > + color_t color;
> > > +} rectangle_t;
> > > +
> > > typedef struct {
> > > int drm_fd;
> > > igt_display_t display;
> > > @@ -71,9 +76,52 @@ static void test_fini(data_t *data)
> > > igt_pipe_crc_free(data->pipe_crc);
> > > }
> > >
> > > +enum {
> > > + TEST_POSITION_PARTIALLY_COVERED = 1 << 0,
> > > + TEST_DPMS = 1 << 1,
> > > + TEST_PANNING_TOP_LEFT = 1 << 2,
> > > + TEST_PANNING_BOTTOM_RIGHT = 1 << 3,
> > > + TEST_SUSPEND_RESUME = 1 << 4,
> > > +};
> > > +
> > > +/*
> > > + * create a colored fb, possibly with a series of 64x64 colored rectangles
> > > (used
> > > + * for position tests)
> > > + */
> > > +static void
> > > +create_fb_for_mode(data_t *data, drmModeModeInfo *mode,
> > > + color_t *fb_color,
> > > + const rectangle_t *rects, int rect_cnt,
> > > + struct igt_fb *fb /* out */)
> > > +{
> >
> > It looks like data is only ever used to access the data->drm_fd. It's
> > real nit-picky, but it might be nice to accept the fd to line up the API
> > with igt_create_fb() and friends for the sake of familiarity and
> > consistency. The others also return the fb_id or possible error code,
> > although it does seem to be ignored by callers so...
> >
> > After more reviewing I notice this was the prior API so I'd consider
> > this comment even more nit-picky.
> >
> > > + unsigned int fb_id;
> > > + cairo_t *cr;
> > > +
> > > + fb_id = igt_create_fb(data->drm_fd,
> > > + mode->hdisplay, mode->vdisplay,
> > > + DRM_FORMAT_XRGB8888,
> > > + LOCAL_DRM_FORMAT_MOD_NONE,
> > > + fb);
> > > + igt_assert_fd(fb_id);
> > > +
> > > + cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > > + igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
> > > + fb_color->red, fb_color->green, fb_color->blue);
> > > + for (int i = 0; i < rect_cnt; i++) {
> > > + const rectangle_t *rect = &rects[i];
> > > + igt_paint_color(cr,
> > > + rect->x, rect->y, 64, 64,
> > > + rect->color.red,
> > > + rect->color.green,
> > > + rect->color.blue);
> > > + }
> > > +
> > > + igt_put_cairo_ctx(cr);
> > > +}
> > > +
> > > static void
> > > test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> > > - color_t *fb_color, igt_crc_t *crc /* out */)
> > > + color_t *fb_color, unsigned int flags, igt_crc_t *crc /* out */)
> > > {
> > > struct igt_fb fb;
> > > drmModeModeInfo *mode;
> > > @@ -86,13 +134,19 @@ test_grab_crc(data_t *data, igt_output_t *output, enum
> > > pipe pipe,
> > > primary = igt_output_get_plane(output, 0);
> > >
> > > mode = igt_output_get_mode(output);
> > > - igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
> > > - DRM_FORMAT_XRGB8888,
> > > - LOCAL_DRM_FORMAT_MOD_NONE,
> > > - fb_color->red, fb_color->green, fb_color->blue,
> > > - &fb);
> > > - igt_plane_set_fb(primary, &fb);
> > > + if (flags & TEST_POSITION_PARTIALLY_COVERED) {
> > > + static const rectangle_t rects[] = {
> > > + { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }},
> > > + { .x = 132, .y = 132, .color = { 0.0, 1.0, 0.0 }},
> > > + };
> > > +
> > > + create_fb_for_mode(data, mode, fb_color,
> > > + rects, ARRAY_SIZE(rects), &fb);
> > > + } else {
> > > + create_fb_for_mode(data, mode, fb_color, NULL, 0, &fb);
> >
> > If I understand correctly, this is equivalent to a call to
> > igt_create_color_fb(). If that is indeed the case, it might be clearer
> > to just call that here.
> >
> > > + }
> > >
> > > + igt_plane_set_fb(primary, &fb);
> > > ret = igt_display_try_commit2(&data->display, COMMIT_LEGACY);
> > > igt_skip_on(ret != 0);
> > >
> > > @@ -104,19 +158,24 @@ test_grab_crc(data_t *data, igt_output_t *output, enum
> > > pipe pipe,
> > > igt_remove_fb(data->drm_fd, &fb);
> > >
> > > crc_str = igt_crc_to_string(crc);
> > > - igt_debug("CRC for a (%.02f,%.02f,%.02f) fb: %s\n", fb_color->red,
> > > - fb_color->green, fb_color->blue, crc_str);
> > > + igt_debug("CRC for a %s covered (%.02f,%.02f,%.02f) fb: %s\n",
> > > + flags & TEST_POSITION_PARTIALLY_COVERED ? "partially" :
> > > "fully",
> > > + fb_color->red, fb_color->green, fb_color->blue,
> > > + crc_str);
> > > free(crc_str);
> > > }
> > >
> > > /*
> > > * Plane position test.
> > > - * - We start by grabbing a reference CRC of a full green fb being
> > > scanned
> > > - * out on the primary plane
> > > + * - For testing positions that fully cover our hole, we start by
> > > grabbing a
> > > + * reference CRC of a full green fb being scanned out on the primary
> > > plane.
> > > + * For testing positions that only partially cover our hole, we instead
> > > use
> > > + * a full green fb with a partially covered black rectangle.
> > > * - Then we scannout 2 planes:
> > > * - the primary plane uses a green fb with a black rectangle
> > > * - a plane, on top of the primary plane, with a green fb that is
> > > set-up
> > > - * to cover the black rectangle of the primary plane fb
> > > + * to fully or partially cover the black rectangle of the primary
> > > plane
> > > + * fb
> > > * The resulting CRC should be identical to the reference CRC
> > > */
> > >
> > > @@ -125,38 +184,6 @@ typedef struct {
> > > igt_crc_t reference_crc;
> > > } test_position_t;
> > >
> > > -/*
> > > - * create a green fb with a black rectangle at (rect_x,rect_y) and of size
> > > - * (rect_w,rect_h)
> > > - */
> > > -static void
> > > -create_fb_for_mode__position(data_t *data, drmModeModeInfo *mode,
> > > - double rect_x, double rect_y,
> > > - double rect_w, double rect_h,
> > > - struct igt_fb *fb /* out */)
> > > -{
> > > - unsigned int fb_id;
> > > - cairo_t *cr;
> > > -
> > > - fb_id = igt_create_fb(data->drm_fd,
> > > - mode->hdisplay, mode->vdisplay,
> > > - DRM_FORMAT_XRGB8888,
> > > - LOCAL_DRM_FORMAT_MOD_NONE,
> > > - fb);
> > > - igt_assert(fb_id);
> > > -
> > > - cr = igt_get_cairo_ctx(data->drm_fd, fb);
> > > - igt_paint_color(cr, 0, 0, mode->hdisplay, mode->vdisplay,
> > > - 0.0, 1.0, 0.0);
> > > - igt_paint_color(cr, rect_x, rect_y, rect_w, rect_h, 0.0, 0.0, 0.0);
> > > - igt_put_cairo_ctx(cr);
> > > -}
> > > -
> > > -enum {
> > > - TEST_POSITION_FULLY_COVERED = 1 << 0,
> > > - TEST_DPMS = 1 << 1,
> > > -};
> > > -
> > > static void
> > > test_plane_position_with_output(data_t *data,
> > > enum pipe pipe,
> > > @@ -165,6 +192,7 @@ test_plane_position_with_output(data_t *data,
> > > igt_crc_t *reference_crc,
> > > unsigned int flags)
> > > {
> > > + rectangle_t rect = { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }};
> > > igt_plane_t *primary, *sprite;
> > > struct igt_fb primary_fb, sprite_fb;
> > > drmModeModeInfo *mode;
> > > @@ -179,26 +207,26 @@ test_plane_position_with_output(data_t *data,
> > > primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> > > sprite = igt_output_get_plane(output, plane);
> > >
> > > - create_fb_for_mode__position(data, mode, 100, 100, 64, 64,
> > > - &primary_fb);
> > > + create_fb_for_mode(data, mode, &green, &rect, 1, &primary_fb);
> > > igt_plane_set_fb(primary, &primary_fb);
> > >
> > > igt_create_color_fb(data->drm_fd,
> > > - 64, 64, /* width, height */
> > > - DRM_FORMAT_XRGB8888,
> > > - LOCAL_DRM_FORMAT_MOD_NONE,
> > > - 0.0, 1.0, 0.0,
> > > - &sprite_fb);
> > > + 64, 64, /* width, height */
> > > + DRM_FORMAT_XRGB8888,
> > > + LOCAL_DRM_FORMAT_MOD_NONE,
> > > + 0.0, 1.0, 0.0,
> > > + &sprite_fb);
> >
> > I'd include any whitespace-only changes separately, but don't know what
> > the project's preferences are there.
>
> FWIW - I think it's usually fine as long as you're already modifying the code
> around the changes for not-whitespace related reasons, we're not usually as
> strict about this sort of thing with igt as the linux kernel is
Correct.
--
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-08-27 7:44 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-18 19:20 [igt-dev] [PATCH i-g-t v2] tests/kms_plane: Generate reference CRCs for partial coverage too Lyude
2020-08-18 19:47 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2) Patchwork
2020-08-18 22:48 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-08-18 23:19 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_plane: Generate reference CRCs for partial coverage too (rev3) Patchwork
2020-08-19 1:59 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev4) Patchwork
2020-08-19 11:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2020-08-25 21:04 ` [igt-dev] [i-g-t, v2] tests/kms_plane: Generate reference CRCs for partial coverage too Jeremy Cline
2020-08-26 16:04 ` Lyude Paul
2020-08-27 6:46 ` Petri Latvala
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox