kms_rotation_crc: 90 degree flip test is not a stress test
PATCH v2 1/1 kms_rotation_crc: 90 degree flip test is not a stress test
From: Tvrtko Ursulin <[email protected]>
To the best of my recollection the page flipping test was added simply to start exercising page flips with 90/270 rotation.
There is no need to do 60 flips which can take quite some time, because we do 60 flips against each pipe and each fb geometry.
Also, calling this a stress test is also not matching the original idea of the test.
Several changes:
1. Remove the stress from the name and reduce the number of flips to one only.
2. Move the page flip before CRC collection for a more useful test.
3. Add more flipping tests, for different rotation and sprite planes.
4. Convert to table driven subtest generation.
--- tests/intel-ci/extended.testlist | 2 +- tests/kms_rotation_crc.c | 137 ++++++++++++++++++++++++--------------- 2 files changed, 85 insertions(+), 54 deletions(-)
tests/intel-ci/extended.testlist +1 -1
@@ -82,7 +82,7 @@ igt@gem_ringfill@vebox-bomb igt@gem_userptr_blits@stress-mm igt@gem_userptr_blits@stress-mm-invalidate-close igt@gem_userptr_blits@stress-mm-invalidate-close-overlap -igt@kms_rotation_crc@primary-rotation-90-flip-stress +igt@kms_rotation_crc@primary-rotation-90-flip igt@pm_rpm@gem-execbuf-stress igt@pm_rpm@gem-execbuf-stress-extra-wait igt@pm_rpm@gem-execbuf-stress-pc8
tests/kms_rotation_crc.c +84 -53
184 lines not on this page · raw message
Signature · 6 lines
2.9.4 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH v3 1/1 kms_rotation_crc: 90 degree flip test is not a stress test
From: Tvrtko Ursulin <[email protected]>
To the best of my recollection the page flipping test was added simply to start exercising page flips with 90/270 rotation.
There is no need to do 60 flips which can take quite some time, because we do 60 flips against each pipe and each fb geometry.
Also, calling this a stress test is also not matching the original idea of the test.
v2:
Several changes:
1. Remove the stress from the name and reduce the number of flips to one only.
2. Move the page flip before CRC collection for a more useful test.
3. Add more flipping tests, for different rotation and sprite planes.
4. Convert to table driven subtest generation.
v3: Remove extended.testlist from the patch.
--- tests/kms_rotation_crc.c | 137 +++++++++++++++++++++++++++++------------------ 1 file changed, 84 insertions(+), 53 deletions(-)
tests/kms_rotation_crc.c +84 -53
@@ -41,7 +41,7 @@ typedef struct {int pos_y;uint32_t override_fmt;uint64_t override_tiling; -unsigned int flip_stress; +unsigned int flips; } data_t; static void
@@ -219,7 +219,7 @@ static void prepare_fbs(data_t *data, igt_output_t *output,igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb); -if (data->flip_stress) { +if (data->flips) {igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb_flip);paint_squares (data,IGT_ROTATION_0 , &data->fb_flip,0.92 ); }
@@ -351,15 +351,17 @@ static void test_plane_rotation(data_t *data, int plane_type) ret =igt_display_try_commit2 (display, commit);if (data->override_fmt || data->override_tiling) {igt_assert_eq (ret, -EINVAL ); - }else { -igt_assert_eq (ret,0 ); -igt_pipe_crc_collect_crc (data->pipe_crc, - &crc_output); -igt_assert_crc_equal (&data->ref_crc, - &crc_output); +continue ; } - flip_count = data->flip_stress; +/* Verify commit was ok. */ +igt_assert_eq (ret,0 ); + +/* +* If flips are requested flip away and back before +* checking CRC. +*/ + flip_count = data->flips;while (flip_count--) { ret = drmModePageFlip(data->gfx_fd, output->config.crtc->crtc_id,
@@ -376,6 +378,9 @@ static void test_plane_rotation(data_t *data, int plane_type)igt_assert_eq (ret,0 );wait_for_pageflip (data->gfx_fd); } + +igt_pipe_crc_collect_crc (data->pipe_crc, &crc_output); +igt_assert_crc_equal (&data->ref_crc, &crc_output); } valid_tests++;
@@ -569,8 +574,66 @@ err_commit:igt_assert_eq (ret,0 ); } +static const char *plane_test_str (unsigned plane) +{ +switch (plane) { +case DRM_PLANE_TYPE_PRIMARY : +return "primary" ; +case DRM_PLANE_TYPE_OVERLAY : +return "sprite" ; +case DRM_PLANE_TYPE_CURSOR : +return "cursor" ; +default : +igt_assert (0 ); + } +} + +static const char *rot_test_str (igt_rotation_t rot) +{ +switch (rot) { +case IGT_ROTATION_90 : +return "90" ; +case IGT_ROTATION_180 : +return "180" ; +case IGT_ROTATION_270 : +return "270" ; +default : +igt_assert (0 ); + } +} + +static const char *flip_test_str (unsigned flips) +{ +if (flips >1 ) +return "-flip-stress" ; +else if (flips) +return "-flip" ; +else +return "" ; +} + igt_main { +struct rot_subtest { +unsigned plane; +igt_rotation_t rot; +unsigned flips; + } *subtest, subtests[] = { + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_90 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_180 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_270 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_90 ,1 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_180 ,1 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_270 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_90 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_180 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_270 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_90 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_180 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_270 ,1 }, + {DRM_PLANE_TYPE_CURSOR ,IGT_ROTATION_180 ,0 }, + {0 ,0 ,0 } + };data_t data = {};int gen =0 ;
@@ -586,43 +649,19 @@ igt_mainigt_display_init (&data.display, data.gfx_fd); } - igt_subtest_f("primary-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - - igt_subtest_f("sprite-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); - } - - igt_subtest_f("cursor-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_CURSOR ); - } - - igt_subtest_f("primary-rotation-90") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - igt_subtest_f("primary-rotation-270") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_270 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - - igt_subtest_f("sprite-rotation-90") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); - } - - igt_subtest_f("sprite-rotation-270") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_270 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); +for (subtest = subtests; subtest->rot; subtest++) { +igt_subtest_f ("%s-rotation-%s%s" , +plane_test_str (subtest->plane), +rot_test_str (subtest->rot), + flip_test_str(subtest->flips)) { +igt_require (!(subtest->rot & + (IGT_ROTATION_90 |IGT_ROTATION_270 )) || + gen >=9 ); + data.rotation = subtest->rot; + data.flips = subtest->flips; +test_plane_rotation (&data, subtest->plane); + } } igt_subtest_f("sprite-rotation-90-pos-100-0") {
@@ -650,14 +689,6 @@ igt_maintest_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); } - igt_subtest_f("primary-rotation-90-flip-stress") { -igt_require (gen >=9 ); - data.override_tiling =0 ; - data.flip_stress =60 ; - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - igt_subtest_f("primary-rotation-90-Y-tiled") {enum pipe pipe;igt_output_t *output;
Signature · 6 lines
2.9.5 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoting Tvrtko Ursulin (2017-09-08 12:24:07)
Quoted 10 lines
From: Tvrtko Ursulin <[email protected]>
To the best of my recollection the page flipping test was added simply to start exercising page flips with 90/270 rotation.
There is no need to do 60 flips which can take quite some time, because we do 60 flips against each pipe and each fb geometry.
Also, calling this a stress test is also not matching the original idea of the test.
Thanks for making it easy for me to follow! Sounds great.
Quoted 58 lines
v2:
Several changes:
1. Remove the stress from the name and reduce the number of flips to one only.
2. Move the page flip before CRC collection for a more useful test.
3. Add more flipping tests, for different rotation and sprite planes.
4. Convert to table driven subtest generation.
v3: Remove extended.testlist from the patch.
Signed-off-by Tvrtko Ursulin <[email protected]>Cc Daniel Vetter <[email protected]>Cc Chris Wilson <[email protected]>Cc Katarzyna Dec <[email protected]>--- tests/kms_rotation_crc.c | 137 +++++++++++++++++++++++++++++------------------ 1 file changed, 84 insertions(+), 53 deletions(-)tests/kms_rotation_crc.c +2
-8@@ -41,7 +41,7 @@ typedef struct {int pos_y;uint32_t override_fmt;uint64_t override_tiling; -unsigned int flip_stress; +unsigned int flips; } data_t; static void@@ -219,7 +219,7 @@ static void prepare_fbs(data_t *data, igt_output_t *output,igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb); -if (data->flip_stress) { +if (data->flips) {igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb_flip);paint_squares (data,IGT_ROTATION_0 , &data->fb_flip,0.92 ); }@@ -351,15 +351,17 @@ static void test_plane_rotation(data_t *data, int plane_type) ret =igt_display_try_commit2 (display, commit);if (data->override_fmt || data->override_tiling) {igt_assert_eq (ret, -EINVAL ); - }else { -igt_assert_eq (ret,0 ); -igt_pipe_crc_collect_crc (data->pipe_crc, - &crc_output); -igt_assert_crc_equal (&data->ref_crc, - &crc_output);
tests/kms_rotation_crc.c static void test_plane_rotation(data_t *data, int plane_type) · line 362
Quoted 10 lines
tests/kms_rotation_crc.c +7
-1+continue ; } - flip_count = data->flip_stress; +/* Verify commit was ok. */ +igt_assert_eq (ret,0 ); + +/* +* If flips are requested flip away and back before +* checking CRC.
And back? We only check of the original framebuffer and not the rotated? Or am I missing the point...
Quoted 16 lines
tests/kms_rotation_crc.c +5
-0+*/ + flip_count = data->flips;while (flip_count--) { ret = drmModePageFlip(data->gfx_fd, output->config.crtc->crtc_id,@@ -376,6 +378,9 @@ static void test_plane_rotation(data_t *data, int plane_type)igt_assert_eq (ret,0 );wait_for_pageflip (data->gfx_fd); } + +igt_pipe_crc_collect_crc (data->pipe_crc, &crc_output); +igt_assert_crc_equal (&data->ref_crc, &crc_output); } valid_tests++;
tests/kms_rotation_crc.c err_commit: · line 575
Quoted 2 lines
tests/kms_rotation_crc.c +0
-0@@ -569,8 +574,66 @@ err_commit:igt_assert_eq (ret,0 ); }
Consolidation looks good, and the above changes make sense, but the comment makes me wonder if there is another CRC check we could do.
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoted 75 lines · Chris Wilson
Quoting Tvrtko Ursulin (2017-09-08 12:24:07)
Quoted 10 lines
From: Tvrtko Ursulin <[email protected]>
To the best of my recollection the page flipping test was added simply to start exercising page flips with 90/270 rotation.
There is no need to do 60 flips which can take quite some time, because we do 60 flips against each pipe and each fb geometry.
Also, calling this a stress test is also not matching the original idea of the test.
Thanks for making it easy for me to follow! Sounds great.
Quoted 61 lines
v2:
Several changes:
1. Remove the stress from the name and reduce the number of flips to one only.
2. Move the page flip before CRC collection for a more useful test.
3. Add more flipping tests, for different rotation and sprite planes.
4. Convert to table driven subtest generation.
v3: Remove extended.testlist from the patch.
Signed-off-by Tvrtko Ursulin <[email protected]>Cc Daniel Vetter <[email protected]>Cc Chris Wilson <[email protected]>Cc Katarzyna Dec <[email protected]>--- tests/kms_rotation_crc.c | 137 +++++++++++++++++++++++++++++------------------ 1 file changed, 84 insertions(+), 53 deletions(-)tests/kms_rotation_crc.c +3
-8@@ -41,7 +41,7 @@ typedef struct {int pos_y;uint32_t override_fmt;uint64_t override_tiling; -unsigned int flip_stress; +unsigned int flips; } data_t; static void@@ -219,7 +219,7 @@ static void prepare_fbs(data_t *data, igt_output_t *output,igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb); -if (data->flip_stress) { +if (data->flips) {igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb_flip);paint_squares (data,IGT_ROTATION_0 , &data->fb_flip,0.92 ); }@@ -351,15 +351,17 @@ static void test_plane_rotation(data_t *data, int plane_type) ret =igt_display_try_commit2 (display, commit);if (data->override_fmt || data->override_tiling) {igt_assert_eq (ret, -EINVAL ); - }else { -igt_assert_eq (ret,0 ); -igt_pipe_crc_collect_crc (data->pipe_crc, - &crc_output); -igt_assert_crc_equal (&data->ref_crc, - &crc_output); +continue ; }
Quoted 10 lines
tests/kms_rotation_crc.c static void test_plane_rotation(data_t *data, int plane_type) · line 362
Quoted 7 lines
tests/kms_rotation_crc.c +6
-1- flip_count = data->flip_stress; +/* Verify commit was ok. */ +igt_assert_eq (ret,0 ); + +/* +* If flips are requested flip away and back before +* checking CRC. And back? We only check of the original framebuffer and not the rotated? Or am I missing the point...
Yes, hm, it would be really bad if both flips silently did nothing, but the last CRC would still match. So yes, still a holey hole there.
(Note we are not changing rotation with the flip here, just flipping between two equally rotated fbs.)
I can see two options:
a) Stick a crc not equal assert in between the flips.
b) Collect a second CRC and check both.
I will have to asses the runtime impact of all the options. At the moment test setup time is quite long. Is it CRC collection, or modeset..
Quoted 22 lines
Quoted 16 lines
tests/kms_rotation_crc.c +5
-0+*/ + flip_count = data->flips;while (flip_count--) { ret = drmModePageFlip(data->gfx_fd, output->config.crtc->crtc_id,@@ -376,6 +378,9 @@ static void test_plane_rotation(data_t *data, int plane_type)igt_assert_eq (ret,0 );wait_for_pageflip (data->gfx_fd); } + +igt_pipe_crc_collect_crc (data->pipe_crc, &crc_output); +igt_assert_crc_equal (&data->ref_crc, &crc_output); } valid_tests++;tests/kms_rotation_crc.c err_commit: · line 575
Quoted 2 lines
tests/kms_rotation_crc.c +0
-0@@ -569,8 +574,66 @@ err_commit:igt_assert_eq (ret,0 ); }Consolidation looks good, and the above changes make sense, but the comment makes me wonder if there is another CRC check we could do.
Quoted 1 line
Reviewed-by Chris Wilson <[email protected].
Thanks.
Regards,
Tvrtko
Quoted 6 lines
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoting Tvrtko Ursulin (2017-09-08 15:54:18)
Quoted 8 lines · Chris Wilson
Quoted 6 lines
Quoting Tvrtko Ursulin (2017-09-08 12:24:07)
Quoted 4 lines
From: Tvrtko Ursulin <[email protected]>
tests/kms_rotation_crc.c +3
-0+/* +* If flips are requested flip away and back before +* checking CRC.
Quoted 8 lines
Quoted 2 lines
And back? We only check of the original framebuffer and not the rotated? Or am I missing the point...
Yes, hm, it would be really bad if both flips silently did nothing, but the last CRC would still match. So yes, still a holey hole there.
(Note we are not changing rotation with the flip here, just flipping between two equally rotated fbs.)
Although with pageflips mapped through to a nonblocking modeset, there shouldn't be any problems now with flipping to a new rotation, stride, format, etc. I guess they are all checked somewhere, but I also guess that somewhere is here ;)
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH v4 1/1 kms_rotation_crc: 90 degree flip test is not a stress test
In reply to Tvrtko UrsulinFrom: Tvrtko Ursulin <[email protected]>
To the best of my recollection the page flipping test was added simply to start exercising page flips with 90/270 rotation.
There is no need to do 60 flips which can take quite some time, because we do 60 flips against each pipe and each fb geometry.
Also, calling this a stress test is also not matching the original idea of the test.
v2:
Several changes:
1. Remove the stress from the name and reduce the number of flips to one only.
2. Move the page flip before CRC collection for a more useful test.
3. Add more flipping tests, for different rotation and sprite planes.
4. Convert to table driven subtest generation.
v3: Remove extended.testlist from the patch.
v4:
Collect a flip fb crc and check it after flip. This way we test not only the flip succeeded but the right image is displayed.
--- tests/kms_rotation_crc.c | 194 +++++++++++++++++++++++++++++------------------ 1 file changed, 122 insertions(+), 72 deletions(-)
tests/kms_rotation_crc.c +122 -72
@@ -35,13 +35,14 @@ typedef struct {struct igt_fb fb_modeset;struct igt_fb fb_flip;igt_crc_t ref_crc; +igt_crc_t flip_crc;igt_pipe_crc_t *pipe_crc;igt_rotation_t rotation;int pos_x;int pos_y;uint32_t override_fmt;uint64_t override_tiling; -unsigned int flip_stress; +bool flips; } data_t; static void
@@ -163,6 +164,7 @@ static void prepare_fbs(data_t *data, igt_output_t *output,unsigned int w, h, ref_w, ref_h, min_w, min_h;uint64_t tiling = data->override_tiling ?:LOCAL_DRM_FORMAT_MOD_NONE ;uint32_t pixel_format = data->override_fmt ?:DRM_FORMAT_XRGB8888 ; +const float flip_opacity =0.75 ;if (data->fb.fb_id) {igt_plane_set_fb (plane,NULL );
@@ -219,12 +221,28 @@ static void prepare_fbs(data_t *data, igt_output_t *output,igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb); -if (data->flip_stress) { -igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb_flip); -paint_squares (data,IGT_ROTATION_0 , &data->fb_flip,0.92 ); +igt_plane_set_rotation (plane,IGT_ROTATION_0 ); + +/* +* Create a reference software rotated flip framebuffer. +*/ +if (data->flips) { +igt_create_fb (data->gfx_fd, ref_w, ref_h, pixel_format, tiling, + &data->fb_flip); +paint_squares (data, data->rotation, &data->fb_flip, + flip_opacity); +igt_plane_set_fb (plane, &data->fb_flip); +if (plane->type !=DRM_PLANE_TYPE_CURSOR ) +igt_plane_set_position (plane, data->pos_x, data->pos_y); +igt_display_commit2 (display, + display->is_atomic ? +COMMIT_ATOMIC :COMMIT_UNIVERSAL ); +igt_pipe_crc_collect_crc (data->pipe_crc, &data->flip_crc); } -/* Step 1: create a reference CRC for a software-rotated fb */ +/* +* Create a reference CRC for a software-rotated fb. +*/ igt_create_fb (data->gfx_fd, ref_w, ref_h, pixel_format, data->override_tiling ?:LOCAL_DRM_FORMAT_MOD_NONE , &data->fb_reference);paint_squares (data, data->rotation, &data->fb_reference,1.0 );
@@ -232,20 +250,30 @@ static void prepare_fbs(data_t *data, igt_output_t *output,igt_plane_set_fb (plane, &data->fb_reference);if (plane->type !=DRM_PLANE_TYPE_CURSOR )igt_plane_set_position (plane, data->pos_x, data->pos_y); -igt_plane_set_rotation (plane,IGT_ROTATION_0 );igt_display_commit2 (display, display->is_atomic ?COMMIT_ATOMIC :COMMIT_UNIVERSAL );igt_pipe_crc_collect_crc (data->pipe_crc, &data->ref_crc);/* -* Step 2: prepare the plane with an non-rotated fb let the hw -* rotate it. +* Prepare the plane with an non-rotated fb let the hw rotate it. */ paint_squares (data,IGT_ROTATION_0 , &data->fb,1.0 );igt_plane_set_fb (plane, &data->fb);if (plane->type !=DRM_PLANE_TYPE_CURSOR )igt_plane_set_position (plane, data->pos_x, data->pos_y); + +/* +* Prepare the non-rotated flip fb. +*/ +if (data->flips) { +igt_remove_fb (data->gfx_fd, &data->fb_flip); +igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, + &data->fb_flip); +paint_squares (data,IGT_ROTATION_0 , &data->fb_flip, + flip_opacity); + } + }static void cleanup_crtc (data_t *data,igt_output_t *output,igt_plane_t *plane)
@@ -300,9 +328,8 @@ static void test_plane_rotation(data_t *data, int plane_type)igt_output_t *output;enum pipe pipe;int valid_tests =0 ; -igt_crc_t crc_output, crc_unrotated; +igt_crc_t crc_output;enum igt_commit_style commit =COMMIT_LEGACY ; -unsigned int flip_count;int ret;if (plane_type ==DRM_PLANE_TYPE_PRIMARY || plane_type ==DRM_PLANE_TYPE_CURSOR )
@@ -341,9 +368,6 @@ static void test_plane_rotation(data_t *data, int plane_type)igt_display_commit2 (display, commit); -/* collect unrotated CRC */ -igt_pipe_crc_collect_crc (data->pipe_crc, &crc_unrotated); -igt_plane_set_rotation (plane, data->rotation);if (data->rotation ==IGT_ROTATION_90 || data->rotation ==IGT_ROTATION_270 )igt_plane_set_size (plane, data->fb.height, data->fb.width);
@@ -351,16 +375,21 @@ static void test_plane_rotation(data_t *data, int plane_type) ret =igt_display_try_commit2 (display, commit);if (data->override_fmt || data->override_tiling) {igt_assert_eq (ret, -EINVAL ); - }else { -igt_assert_eq (ret,0 ); -igt_pipe_crc_collect_crc (data->pipe_crc, - &crc_output); -igt_assert_crc_equal (&data->ref_crc, - &crc_output); +continue ; } - flip_count = data->flip_stress; -while (flip_count--) { +/* Verify commit was ok. */ +igt_assert_eq (ret,0 ); + +/* Check CRC */ +igt_pipe_crc_collect_crc (data->pipe_crc, &crc_output); +igt_assert_crc_equal (&data->ref_crc, &crc_output); + +/* +* If flips are requested flip to a different fb and +* check CRC against that one as well. +*/ +if (data->flips) { ret = drmModePageFlip(data->gfx_fd, output->config.crtc->crtc_id, data->fb_flip.fb_id,
@@ -368,13 +397,10 @@ static void test_plane_rotation(data_t *data, int plane_type) NULL);igt_assert_eq (ret,0 );wait_for_pageflip (data->gfx_fd); - ret =drmModePageFlip (data->gfx_fd, - output->config.crtc->crtc_id, - data->fb.fb_id, -DRM_MODE_PAGE_FLIP_EVENT , -NULL ); -igt_assert_eq (ret,0 ); -wait_for_pageflip (data->gfx_fd); +igt_pipe_crc_collect_crc (data->pipe_crc, + &crc_output); +igt_assert_crc_equal (&data->flip_crc, + &crc_output); } }
@@ -569,8 +595,64 @@ err_commit:igt_assert_eq (ret,0 ); } +static const char *plane_test_str (unsigned plane) +{ +switch (plane) { +case DRM_PLANE_TYPE_PRIMARY : +return "primary" ; +case DRM_PLANE_TYPE_OVERLAY : +return "sprite" ; +case DRM_PLANE_TYPE_CURSOR : +return "cursor" ; +default : +igt_assert (0 ); + } +} + +static const char *rot_test_str (igt_rotation_t rot) +{ +switch (rot) { +case IGT_ROTATION_90 : +return "90" ; +case IGT_ROTATION_180 : +return "180" ; +case IGT_ROTATION_270 : +return "270" ; +default : +igt_assert (0 ); + } +} + +static const char *flip_test_str (unsigned flips) +{ +if (flips) +return "-flip" ; +else +return "" ; +} + igt_main { +struct rot_subtest { +unsigned plane; +igt_rotation_t rot; +unsigned flips; + } *subtest, subtests[] = { + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_90 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_180 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_270 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_90 ,1 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_180 ,1 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_270 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_90 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_180 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_270 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_90 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_180 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_270 ,1 }, + {DRM_PLANE_TYPE_CURSOR ,IGT_ROTATION_180 ,0 }, + {0 ,0 ,0 } + };data_t data = {};int gen =0 ;
@@ -586,43 +668,19 @@ igt_mainigt_display_init (&data.display, data.gfx_fd); } - igt_subtest_f("primary-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - - igt_subtest_f("sprite-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); - } - - igt_subtest_f("cursor-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_CURSOR ); - } - - igt_subtest_f("primary-rotation-90") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - igt_subtest_f("primary-rotation-270") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_270 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - - igt_subtest_f("sprite-rotation-90") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); - } - - igt_subtest_f("sprite-rotation-270") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_270 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); +for (subtest = subtests; subtest->rot; subtest++) { +igt_subtest_f ("%s-rotation-%s%s" , +plane_test_str (subtest->plane), +rot_test_str (subtest->rot), + flip_test_str(subtest->flips)) { +igt_require (!(subtest->rot & + (IGT_ROTATION_90 |IGT_ROTATION_270 )) || + gen >=9 ); + data.rotation = subtest->rot; + data.flips = subtest->flips; +test_plane_rotation (&data, subtest->plane); + } } igt_subtest_f("sprite-rotation-90-pos-100-0") {
@@ -650,14 +708,6 @@ igt_maintest_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); } - igt_subtest_f("primary-rotation-90-flip-stress") { -igt_require (gen >=9 ); - data.override_tiling =0 ; - data.flip_stress =60 ; - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - igt_subtest_f("primary-rotation-90-Y-tiled") {enum pipe pipe;igt_output_t *output;
Signature · 6 lines
2.9.5 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoted 24 lines · Tvrtko Ursulin
From: Tvrtko Ursulin <[email protected]>
To the best of my recollection the page flipping test was added simply to start exercising page flips with 90/270 rotation.
There is no need to do 60 flips which can take quite some time, because we do 60 flips against each pipe and each fb geometry.
Also, calling this a stress test is also not matching the original idea of the test.
v2:
Several changes:
1. Remove the stress from the name and reduce the number of flips to one only.
2. Move the page flip before CRC collection for a more useful test.
3. Add more flipping tests, for different rotation and sprite planes.
Quoted 8 lines
4. Convert to table driven subtest generation.
v3: Remove extended.testlist from the patch.
v4:
Collect a flip fb crc and check it after flip. This way we test not only the flip succeeded but the right image is displayed.
For now it looks like sprite-rotation-X-flip tests are failing by this assert.
Otherwise:
Quoted 313 lines
Signed-off-by Tvrtko Ursulin <[email protected]>Cc Daniel Vetter <[email protected]>Cc Chris Wilson <[email protected]>Cc Katarzyna Dec <[email protected]>Reviewed-by Chris Wilson <[email protected]> (v3)--- tests/kms_rotation_crc.c | 194 +++++++++++++++++++++++++++++------------------ 1 file changed, 122 insertions(+), 72 deletions(-)tests/kms_rotation_crc.c +122
-72@@ -35,13 +35,14 @@ typedef struct {struct igt_fb fb_modeset;struct igt_fb fb_flip;igt_crc_t ref_crc; +igt_crc_t flip_crc;igt_pipe_crc_t *pipe_crc;igt_rotation_t rotation;int pos_x;int pos_y;uint32_t override_fmt;uint64_t override_tiling; -unsigned int flip_stress; +bool flips; } data_t; static void@@ -163,6 +164,7 @@ static void prepare_fbs(data_t *data, igt_output_t *output,unsigned int w, h, ref_w, ref_h, min_w, min_h;uint64_t tiling = data->override_tiling ?:LOCAL_DRM_FORMAT_MOD_NONE ;uint32_t pixel_format = data->override_fmt ?:DRM_FORMAT_XRGB8888 ; +const float flip_opacity =0.75 ;if (data->fb.fb_id) {igt_plane_set_fb (plane,NULL );@@ -219,12 +221,28 @@ static void prepare_fbs(data_t *data, igt_output_t *output,igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb); -if (data->flip_stress) { -igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, &data->fb_flip); -paint_squares (data,IGT_ROTATION_0 , &data->fb_flip,0.92 ); +igt_plane_set_rotation (plane,IGT_ROTATION_0 ); + +/* +* Create a reference software rotated flip framebuffer. +*/ +if (data->flips) { +igt_create_fb (data->gfx_fd, ref_w, ref_h, pixel_format, tiling, + &data->fb_flip); +paint_squares (data, data->rotation, &data->fb_flip, + flip_opacity); +igt_plane_set_fb (plane, &data->fb_flip); +if (plane->type !=DRM_PLANE_TYPE_CURSOR ) +igt_plane_set_position (plane, data->pos_x, data->pos_y); +igt_display_commit2 (display, + display->is_atomic ? +COMMIT_ATOMIC :COMMIT_UNIVERSAL ); +igt_pipe_crc_collect_crc (data->pipe_crc, &data->flip_crc); } -/* Step 1: create a reference CRC for a software-rotated fb */ +/* +* Create a reference CRC for a software-rotated fb. +*/ igt_create_fb (data->gfx_fd, ref_w, ref_h, pixel_format, data->override_tiling ?:LOCAL_DRM_FORMAT_MOD_NONE , &data->fb_reference);paint_squares (data, data->rotation, &data->fb_reference,1.0 );@@ -232,20 +250,30 @@ static void prepare_fbs(data_t *data, igt_output_t *output,igt_plane_set_fb (plane, &data->fb_reference);if (plane->type !=DRM_PLANE_TYPE_CURSOR )igt_plane_set_position (plane, data->pos_x, data->pos_y); -igt_plane_set_rotation (plane,IGT_ROTATION_0 );igt_display_commit2 (display, display->is_atomic ?COMMIT_ATOMIC :COMMIT_UNIVERSAL );igt_pipe_crc_collect_crc (data->pipe_crc, &data->ref_crc);/* -* Step 2: prepare the plane with an non-rotated fb let the hw -* rotate it. +* Prepare the plane with an non-rotated fb let the hw rotate it. */ paint_squares (data,IGT_ROTATION_0 , &data->fb,1.0 );igt_plane_set_fb (plane, &data->fb);if (plane->type !=DRM_PLANE_TYPE_CURSOR )igt_plane_set_position (plane, data->pos_x, data->pos_y); + +/* +* Prepare the non-rotated flip fb. +*/ +if (data->flips) { +igt_remove_fb (data->gfx_fd, &data->fb_flip); +igt_create_fb (data->gfx_fd, w, h, pixel_format, tiling, + &data->fb_flip); +paint_squares (data,IGT_ROTATION_0 , &data->fb_flip, + flip_opacity); + } + }static void cleanup_crtc (data_t *data,igt_output_t *output,igt_plane_t *plane)@@ -300,9 +328,8 @@ static void test_plane_rotation(data_t *data, int plane_type)igt_output_t *output;enum pipe pipe;int valid_tests =0 ; -igt_crc_t crc_output, crc_unrotated; +igt_crc_t crc_output;enum igt_commit_style commit =COMMIT_LEGACY ; -unsigned int flip_count;int ret;if (plane_type ==DRM_PLANE_TYPE_PRIMARY || plane_type ==DRM_PLANE_TYPE_CURSOR )@@ -341,9 +368,6 @@ static void test_plane_rotation(data_t *data, int plane_type)igt_display_commit2 (display, commit); -/* collect unrotated CRC */ -igt_pipe_crc_collect_crc (data->pipe_crc, &crc_unrotated); -igt_plane_set_rotation (plane, data->rotation);if (data->rotation ==IGT_ROTATION_90 || data->rotation ==IGT_ROTATION_270 )igt_plane_set_size (plane, data->fb.height, data->fb.width);@@ -351,16 +375,21 @@ static void test_plane_rotation(data_t *data, int plane_type) ret =igt_display_try_commit2 (display, commit);if (data->override_fmt || data->override_tiling) {igt_assert_eq (ret, -EINVAL ); - }else { -igt_assert_eq (ret,0 ); -igt_pipe_crc_collect_crc (data->pipe_crc, - &crc_output); -igt_assert_crc_equal (&data->ref_crc, - &crc_output); +continue ; } - flip_count = data->flip_stress; -while (flip_count--) { +/* Verify commit was ok. */ +igt_assert_eq (ret,0 ); + +/* Check CRC */ +igt_pipe_crc_collect_crc (data->pipe_crc, &crc_output); +igt_assert_crc_equal (&data->ref_crc, &crc_output); + +/* +* If flips are requested flip to a different fb and +* check CRC against that one as well. +*/ +if (data->flips) { ret = drmModePageFlip(data->gfx_fd, output->config.crtc->crtc_id, data->fb_flip.fb_id,@@ -368,13 +397,10 @@ static void test_plane_rotation(data_t *data, int plane_type) NULL);igt_assert_eq (ret,0 );wait_for_pageflip (data->gfx_fd); - ret =drmModePageFlip (data->gfx_fd, - output->config.crtc->crtc_id, - data->fb.fb_id, -DRM_MODE_PAGE_FLIP_EVENT , -NULL ); -igt_assert_eq (ret,0 ); -wait_for_pageflip (data->gfx_fd); +igt_pipe_crc_collect_crc (data->pipe_crc, + &crc_output); +igt_assert_crc_equal (&data->flip_crc, + &crc_output); } }@@ -569,8 +595,64 @@ err_commit:igt_assert_eq (ret,0 ); } +static const char *plane_test_str (unsigned plane) +{ +switch (plane) { +case DRM_PLANE_TYPE_PRIMARY : +return "primary" ; +case DRM_PLANE_TYPE_OVERLAY : +return "sprite" ; +case DRM_PLANE_TYPE_CURSOR : +return "cursor" ; +default : +igt_assert (0 ); + } +} + +static const char *rot_test_str (igt_rotation_t rot) +{ +switch (rot) { +case IGT_ROTATION_90 : +return "90" ; +case IGT_ROTATION_180 : +return "180" ; +case IGT_ROTATION_270 : +return "270" ; +default : +igt_assert (0 ); + } +} + +static const char *flip_test_str (unsigned flips) +{ +if (flips) +return "-flip" ; +else +return "" ; +} + igt_main { +struct rot_subtest { +unsigned plane; +igt_rotation_t rot; +unsigned flips; + } *subtest, subtests[] = { + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_90 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_180 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_270 ,0 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_90 ,1 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_180 ,1 }, + {DRM_PLANE_TYPE_PRIMARY ,IGT_ROTATION_270 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_90 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_180 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_270 ,0 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_90 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_180 ,1 }, + {DRM_PLANE_TYPE_OVERLAY ,IGT_ROTATION_270 ,1 }, + {DRM_PLANE_TYPE_CURSOR ,IGT_ROTATION_180 ,0 }, + {0 ,0 ,0 } + };data_t data = {};int gen =0 ;@@ -586,43 +668,19 @@ igt_mainigt_display_init (&data.display, data.gfx_fd); } - igt_subtest_f("primary-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - - igt_subtest_f("sprite-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); - } - - igt_subtest_f("cursor-rotation-180") { - data.rotation =IGT_ROTATION_180 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_CURSOR ); - } - - igt_subtest_f("primary-rotation-90") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - igt_subtest_f("primary-rotation-270") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_270 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - - igt_subtest_f("sprite-rotation-90") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); - } - - igt_subtest_f("sprite-rotation-270") { -igt_require (gen >=9 ); - data.rotation =IGT_ROTATION_270 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_OVERLAY ); +for (subtest = subtests; subtest->rot; subtest++) { +igt_subtest_f ("%s-rotation-%s%s" , +plane_test_str (subtest->plane), +rot_test_str (subtest->rot), + flip_test_str(subtest->flips)) { +igt_require (!(subtest->rot & + (IGT_ROTATION_90 |IGT_ROTATION_270 )) || + gen >=9 ); + data.rotation = subtest->rot; + data.flips = subtest->flips; +test_plane_rotation (&data, subtest->plane); + } } igt_subtest_f("sprite-rotation-90-pos-100-0") {@@ -650,14 +708,6 @@ igt_maintest_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); } - igt_subtest_f("primary-rotation-90-flip-stress") { -igt_require (gen >=9 ); - data.override_tiling =0 ; - data.flip_stress =60 ; - data.rotation =IGT_ROTATION_90 ; -test_plane_rotation (&data,DRM_PLANE_TYPE_PRIMARY ); - } - igt_subtest_f("primary-rotation-90-Y-tiled") {enum pipe pipe;igt_output_t *output;Signature · 1 line
2.9.5
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI✓ Fi.CI.BAT: success for kms_rotation_crc: 90 degree flip test is not a stress test (rev4)
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: kms_rotation_crc: 90 degree flip test is not a stress test (rev4)
URL : https://patchwork.freedesktop.org/series/28308/
State : success
== Summary ==
IGT patchset tested on top of latest successful build d5de89eb17938484718be1144f5957f05ab44dc2 lib/dummyload: Use -1 for all engines
with latest DRM-Tip kernel build CI_DRM_306116fef66706a3 drm-tip: 2017y-09m-08d-08h-41m-49s UTC integration manifest
Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-legacy:
pass -> FAIL (fi-snb-2600) fdo#100215fdo#100215 https://bugs.freedesktop.org/show_bug.cgi?id=100215
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:460s fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:445s fi-blb-e6850 total:289 pass:224 dwarn:1 dfail:0 fail:0 skip:64 time:369s fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:573s fi-bwr-2160 total:289 pass:184 dwarn:0 dfail:0 fail:0 skip:105 time:255s fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:529s fi-byt-j1900 total:289 pass:254 dwarn:1 dfail:0 fail:0 skip:34 time:528s fi-byt-n2820 total:289 pass:250 dwarn:1 dfail:0 fail:0 skip:38 time:519s fi-cfl-s total:289 pass:250 dwarn:4 dfail:0 fail:0 skip:35 time:469s fi-elk-e7500 total:289 pass:230 dwarn:0 dfail:0 fail:0 skip:59 time:432s fi-glk-2a total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:614s fi-hsw-4770 total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:452s fi-hsw-4770r total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:429s fi-ilk-650 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:427s fi-ivb-3520m total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:495s fi-ivb-3770 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:477s fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:515s fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:602s fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:600s fi-pnv-d510 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:529s fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:467s fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:535s fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:516s fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:448s fi-skl-x1585l total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:525s fi-snb-2520m total:289 pass:251 dwarn:0 dfail:0 fail:0 skip:38 time:559s fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:1 skip:39 time:407s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_166/
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI✗ Fi.CI.IGT: failure for kms_rotation_crc: 90 degree flip test is not a stress test (rev4)
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: kms_rotation_crc: 90 degree flip test is not a stress test (rev4)
URL : https://patchwork.freedesktop.org/series/28308/
State : failure
== Summary ==
Test kms_flip:
Subgroup wf_vblank-ts-check-interruptible:
fail -> PASS (shard-hsw) fdo#100368
Subgroup wf_vblank-vs-modeset:
pass -> DMESG-WARN (shard-hsw)
Test gem_eio:
Subgroup in-flight:
pass -> FAIL (shard-hsw) fdo#102616
Test gem_exec_params:
Subgroup invalid-flag:
pass -> SKIP (shard-hsw)
Test gem_exec_basic:
Subgroup readonly-default:
pass -> SKIP (shard-hsw)
Test pm_rpm:
Subgroup gem-execbuf-stress:
pass -> FAIL (shard-hsw)
Test gem_partial_pwrite_pread:
Subgroup write:
pass -> SKIP (shard-hsw)
Test perf:
Subgroup polling:
fail -> PASS (shard-hsw) fdo#102252fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102616 https://bugs.freedesktop.org/show_bug.cgi?id=102616
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
shard-hsw total:2307 pass:1235 dwarn:1 dfail:0 fail:13 skip:1058 time:9525s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_166/shards.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI✓ Fi.CI.BAT: success for kms_rotation_crc: 90 degree flip test is not a stress test (rev5)
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: kms_rotation_crc: 90 degree flip test is not a stress test (rev5)
URL : https://patchwork.freedesktop.org/series/28308/
State : success
== Summary ==
IGT patchset tested on top of latest successful build f9e0154630766b63617c64255a68e5129e233a4b igt/gem_evict_(alignment,everything): Limit to low 4G
with latest DRM-Tip kernel build CI_DRM_307231d271f5a5d0 drm-tip: 2017y-09m-11d-17h-13m-48s UTC integration manifest
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:449s fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:455s fi-blb-e6850 total:289 pass:224 dwarn:1 dfail:0 fail:0 skip:64 time:379s fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:542s fi-bwr-2160 total:289 pass:184 dwarn:0 dfail:0 fail:0 skip:105 time:271s fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:511s fi-byt-j1900 total:289 pass:254 dwarn:1 dfail:0 fail:0 skip:34 time:510s fi-byt-n2820 total:289 pass:250 dwarn:1 dfail:0 fail:0 skip:38 time:510s fi-cfl-s total:289 pass:250 dwarn:4 dfail:0 fail:0 skip:35 time:450s fi-elk-e7500 total:289 pass:230 dwarn:0 dfail:0 fail:0 skip:59 time:462s fi-glk-2a total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:598s fi-hsw-4770 total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:430s fi-hsw-4770r total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:405s fi-ilk-650 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:443s fi-ivb-3520m total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:498s fi-ivb-3770 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:476s fi-kbl-7500u total:289 pass:263 dwarn:1 dfail:0 fail:1 skip:24 time:482s fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:581s fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:591s fi-pnv-d510 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:554s fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:462s fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:522s fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:509s fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:468s fi-skl-x1585l total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:493s fi-snb-2520m total:289 pass:251 dwarn:0 dfail:0 fail:0 skip:38 time:582s fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:1 skip:39 time:434s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_171/
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI✗ Fi.CI.IGT: failure for kms_rotation_crc: 90 degree flip test is not a stress test (rev5)
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: kms_rotation_crc: 90 degree flip test is not a stress test (rev5)
URL : https://patchwork.freedesktop.org/series/28308/
State : failure
== Summary ==
Test gem_exec_capture:
Subgroup capture-render:
pass -> INCOMPLETE (shard-hsw)
Test gem_eio:
Subgroup in-flight:
pass -> FAIL (shard-hsw) fdo#102616fdo#102616 https://bugs.freedesktop.org/show_bug.cgi?id=102616
shard-hsw total:2276 pass:1217 dwarn:0 dfail:0 fail:15 skip:1043 time:9165s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_171/shards.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx