* [igt-dev] [PATCH i-g-t 1/2] tests/kms_big_fb: Run the test for a single pipe only
@ 2019-05-23 20:19 Ville Syrjala
2019-05-23 20:19 ` [igt-dev] [PATCH i-g-t 2/2] tests/kms_big_fb: Delay the expensive big fb creation until the last moment Ville Syrjala
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Ville Syrjala @ 2019-05-23 20:19 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
I think we can safely assume that if no plane on the first
available pipe supports the format+mod+rotation combo we
don't have to check on all the other pipes.
The only slight exception is CHV where pipe B has a few more
features, but none of those are actually relevant for this
test.
Also leave put the PIPE_ANY commit as that still causes
pointless modesets.
$ time kms_big_fb
- real 2m8.101s
+ real 0m52.902s
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tests/kms_big_fb.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index 2f898074ad54..c3520e225ab9 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -344,8 +344,6 @@ static bool test_pipe(data_t *data)
igt_pipe_crc_free(data->pipe_crc);
igt_output_set_pipe(data->output, PIPE_ANY);
- igt_display_commit2(&data->display, data->display.is_atomic ?
- COMMIT_ATOMIC : COMMIT_UNIVERSAL);
igt_remove_fb(data->drm_fd, &data->small_fb);
@@ -357,6 +355,7 @@ static void test_scanout(data_t *data)
for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
if (test_pipe(data))
return;
+ break;
}
igt_skip("unsupported configuration\n");
--
2.21.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/kms_big_fb: Delay the expensive big fb creation until the last moment
2019-05-23 20:19 [igt-dev] [PATCH i-g-t 1/2] tests/kms_big_fb: Run the test for a single pipe only Ville Syrjala
@ 2019-05-23 20:19 ` Ville Syrjala
2019-05-28 10:56 ` Maarten Lankhorst
2019-05-23 22:57 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_big_fb: Run the test for a single pipe only Patchwork
2019-05-25 8:00 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2 siblings, 1 reply; 5+ messages in thread
From: Ville Syrjala @ 2019-05-23 20:19 UTC (permalink / raw)
To: igt-dev
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We already perform the format+mod+rotation test using the small fb, so
we don't actually need to create the big fb until that test has been
performed. We do need to calculate the big fb dimensions though so that
we can calculate the coordinates we're going to use in the test.
$ time kms_big_fb
- real 0m52.902s
+ real 0m52.616s
so not so great.
But if I run each subtest separately it starts to add up:
$ for i in `kms_big_fb --l` ; do kms_big_fb --r $i ; done
- real 5m32.898s
+ real 4m32.164s
The big difference between those two ways of running the test
is at least partially due to the test reusing big fb between
the different rotation subtests for each format+mod combo.
Running each subtest individually can't get that benefit so
avoiding needless big fb creation starts to make a difference.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
tests/kms_big_fb.c | 77 ++++++++++++++++++++++++----------------------
1 file changed, 41 insertions(+), 36 deletions(-)
diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index c3520e225ab9..b8813a333643 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -43,6 +43,7 @@ typedef struct {
int width, height;
igt_rotation_t rotation;
int max_fb_width, max_fb_height;
+ int big_fb_width, big_fb_height;
uint64_t ram_size, aper_size, mappable_size;
igt_render_copyfunc_t render_copy;
drm_intel_bufmgr *bufmgr;
@@ -186,13 +187,32 @@ static void max_fb_size(data_t *data, int *width, int *height,
*width, *height);
}
+static void prep_fb(data_t *data)
+{
+ if (data->big_fb.fb_id)
+ return;
+
+ igt_create_fb(data->drm_fd,
+ data->big_fb_width, data->big_fb_height,
+ data->format, data->modifier,
+ &data->big_fb);
+
+ generate_pattern(data, &data->big_fb, 640, 480);
+}
+
+static void cleanup_fb(data_t *data)
+{
+ igt_remove_fb(data->drm_fd, &data->big_fb);
+ data->big_fb.fb_id = 0;
+}
+
static bool test_plane(data_t *data)
{
igt_plane_t *plane = data->plane;
struct igt_fb *small_fb = &data->small_fb;
struct igt_fb *big_fb = &data->big_fb;
- int w = big_fb->width - small_fb->width;
- int h = big_fb->height - small_fb->height;
+ int w = data->big_fb_width - small_fb->width;
+ int h = data->big_fb_height - small_fb->height;
struct {
int x, y;
} coords[] = {
@@ -235,16 +255,6 @@ static bool test_plane(data_t *data)
y &= ~1;
}
- /*
- * Make a 1:1 copy of the desired part of the big fb
- * rather than try to render the same pattern (translated
- * accordinly) again via cairo. Something in cairo's
- * rendering pipeline introduces slight differences into
- * the result if we try that, and so the crc will not match.
- */
- copy_pattern(data, small_fb, 0, 0, big_fb, x, y,
- small_fb->width, small_fb->height);
-
igt_plane_set_fb(plane, small_fb);
igt_plane_set_size(plane, data->width, data->height);
@@ -262,6 +272,22 @@ static bool test_plane(data_t *data)
return false;
}
+ /*
+ * To speed up skips we delay the big fb creation until
+ * the above rotation related check has been performed.
+ */
+ prep_fb(data);
+
+ /*
+ * Make a 1:1 copy of the desired part of the big fb
+ * rather than try to render the same pattern (translated
+ * accordinly) again via cairo. Something in cairo's
+ * rendering pipeline introduces slight differences into
+ * the result if we try that, and so the crc will not match.
+ */
+ copy_pattern(data, small_fb, 0, 0, big_fb, x, y,
+ small_fb->width, small_fb->height);
+
igt_display_commit2(&data->display, data->display.is_atomic ?
COMMIT_ATOMIC : COMMIT_UNIVERSAL);
@@ -352,6 +378,9 @@ static bool test_pipe(data_t *data)
static void test_scanout(data_t *data)
{
+ max_fb_size(data, &data->big_fb_width, &data->big_fb_height,
+ data->format, data->modifier);
+
for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
if (test_pipe(data))
return;
@@ -361,29 +390,6 @@ static void test_scanout(data_t *data)
igt_skip("unsupported configuration\n");
}
-static void prep_fb(data_t *data)
-{
- int width, height;
-
- if (data->big_fb.fb_id)
- return;
-
- max_fb_size(data, &width, &height,
- data->format, data->modifier);
-
- igt_create_fb(data->drm_fd, width, height,
- data->format, data->modifier,
- &data->big_fb);
-
- generate_pattern(data, &data->big_fb, 640, 480);
-}
-
-static void cleanup_fb(data_t *data)
-{
- igt_remove_fb(data->drm_fd, &data->big_fb);
- data->big_fb.fb_id = 0;
-}
-
static void
test_size_overflow(data_t *data)
{
@@ -650,7 +656,6 @@ igt_main
formats[j].bpp, rotations[k].angle) {
igt_require(igt_fb_supported_format(data.format));
igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
- prep_fb(&data);
test_scanout(&data);
}
}
--
2.21.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_big_fb: Run the test for a single pipe only
2019-05-23 20:19 [igt-dev] [PATCH i-g-t 1/2] tests/kms_big_fb: Run the test for a single pipe only Ville Syrjala
2019-05-23 20:19 ` [igt-dev] [PATCH i-g-t 2/2] tests/kms_big_fb: Delay the expensive big fb creation until the last moment Ville Syrjala
@ 2019-05-23 22:57 ` Patchwork
2019-05-25 8:00 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2019-05-23 22:57 UTC (permalink / raw)
To: Ville Syrjala; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/2] tests/kms_big_fb: Run the test for a single pipe only
URL : https://patchwork.freedesktop.org/series/61066/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6137 -> IGTPW_3048
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/61066/revisions/1/mbox/
Known issues
------------
Here are the changes found in IGTPW_3048 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@prime_vgem@basic-fence-flip:
- fi-ilk-650: [PASS][1] -> [DMESG-WARN][2] ([fdo#106387]) +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html
#### Possible fixes ####
* igt@i915_selftest@live_hangcheck:
- {fi-icl-dsi}: [INCOMPLETE][3] ([fdo#107713] / [fdo#108569]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
* igt@kms_flip@basic-flip-vs-wf_vblank:
- fi-pnv-d510: [FAIL][5] ([fdo#100368]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/fi-pnv-d510/igt@kms_flip@basic-flip-vs-wf_vblank.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/fi-pnv-d510/igt@kms_flip@basic-flip-vs-wf_vblank.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
[fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
[fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#110718]: https://bugs.freedesktop.org/show_bug.cgi?id=110718
Participating hosts (44 -> 40)
------------------------------
Missing (4): fi-kbl-soraka fi-ilk-m540 fi-bsw-cyan fi-bdw-samus
Build changes
-------------
* IGT: IGT_5011 -> IGTPW_3048
CI_DRM_6137: e0fe0a5239c1f280c1268e519dbed94e3c429d80 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3048: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/
IGT_5011: 7f120c5f1bff2727d50f3c392d81c0f6878b61d6 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] tests/kms_big_fb: Run the test for a single pipe only
2019-05-23 20:19 [igt-dev] [PATCH i-g-t 1/2] tests/kms_big_fb: Run the test for a single pipe only Ville Syrjala
2019-05-23 20:19 ` [igt-dev] [PATCH i-g-t 2/2] tests/kms_big_fb: Delay the expensive big fb creation until the last moment Ville Syrjala
2019-05-23 22:57 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_big_fb: Run the test for a single pipe only Patchwork
@ 2019-05-25 8:00 ` Patchwork
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2019-05-25 8:00 UTC (permalink / raw)
To: Ville Syrjala; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/2] tests/kms_big_fb: Run the test for a single pipe only
URL : https://patchwork.freedesktop.org/series/61066/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6137_full -> IGTPW_3048_full
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with IGTPW_3048_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_3048_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://patchwork.freedesktop.org/api/1.0/series/61066/revisions/1/mbox/
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_3048_full:
### IGT changes ###
#### Warnings ####
* igt@prime_vgem@sync-bsd1:
- shard-snb: [INCOMPLETE][1] ([fdo#105411]) -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-snb2/igt@prime_vgem@sync-bsd1.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-snb5/igt@prime_vgem@sync-bsd1.html
Known issues
------------
Here are the changes found in IGTPW_3048_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_pm_rpm@system-suspend:
- shard-kbl: [PASS][3] -> [INCOMPLETE][4] ([fdo#103665] / [fdo#107807]) +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-kbl3/igt@i915_pm_rpm@system-suspend.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-kbl6/igt@i915_pm_rpm@system-suspend.html
* igt@i915_suspend@debugfs-reader:
- shard-apl: [PASS][5] -> [DMESG-WARN][6] ([fdo#108566]) +4 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-apl5/igt@i915_suspend@debugfs-reader.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-apl5/igt@i915_suspend@debugfs-reader.html
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#109349])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb7/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk: [PASS][9] -> [FAIL][10] ([fdo#102887] / [fdo#105363])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-glk6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-glk5/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@modeset-vs-vblank-race-interruptible:
- shard-glk: [PASS][11] -> [INCOMPLETE][12] ([fdo#103359] / [k.org#198133])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-glk2/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-glk8/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite:
- shard-iclb: [PASS][13] -> [FAIL][14] ([fdo#103167]) +5 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html
* igt@kms_setmode@basic:
- shard-apl: [PASS][15] -> [FAIL][16] ([fdo#99912])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-apl6/igt@kms_setmode@basic.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-apl5/igt@kms_setmode@basic.html
* igt@perf@blocking:
- shard-iclb: [PASS][17] -> [FAIL][18] ([fdo#110728])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb2/igt@perf@blocking.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb8/igt@perf@blocking.html
#### Possible fixes ####
* igt@gem_ctx_isolation@bcs0-s3:
- shard-apl: [DMESG-WARN][19] ([fdo#108566]) -> [PASS][20] +4 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-apl5/igt@gem_ctx_isolation@bcs0-s3.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-apl2/igt@gem_ctx_isolation@bcs0-s3.html
* igt@gem_tiled_swapping@non-threaded:
- shard-iclb: [FAIL][21] ([fdo#108686]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb5/igt@gem_tiled_swapping@non-threaded.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb1/igt@gem_tiled_swapping@non-threaded.html
* igt@i915_pm_rc6_residency@rc6-accuracy:
- shard-snb: [SKIP][23] ([fdo#109271]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-snb2/igt@i915_pm_rc6_residency@rc6-accuracy.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-snb5/igt@i915_pm_rc6_residency@rc6-accuracy.html
* igt@kms_cursor_crc@pipe-a-cursor-128x128-random:
- shard-kbl: [FAIL][25] ([fdo#103232]) -> [PASS][26] +1 similar issue
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-128x128-random.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-128x128-random.html
* igt@kms_cursor_crc@pipe-b-cursor-256x256-random:
- shard-apl: [FAIL][27] ([fdo#103232]) -> [PASS][28] +1 similar issue
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-apl3/igt@kms_cursor_crc@pipe-b-cursor-256x256-random.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-256x256-random.html
* igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
- shard-glk: [FAIL][29] ([fdo#106509] / [fdo#107409]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-glk8/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-glk2/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
- shard-iclb: [FAIL][31] ([fdo#103167]) -> [PASS][32] +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html
* igt@kms_psr@psr2_no_drrs:
- shard-iclb: [SKIP][33] ([fdo#109441]) -> [PASS][34] +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb6/igt@kms_psr@psr2_no_drrs.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
* igt@perf@polling:
- shard-iclb: [FAIL][35] ([fdo#110728]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb7/igt@perf@polling.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb7/igt@perf@polling.html
#### Warnings ####
* igt@gem_mmap_gtt@forked-big-copy-odd:
- shard-iclb: [TIMEOUT][37] ([fdo#109673]) -> [INCOMPLETE][38] ([fdo#107713] / [fdo#109100]) +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-iclb8/igt@gem_mmap_gtt@forked-big-copy-odd.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-iclb4/igt@gem_mmap_gtt@forked-big-copy-odd.html
* igt@prime_vgem@wait-bsd1:
- shard-snb: [FAIL][39] -> [INCOMPLETE][40] ([fdo#105411]) +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6137/shard-snb5/igt@prime_vgem@wait-bsd1.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/shard-snb6/igt@prime_vgem@wait-bsd1.html
[fdo#102887]: https://bugs.freedesktop.org/show_bug.cgi?id=102887
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
[fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
[fdo#106509]: https://bugs.freedesktop.org/show_bug.cgi?id=106509
[fdo#107409]: https://bugs.freedesktop.org/show_bug.cgi?id=107409
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
[fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
[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
[fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
[fdo#110728]: https://bugs.freedesktop.org/show_bug.cgi?id=110728
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133
Participating hosts (8 -> 5)
------------------------------
Missing (3): pig-skl-6260u shard-skl pig-glk-j5005
Build changes
-------------
* IGT: IGT_5011 -> IGTPW_3048
* Piglit: piglit_4509 -> None
CI_DRM_6137: e0fe0a5239c1f280c1268e519dbed94e3c429d80 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3048: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3048/
IGT_5011: 7f120c5f1bff2727d50f3c392d81c0f6878b61d6 @ 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_3048/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/kms_big_fb: Delay the expensive big fb creation until the last moment
2019-05-23 20:19 ` [igt-dev] [PATCH i-g-t 2/2] tests/kms_big_fb: Delay the expensive big fb creation until the last moment Ville Syrjala
@ 2019-05-28 10:56 ` Maarten Lankhorst
0 siblings, 0 replies; 5+ messages in thread
From: Maarten Lankhorst @ 2019-05-28 10:56 UTC (permalink / raw)
To: Ville Syrjala, igt-dev
Op 23-05-2019 om 22:19 schreef Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> We already perform the format+mod+rotation test using the small fb, so
> we don't actually need to create the big fb until that test has been
> performed. We do need to calculate the big fb dimensions though so that
> we can calculate the coordinates we're going to use in the test.
>
> $ time kms_big_fb
> - real 0m52.902s
> + real 0m52.616s
> so not so great.
>
> But if I run each subtest separately it starts to add up:
> $ for i in `kms_big_fb --l` ; do kms_big_fb --r $i ; done
> - real 5m32.898s
> + real 4m32.164s
>
> The big difference between those two ways of running the test
> is at least partially due to the test reusing big fb between
> the different rotation subtests for each format+mod combo.
> Running each subtest individually can't get that benefit so
> avoiding needless big fb creation starts to make a difference.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> tests/kms_big_fb.c | 77 ++++++++++++++++++++++++----------------------
> 1 file changed, 41 insertions(+), 36 deletions(-)
>
> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
> index c3520e225ab9..b8813a333643 100644
> --- a/tests/kms_big_fb.c
> +++ b/tests/kms_big_fb.c
> @@ -43,6 +43,7 @@ typedef struct {
> int width, height;
> igt_rotation_t rotation;
> int max_fb_width, max_fb_height;
> + int big_fb_width, big_fb_height;
> uint64_t ram_size, aper_size, mappable_size;
> igt_render_copyfunc_t render_copy;
> drm_intel_bufmgr *bufmgr;
> @@ -186,13 +187,32 @@ static void max_fb_size(data_t *data, int *width, int *height,
> *width, *height);
> }
>
> +static void prep_fb(data_t *data)
> +{
> + if (data->big_fb.fb_id)
> + return;
> +
> + igt_create_fb(data->drm_fd,
> + data->big_fb_width, data->big_fb_height,
> + data->format, data->modifier,
> + &data->big_fb);
> +
> + generate_pattern(data, &data->big_fb, 640, 480);
> +}
> +
> +static void cleanup_fb(data_t *data)
> +{
> + igt_remove_fb(data->drm_fd, &data->big_fb);
> + data->big_fb.fb_id = 0;
> +}
> +
> static bool test_plane(data_t *data)
> {
> igt_plane_t *plane = data->plane;
> struct igt_fb *small_fb = &data->small_fb;
> struct igt_fb *big_fb = &data->big_fb;
> - int w = big_fb->width - small_fb->width;
> - int h = big_fb->height - small_fb->height;
> + int w = data->big_fb_width - small_fb->width;
> + int h = data->big_fb_height - small_fb->height;
> struct {
> int x, y;
> } coords[] = {
> @@ -235,16 +255,6 @@ static bool test_plane(data_t *data)
> y &= ~1;
> }
>
> - /*
> - * Make a 1:1 copy of the desired part of the big fb
> - * rather than try to render the same pattern (translated
> - * accordinly) again via cairo. Something in cairo's
> - * rendering pipeline introduces slight differences into
> - * the result if we try that, and so the crc will not match.
> - */
> - copy_pattern(data, small_fb, 0, 0, big_fb, x, y,
> - small_fb->width, small_fb->height);
> -
> igt_plane_set_fb(plane, small_fb);
> igt_plane_set_size(plane, data->width, data->height);
>
> @@ -262,6 +272,22 @@ static bool test_plane(data_t *data)
> return false;
> }
>
> + /*
> + * To speed up skips we delay the big fb creation until
> + * the above rotation related check has been performed.
> + */
> + prep_fb(data);
> +
> + /*
> + * Make a 1:1 copy of the desired part of the big fb
> + * rather than try to render the same pattern (translated
> + * accordinly) again via cairo. Something in cairo's
> + * rendering pipeline introduces slight differences into
> + * the result if we try that, and so the crc will not match.
> + */
> + copy_pattern(data, small_fb, 0, 0, big_fb, x, y,
> + small_fb->width, small_fb->height);
> +
> igt_display_commit2(&data->display, data->display.is_atomic ?
> COMMIT_ATOMIC : COMMIT_UNIVERSAL);
>
> @@ -352,6 +378,9 @@ static bool test_pipe(data_t *data)
>
> static void test_scanout(data_t *data)
> {
> + max_fb_size(data, &data->big_fb_width, &data->big_fb_height,
> + data->format, data->modifier);
> +
> for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
> if (test_pipe(data))
> return;
> @@ -361,29 +390,6 @@ static void test_scanout(data_t *data)
> igt_skip("unsupported configuration\n");
> }
>
> -static void prep_fb(data_t *data)
> -{
> - int width, height;
> -
> - if (data->big_fb.fb_id)
> - return;
> -
> - max_fb_size(data, &width, &height,
> - data->format, data->modifier);
> -
> - igt_create_fb(data->drm_fd, width, height,
> - data->format, data->modifier,
> - &data->big_fb);
> -
> - generate_pattern(data, &data->big_fb, 640, 480);
> -}
> -
> -static void cleanup_fb(data_t *data)
> -{
> - igt_remove_fb(data->drm_fd, &data->big_fb);
> - data->big_fb.fb_id = 0;
> -}
> -
> static void
> test_size_overflow(data_t *data)
> {
> @@ -650,7 +656,6 @@ igt_main
> formats[j].bpp, rotations[k].angle) {
> igt_require(igt_fb_supported_format(data.format));
> igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
> - prep_fb(&data);
> test_scanout(&data);
> }
> }
For the series:
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-05-28 10:56 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-23 20:19 [igt-dev] [PATCH i-g-t 1/2] tests/kms_big_fb: Run the test for a single pipe only Ville Syrjala
2019-05-23 20:19 ` [igt-dev] [PATCH i-g-t 2/2] tests/kms_big_fb: Delay the expensive big fb creation until the last moment Ville Syrjala
2019-05-28 10:56 ` Maarten Lankhorst
2019-05-23 22:57 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] tests/kms_big_fb: Run the test for a single pipe only Patchwork
2019-05-25 8:00 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.