tests/kms_plane: Generate reference CRCs for partial coverage too
PATCH v2 1/1 tests/kms_plane: Generate reference CRCs for partial coverage too
From: Lyude Paul <[email protected]>
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
--- tests/kms_plane.c | 164 +++++++++++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 73 deletions(-)
tests/kms_plane.c +91 -73
@@ -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))
Signature · 6 lines
2.26.2 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2)
== Series Details ==
== 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@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-tgl-u2/igt@[email protected]
* 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@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-tgl-u2/igt@[email protected]
* 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@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-apl-guc/igt@i915_selftest@[email protected]
* 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@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-kbl-7500u/igt@[email protected]
#### 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@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-kbl-x1275/igt@[email protected]
* 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@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/fi-kbl-x1275/igt@[email protected]
[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
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✗ Fi.CI.IGT: failure for tests/kms_plane: Generate reference CRCs for partial coverage too (rev2)
In reply to Lyude== Series Details ==
== 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@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk2/igt@[email protected]
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@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl4/igt@gem_ctx_persistence@[email protected]
* 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@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw2/igt@[email protected]
* 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@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk1/igt@[email protected]
* 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@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb8/igt@[email protected]
* 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@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw6/igt@i915_selftest@[email protected]
* 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@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl4/igt@[email protected]
- 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@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl1/igt@[email protected]
* 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@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl6/igt@[email protected]
* 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@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl6/igt@kms_flip@[email protected]
* 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@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-tglb8/igt@[email protected]
* 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@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-tglb5/igt@[email protected]
* 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@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl1/igt@[email protected]
* 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@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl6/igt@[email protected]
* 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@[email protected]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw4/igt@prime_busy@[email protected]
#### 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@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb2/igt@[email protected]
* 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@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk8/igt@[email protected]
* 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@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-snb2/igt@[email protected]
* 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@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl1/igt@[email protected]
* 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@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-apl6/igt@i915_selftest@[email protected]
* 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@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-tglb8/igt@[email protected]
* 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@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl7/igt@[email protected]
* 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@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl7/igt@[email protected]
* 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@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl2/igt@[email protected]
* 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@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-glk6/igt@[email protected]
* 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@[email protected]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw7/igt@[email protected]
* 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@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw7/igt@prime_busy@[email protected]
#### 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@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-snb2/igt@[email protected]
* 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@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-snb2/igt@[email protected]
* 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@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-kbl6/igt@[email protected]
* 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@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-iclb2/igt@[email protected]
* 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@[email protected]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw2/igt@[email protected]
* 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@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8900/shard-hsw4/igt@[email protected]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw6/igt@[email protected]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4886/shard-hsw4/igt@[email protected]
{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
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_plane: Generate reference CRCs for partial coverage too (rev3)
In reply to Lyude== Series Details ==
== 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@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-bdw-gvtdvm/igt@gem_exec_parallel@[email protected]
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@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-icl-y/igt@i915_selftest@[email protected]
#### 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@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@kms_busy@[email protected]
* 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@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-skl-guc/igt@kms_flip@[email protected]
#### 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@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@[email protected]
* 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@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@[email protected]
* 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@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@[email protected]
* 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@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4891/fi-kbl-x1275/igt@[email protected]
[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
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✓ Fi.CI.BAT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev4)
In reply to Lyude== Series Details ==
== 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@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-byt-j1900/igt@[email protected]
* 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@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-bsw-n3050/igt@[email protected]
* 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@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-icl-y/igt@i915_selftest@[email protected]
* 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@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-bsw-kefka/igt@[email protected]
#### 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@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@kms_busy@[email protected]
* 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@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-skl-guc/igt@kms_flip@[email protected]
#### 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@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@[email protected]
- 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@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-guc/igt@[email protected]
* 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@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@[email protected]
* 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@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/fi-kbl-x1275/igt@[email protected]
[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
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✓ Fi.CI.IGT: success for tests/kms_plane: Generate reference CRCs for partial coverage too (rev4)
In reply to Lyude== Series Details ==
== 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@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk5/igt@[email protected]
* 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@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw8/igt@[email protected]
- shard-snb: [PASS][5] -> [TIMEOUT][6] ([i915#1958])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-snb2/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb2/igt@[email protected]
* 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@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@[email protected]
* 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@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb5/igt@[email protected]
- shard-tglb: [PASS][11] -> [FAIL][12] ([i915#1899])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb7/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb3/igt@[email protected]
* 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@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb4/igt@[email protected]
* 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@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl1/igt@[email protected]
* 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@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl6/igt@[email protected]
* 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@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@[email protected]
* 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@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl6/igt@[email protected]
- shard-glk: [PASS][27] -> [SKIP][28] ([fdo#109271])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-glk6/igt@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk7/igt@[email protected]
- shard-iclb: [PASS][29] -> [SKIP][30] ([i915#405])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-iclb3/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb5/igt@[email protected]
- shard-hsw: [PASS][31] -> [SKIP][32] ([fdo#109271])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw1/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw2/igt@[email protected]
- shard-kbl: [PASS][33] -> [SKIP][34] ([fdo#109271])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-kbl4/igt@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl7/igt@[email protected]
- shard-tglb: [PASS][35] -> [SKIP][36] ([i915#405])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-tglb2/igt@[email protected]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@[email protected]
#### 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@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl1/igt@gem_ctx_isolation@[email protected]
* 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@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk3/igt@[email protected]
* 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@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb2/igt@[email protected]
* 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@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb5/igt@[email protected]
* 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@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl7/igt@i915_selftest@[email protected]
* 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@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk4/igt@[email protected]
* 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@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-glk7/igt@kms_flip@[email protected]
* 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@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb1/igt@kms_flip@[email protected]
* 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@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl2/igt@[email protected]
* 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@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl1/igt@[email protected]
* 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@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-tglb2/igt@[email protected]
* 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@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-apl2/igt@[email protected]
* 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@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw2/igt@[email protected]
* 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@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw8/igt@prime_busy@[email protected]
#### 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@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb5/igt@[email protected]
* 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@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb2/igt@[email protected]
* 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@[email protected]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb4/igt@[email protected]
* 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@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-kbl2/igt@[email protected]
* 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@[email protected]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-iclb5/igt@[email protected]
* 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@[email protected]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-snb2/igt@[email protected]
* 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@[email protected]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw8/igt@[email protected]
* 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@[email protected]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8901/shard-hsw7/igt@[email protected]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4892/shard-hsw1/igt@[email protected]
{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
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoted 62 lines · Lyude
From: Lyude Paul <[email protected]>
There's been a TODO sitting in the
kms_planetest 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 genericconvert_fb_for_mode()function that allows us to create a colored FB, either with or without a series of 64x64 rectangles, and use that intest_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 fromtest_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_COVEREDenum toTEST_POSITION_PARTIALLY_COVERED, so tests which don't explicitly specify partial positioning don't get it in their reference fbs.v2:
* RebaseSigned-off-by Lyude Paul <[email protected]>--- tests/kms_plane.c | 164 +++++++++++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 73 deletions(-)tests/kms_plane.c +13
-0@@ -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 , +}; +
tests/kms_plane.c static void test_fini(data_t *data) · line 96
Quoted 10 lines
tests/kms_plane.c +10
-0+/* +* 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.
Quoted 42 lines
tests/kms_plane.c +26
-7+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);
tests/kms_plane.c test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe, · line 146
Quoted 10 lines
tests/kms_plane.c +10
-0+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.
Quoted 93 lines
tests/kms_plane.c +14
-39+ } +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,
tests/kms_plane.c test_plane_position_with_output(data_t *data, · line 218
Quoted 10 lines
tests/kms_plane.c +5
-5-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.
Quoted 5 lines
tests/kms_plane.c +0
-3igt_plane_set_fb (sprite, &sprite_fb); -if (flags &TEST_POSITION_FULLY_COVERED ) -igt_plane_set_position (sprite,100 ,100 ); -else
tests/kms_plane.c test_plane_position_with_output(data_t *data, · line 230
Quoted 10 lines
tests/kms_plane.c +4
-0+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);
🎉
Quoted 61 lines
tests/kms_plane.c +6
-18if (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 );
tests/kms_plane.c run_tests_for_pipe_plane(data_t *data, enum pipe pipe) · line 993
Quoted 10 lines
tests/kms_plane.c +3
-1igt_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:
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoted 242 lines · Jeremy Cline
Quoted 67 lines · Lyude
From: Lyude Paul <[email protected]>
There's been a TODO sitting in the
kms_planetest 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 genericconvert_fb_for_mode()function that allows us to create a colored FB, either with or without a series of 64x64 rectangles, and use that intest_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 fromtest_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_COVEREDenum toTEST_POSITION_PARTIALLY_COVERED, so tests which don't explicitly specify partial positioning don't get it in their reference fbs.v2:
* RebaseSigned-off-by Lyude Paul <[email protected]>--- tests/kms_plane.c | 164 +++++++++++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 73 deletions(-)tests/kms_plane.c +15
-0@@ -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)
+ */tests/kms_plane.c static void test_fini(data_t *data) · line 96
Quoted 6 lines
tests/kms_plane.c +6
-0+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 withigt_create_fb()and friends for the sake of familiarity and consistency. The others also return thefb_idor 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.
Quoted 43 lines
tests/kms_plane.c +26
-7+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, enumpipe 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);tests/kms_plane.c test_grab_crc(data_t *data, igt_output_t *output, enum · line 147
Quoted 10 lines
tests/kms_plane.c +10
-0+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.Quoted 100 lines
tests/kms_plane.c +6
-3+ } +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, enumpipe 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
*/tests/kms_plane.c +2
-34@@ -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);
Quoted 14 lines
tests/kms_plane.c test_plane_position_with_output(data_t *data, · line 218
Quoted 11 lines
tests/kms_plane.c +5
-5igt_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
Quoted 98 lines
Quoted 6 lines
tests/kms_plane.c +0
-3igt_plane_set_fb (sprite, &sprite_fb); -if (flags &TEST_POSITION_FULLY_COVERED ) -igt_plane_set_position (sprite,100 ,100 ); -else tests/kms_plane.c test_plane_position_with_output(data_t *data, · line 230
Quoted 10 lines
tests/kms_plane.c +4
-0+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);🎉
Quoted 64 lines
tests/kms_plane.c +1
-8if (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++)tests/kms_plane.c +0
-6test_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,tests/kms_plane.c +2
-2enum 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++)tests/kms_plane.c +3
-2test_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 );tests/kms_plane.c run_tests_for_pipe_plane(data_t *data, enum pipe pipe) · line 993
Quoted 10 lines
tests/kms_plane.c +3
-1igt_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 <[email protected]>
Signature · 8 lines
Sincerely,
Lyude Paul (she/her)
Software Engineer at Red Hat
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-devQuoted 258 lines · Lyude Paul
Quoted 242 lines · Jeremy Cline
Quoted 67 lines · Lyude
From: Lyude Paul <[email protected]>
There's been a TODO sitting in the
kms_planetest 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 genericconvert_fb_for_mode()function that allows us to create a colored FB, either with or without a series of 64x64 rectangles, and use that intest_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 fromtest_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_COVEREDenum toTEST_POSITION_PARTIALLY_COVERED, so tests which don't explicitly specify partial positioning don't get it in their reference fbs.v2:
* RebaseSigned-off-by Lyude Paul <[email protected]>--- tests/kms_plane.c | 164 +++++++++++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 73 deletions(-)tests/kms_plane.c +15
-0@@ -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)
+ */tests/kms_plane.c static void test_fini(data_t *data) · line 96
Quoted 6 lines
tests/kms_plane.c +6
-0+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 withigt_create_fb()and friends for the sake of familiarity and consistency. The others also return thefb_idor 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.
Quoted 43 lines
tests/kms_plane.c +26
-7+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, enumpipe 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);tests/kms_plane.c test_grab_crc(data_t *data, igt_output_t *output, enum · line 147
Quoted 10 lines
tests/kms_plane.c +10
-0+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.Quoted 100 lines
tests/kms_plane.c +6
-3+ } +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, enumpipe 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
*/tests/kms_plane.c +2
-34@@ -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);Quoted 14 lines
tests/kms_plane.c test_plane_position_with_output(data_t *data, · line 218
Quoted 11 lines
tests/kms_plane.c +5
-5igt_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.
Quoted 3 lines
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.
Signature · 5 lines
Petri Latvala _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev