* [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR
@ 2022-11-14 11:52 Bhanuprakash Modem
2022-11-14 14:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Bhanuprakash Modem @ 2022-11-14 11:52 UTC (permalink / raw)
To: igt-dev
This patch will try to enable VRR on Non-VRR panel. VRR should
not be enabled on the Non-VRR panel. It is unlikely to reject the
commit/modeset. And the expected behavior is the same as disabling
VRR on a VRR capable panel.
V2, V3:
- Fix the condition check to run basic tests
V4:
- Fix the crash in CI (devided by zero)
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
---
tests/kms_vrr.c | 70 ++++++++++++++++++++++++++++++++++++-------------
1 file changed, 52 insertions(+), 18 deletions(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 8976d4a6..68c4f264 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -41,10 +41,11 @@
(m)->type, (m)->flags
enum {
- TEST_NONE = 0,
- TEST_DPMS = 1 << 0,
- TEST_SUSPEND = 1 << 1,
- TEST_FLIPLINE = 1 << 2,
+ TEST_BASIC = 1 << 0,
+ TEST_DPMS = 1 << 1,
+ TEST_SUSPEND = 1 << 2,
+ TEST_FLIPLINE = 1 << 3,
+ TEST_NEGATIVE = 1 << 4,
};
typedef struct range {
@@ -116,7 +117,7 @@ static uint64_t get_time_ns(void)
/* Returns the rate duration in nanoseconds for the given refresh rate. */
static uint64_t rate_from_refresh(uint64_t refresh)
{
- return NSECS_PER_SEC / refresh;
+ return refresh ? (NSECS_PER_SEC / refresh) : 0;
}
/* Instead of running on default mode, loop through the connector modes
@@ -179,11 +180,16 @@ static vtest_ns_t get_test_rate_ns(range_t range)
return vtest_ns;
}
-/* Returns true if an output supports VRR. */
+/* Returns true if driver supports VRR. */
static bool has_vrr(igt_output_t *output)
{
- return igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE) &&
- igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE);
+ return igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE);
+}
+
+/* Returns true if an output supports VRR. */
+static bool vrr_capable(igt_output_t *output)
+{
+ return igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE);
}
/* Toggles variable refresh rate on the pipe. */
@@ -398,7 +404,8 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
* Flip will happen right away so returned refresh rate is 50Hz.
* if refresh_rate < 40Hz:
* h/w will terminate the vblank at Vmax which is obvious.
- * So, for now we can safely ignore the lower refresh rates
+ * So, vblank termination should happen at Vmax, and flip done at
+ * next Vmin.
*/
if (flags & TEST_FLIPLINE) {
rate = rate_from_refresh(range.max + 5);
@@ -408,17 +415,33 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
(range.max + 5), rate, result);
}
- rate = vtest_ns.mid;
- result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
- igt_assert_f(result > 75,
- "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
- ((range.max + range.min) / 2), rate, result);
+ if (flags & ~TEST_NEGATIVE) {
+ rate = vtest_ns.mid;
+ result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
+ igt_assert_f(result > 75,
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
+ ((range.max + range.min) / 2), rate, result);
+ }
- set_vrr_on_pipe(data, pipe, false);
+ if (flags & TEST_FLIPLINE) {
+ rate = rate_from_refresh(range.min - 5);
+ result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
+ igt_assert_f(result < 50,
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold exceeded, result was %u%%\n",
+ (range.min - 5), rate, result);
+ }
+
+ /*
+ * If we request VRR on a non-VRR panel, it is unlikely to reject the
+ * modeset. And the expected behavior is the same as disabling VRR on
+ * a VRR capable panel.
+ */
+ set_vrr_on_pipe(data, pipe, (flags & TEST_NEGATIVE)? true : false);
+ rate = vtest_ns.mid;
result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
igt_assert_f(result < 10,
- "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR off threshold exceeded, result was %u%%\n",
- ((range.max + range.min) / 2), rate, result);
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold exceeded, result was %u%%\n",
+ ((range.max + range.min) / 2), rate, (flags & TEST_NEGATIVE)? "on" : "off", result);
/* Clean-up */
igt_plane_set_fb(data->primary, NULL);
@@ -442,6 +465,13 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags)
if (!has_vrr(output))
continue;
+ /* For Negative tests, panel should be non-vrr. */
+ if ((flags & TEST_NEGATIVE) && vrr_capable(output))
+ continue;
+
+ if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
+ continue;
+
for_each_pipe(&data->display, pipe) {
if (igt_pipe_connector_valid(pipe, output)) {
igt_dynamic_f("pipe-%s-%s",
@@ -470,7 +500,7 @@ igt_main
igt_describe("Tests that VRR is enabled and that the difference between flip "
"timestamps converges to the requested rate");
igt_subtest_with_dynamic("flip-basic")
- run_vrr_test(&data, test_basic, 0);
+ run_vrr_test(&data, test_basic, TEST_BASIC);
igt_describe("Tests with DPMS that VRR is enabled and that the difference between flip "
"timestamps converges to the requested rate.");
@@ -486,6 +516,10 @@ igt_main
igt_subtest_with_dynamic("flipline")
run_vrr_test(&data, test_basic, TEST_FLIPLINE);
+ igt_describe("Make sure that VRR should not be enabled on the Non-VRR panel.");
+ igt_subtest_with_dynamic("negative-basic")
+ run_vrr_test(&data, test_basic, TEST_NEGATIVE);
+
igt_fixture {
igt_display_fini(&data.display);
}
--
2.38.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_vrr: Add Negative tests to validate VRR 2022-11-14 11:52 [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR Bhanuprakash Modem @ 2022-11-14 14:09 ` Patchwork 2022-11-14 20:38 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2022-11-15 17:17 ` [igt-dev] [i-g-t] " Bhanuprakash Modem 2 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2022-11-14 14:09 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 3585 bytes --] == Series Details == Series: tests/kms_vrr: Add Negative tests to validate VRR URL : https://patchwork.freedesktop.org/series/110860/ State : success == Summary == CI Bug Log - changes from IGT_7055 -> IGTPW_8095 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/index.html Participating hosts (39 -> 37) ------------------------------ Missing (2): fi-bdw-samus bat-dg1-5 Known issues ------------ Here are the changes found in IGTPW_8095 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@hangcheck: - fi-hsw-4770: [PASS][1] -> [INCOMPLETE][2] ([i915#4785]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html * igt@runner@aborted: - fi-hsw-4770: NOTRUN -> [FAIL][3] ([fdo#109271] / [i915#4312] / [i915#5594]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/fi-hsw-4770/igt@runner@aborted.html #### Possible fixes #### * igt@i915_selftest@live@hugepages: - {bat-rpls-2}: [DMESG-WARN][4] ([i915#5278]) -> [PASS][5] [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/bat-rpls-2/igt@i915_selftest@live@hugepages.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/bat-rpls-2/igt@i915_selftest@live@hugepages.html * igt@i915_selftest@live@migrate: - {bat-adlp-6}: [INCOMPLETE][6] ([i915#7348]) -> [PASS][7] [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/bat-adlp-6/igt@i915_selftest@live@migrate.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/bat-adlp-6/igt@i915_selftest@live@migrate.html * igt@kms_cursor_legacy@basic-flip-before-cursor@varying-size: - fi-blb-e6850: [FAIL][8] -> [PASS][9] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/fi-blb-e6850/igt@kms_cursor_legacy@basic-flip-before-cursor@varying-size.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/fi-blb-e6850/igt@kms_cursor_legacy@basic-flip-before-cursor@varying-size.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#5278]: https://gitlab.freedesktop.org/drm/intel/issues/5278 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594 [i915#7348]: https://gitlab.freedesktop.org/drm/intel/issues/7348 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7055 -> IGTPW_8095 CI-20190529: 20190529 CI_DRM_12376: ceb77a7b0d107112b1b4197917d8fdec9a3d0ca8 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8095: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/index.html IGT_7055: f37bbbbce4d34c3220a2bd5492a2e9c2a7390288 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +igt@kms_vrr@negative-basic == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/index.html [-- Attachment #2: Type: text/html, Size: 4099 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_vrr: Add Negative tests to validate VRR 2022-11-14 11:52 [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR Bhanuprakash Modem 2022-11-14 14:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork @ 2022-11-14 20:38 ` Patchwork 2022-11-15 17:17 ` [igt-dev] [i-g-t] " Bhanuprakash Modem 2 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2022-11-14 20:38 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 36857 bytes --] == Series Details == Series: tests/kms_vrr: Add Negative tests to validate VRR URL : https://patchwork.freedesktop.org/series/110860/ State : success == Summary == CI Bug Log - changes from IGT_7055_full -> IGTPW_8095_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/index.html Participating hosts (6 -> 8) ------------------------------ Additional (2): shard-rkl shard-dg1 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_8095_full: ### IGT changes ### #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@prime_self_import@export-vs-gem_close-race: - {shard-rkl}: NOTRUN -> [FAIL][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-rkl-1/igt@prime_self_import@export-vs-gem_close-race.html New tests --------- New tests have been introduced between IGT_7055_full and IGTPW_8095_full: ### New IGT tests (1) ### * igt@kms_vrr@negative-basic@pipe-a-edp-1: - Statuses : 2 pass(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in IGTPW_8095_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_persistence@smoketest: - shard-snb: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#1099]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-snb5/igt@gem_ctx_persistence@smoketest.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-glk: [PASS][3] -> [FAIL][4] ([i915#2842]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-glk9/igt@gem_exec_fair@basic-none-share@rcs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk2/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none-solo@rcs0: - shard-apl: [PASS][5] -> [FAIL][6] ([i915#2842]) +1 similar issue [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-apl2/igt@gem_exec_fair@basic-none-solo@rcs0.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl8/igt@gem_exec_fair@basic-none-solo@rcs0.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-tglb: [PASS][7] -> [FAIL][8] ([i915#2842]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-tglb5/igt@gem_exec_fair@basic-pace-share@rcs0.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-iclb: [PASS][9] -> [FAIL][10] ([i915#2842]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb6/igt@gem_exec_fair@basic-pace@vecs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb6/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gem_exec_fair@basic-throttle@rcs0: - shard-glk: NOTRUN -> [FAIL][11] ([i915#2842]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk9/igt@gem_exec_fair@basic-throttle@rcs0.html - shard-iclb: NOTRUN -> [FAIL][12] ([i915#2842]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html - shard-tglb: NOTRUN -> [FAIL][13] ([i915#2842]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb1/igt@gem_exec_fair@basic-throttle@rcs0.html * igt@gem_pxp@reject-modify-context-protection-off-3: - shard-tglb: NOTRUN -> [SKIP][14] ([i915#4270]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb7/igt@gem_pxp@reject-modify-context-protection-off-3.html - shard-iclb: NOTRUN -> [SKIP][15] ([i915#4270]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb7/igt@gem_pxp@reject-modify-context-protection-off-3.html * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled: - shard-apl: NOTRUN -> [SKIP][16] ([fdo#109271]) +73 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl2/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html * igt@gem_render_copy@yf-tiled-to-vebox-y-tiled: - shard-iclb: NOTRUN -> [SKIP][17] ([i915#768]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb3/igt@gem_render_copy@yf-tiled-to-vebox-y-tiled.html * igt@i915_module_load@resize-bar: - shard-iclb: NOTRUN -> [SKIP][18] ([i915#6412]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@i915_module_load@resize-bar.html - shard-tglb: NOTRUN -> [SKIP][19] ([i915#6412]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb1/igt@i915_module_load@resize-bar.html * igt@i915_pipe_stress@stress-xrgb8888-ytiled: - shard-tglb: [PASS][20] -> [DMESG-WARN][21] ([i915#1982]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-tglb5/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb1/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html * igt@i915_selftest@live@gt_heartbeat: - shard-apl: NOTRUN -> [DMESG-FAIL][22] ([i915#5334]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl1/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@hangcheck: - shard-tglb: [PASS][23] -> [DMESG-WARN][24] ([i915#5591]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-tglb1/igt@i915_selftest@live@hangcheck.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb8/igt@i915_selftest@live@hangcheck.html * igt@i915_suspend@basic-s2idle-without-i915: - shard-snb: [PASS][25] -> [DMESG-WARN][26] ([i915#4528]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-snb5/igt@i915_suspend@basic-s2idle-without-i915.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-snb4/igt@i915_suspend@basic-s2idle-without-i915.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-2: - shard-glk: NOTRUN -> [INCOMPLETE][27] ([i915#5584]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-2.html * igt@kms_big_fb@yf-tiled-64bpp-rotate-90: - shard-tglb: NOTRUN -> [SKIP][28] ([fdo#111615]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb5/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html - shard-iclb: NOTRUN -> [SKIP][29] ([fdo#110723]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb1/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#3886]) +3 similar issues [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][31] ([i915#3689]) +1 similar issue [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb1/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_ccs.html * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc: - shard-iclb: NOTRUN -> [SKIP][32] ([fdo#109278] / [i915#3886]) +1 similar issue [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb5/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs: - shard-tglb: NOTRUN -> [SKIP][33] ([i915#3689] / [i915#3886]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb1/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html - shard-glk: NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3886]) +1 similar issue [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk9/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][35] ([fdo#111615] / [i915#3689]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb7/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs.html * igt@kms_chamelium@dp-edid-read: - shard-glk: NOTRUN -> [SKIP][36] ([fdo#109271] / [fdo#111827]) +1 similar issue [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk2/igt@kms_chamelium@dp-edid-read.html * igt@kms_color_chamelium@ctm-blue-to-red: - shard-apl: NOTRUN -> [SKIP][37] ([fdo#109271] / [fdo#111827]) +4 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl6/igt@kms_color_chamelium@ctm-blue-to-red.html * igt@kms_color_chamelium@degamma: - shard-iclb: NOTRUN -> [SKIP][38] ([fdo#109284] / [fdo#111827]) +2 similar issues [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb6/igt@kms_color_chamelium@degamma.html - shard-snb: NOTRUN -> [SKIP][39] ([fdo#109271] / [fdo#111827]) +4 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-snb7/igt@kms_color_chamelium@degamma.html - shard-tglb: NOTRUN -> [SKIP][40] ([fdo#109284] / [fdo#111827]) +2 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb5/igt@kms_color_chamelium@degamma.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-iclb: NOTRUN -> [SKIP][41] ([i915#3116]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb1/igt@kms_content_protection@dp-mst-lic-type-1.html - shard-tglb: NOTRUN -> [SKIP][42] ([i915#3116] / [i915#3299]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb1/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_cursor_crc@cursor-random-max-size: - shard-glk: NOTRUN -> [SKIP][43] ([fdo#109271]) +29 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk7/igt@kms_cursor_crc@cursor-random-max-size.html * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size: - shard-glk: [PASS][44] -> [FAIL][45] ([i915#2346]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible: - shard-iclb: NOTRUN -> [SKIP][46] ([fdo#109274]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb6/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html - shard-tglb: NOTRUN -> [SKIP][47] ([fdo#109274] / [fdo#111825] / [i915#3637]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb5/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1: - shard-apl: [PASS][48] -> [DMESG-WARN][49] ([i915#180]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html * igt@kms_flip@flip-vs-suspend@b-edp1: - shard-iclb: NOTRUN -> [DMESG-WARN][50] ([i915#2867]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@kms_flip@flip-vs-suspend@b-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode: - shard-iclb: NOTRUN -> [SKIP][51] ([i915#2672]) +2 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode: - shard-iclb: NOTRUN -> [SKIP][52] ([i915#2587] / [i915#2672]) +6 similar issues [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode: - shard-tglb: NOTRUN -> [SKIP][53] ([i915#2587] / [i915#2672]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode: - shard-iclb: NOTRUN -> [SKIP][54] ([i915#2672] / [i915#3555]) +1 similar issue [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc: - shard-tglb: NOTRUN -> [SKIP][55] ([fdo#109280] / [fdo#111825]) +6 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html - shard-iclb: NOTRUN -> [SKIP][56] ([fdo#109280]) +6 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc: - shard-tglb: NOTRUN -> [SKIP][57] ([i915#6497]) +2 similar issues [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-cpu: - shard-snb: NOTRUN -> [SKIP][58] ([fdo#109271]) +68 similar issues [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-snb2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-cpu.html * igt@kms_plane_alpha_blend@alpha-basic@pipe-a-dp-1: - shard-apl: NOTRUN -> [FAIL][59] ([i915#4573]) +2 similar issues [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl6/igt@kms_plane_alpha_blend@alpha-basic@pipe-a-dp-1.html * igt@kms_prime@d3hot: - shard-tglb: NOTRUN -> [SKIP][60] ([i915#6524]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb3/igt@kms_prime@d3hot.html - shard-iclb: NOTRUN -> [SKIP][61] ([i915#6524]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb5/igt@kms_prime@d3hot.html * igt@kms_psr2_su@page_flip-p010@pipe-b-edp-1: - shard-iclb: NOTRUN -> [FAIL][62] ([i915#5939]) +2 similar issues [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@kms_psr2_su@page_flip-p010@pipe-b-edp-1.html * igt@kms_psr@psr2_primary_render: - shard-iclb: [PASS][63] -> [SKIP][64] ([fdo#109441]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb2/igt@kms_psr@psr2_primary_render.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb1/igt@kms_psr@psr2_primary_render.html * igt@kms_setmode@basic-clone-single-crtc: - shard-iclb: NOTRUN -> [SKIP][65] ([i915#3555]) +1 similar issue [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb6/igt@kms_setmode@basic-clone-single-crtc.html - shard-tglb: NOTRUN -> [SKIP][66] ([i915#3555]) +1 similar issue [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb5/igt@kms_setmode@basic-clone-single-crtc.html * igt@kms_vblank@pipe-d-query-forked-hang: - shard-iclb: NOTRUN -> [SKIP][67] ([fdo#109278]) +5 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@kms_vblank@pipe-d-query-forked-hang.html * igt@perf@gen8-unprivileged-single-ctx-counters: - shard-tglb: NOTRUN -> [SKIP][68] ([fdo#109289]) [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb2/igt@perf@gen8-unprivileged-single-ctx-counters.html * igt@perf@stress-open-close: - shard-glk: [PASS][69] -> [INCOMPLETE][70] ([i915#5213]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-glk9/igt@perf@stress-open-close.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk2/igt@perf@stress-open-close.html * igt@prime_vgem@basic-userptr: - shard-tglb: NOTRUN -> [SKIP][71] ([fdo#109295] / [i915#3301]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb8/igt@prime_vgem@basic-userptr.html - shard-iclb: NOTRUN -> [SKIP][72] ([fdo#109295] / [i915#3301]) [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb5/igt@prime_vgem@basic-userptr.html * igt@sysfs_clients@busy: - shard-tglb: NOTRUN -> [SKIP][73] ([i915#2994]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb7/igt@sysfs_clients@busy.html - shard-glk: NOTRUN -> [SKIP][74] ([fdo#109271] / [i915#2994]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk8/igt@sysfs_clients@busy.html - shard-iclb: NOTRUN -> [SKIP][75] ([i915#2994]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb7/igt@sysfs_clients@busy.html * igt@sysfs_clients@split-50: - shard-apl: NOTRUN -> [SKIP][76] ([fdo#109271] / [i915#2994]) +1 similar issue [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl7/igt@sysfs_clients@split-50.html #### Possible fixes #### * igt@gem_exec_balancer@parallel: - shard-iclb: [SKIP][77] ([i915#4525]) -> [PASS][78] +1 similar issue [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb8/igt@gem_exec_balancer@parallel.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@gem_exec_balancer@parallel.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [FAIL][79] ([i915#2842]) -> [PASS][80] +3 similar issues [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_suspend@basic-s3@smem: - shard-apl: [DMESG-WARN][81] ([i915#180]) -> [PASS][82] [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-apl8/igt@gem_exec_suspend@basic-s3@smem.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl1/igt@gem_exec_suspend@basic-s3@smem.html * igt@gem_huc_copy@huc-copy: - shard-tglb: [SKIP][83] ([i915#2190]) -> [PASS][84] [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-tglb6/igt@gem_huc_copy@huc-copy.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb8/igt@gem_huc_copy@huc-copy.html * igt@i915_pm_rpm@modeset-non-lpsp-stress: - shard-apl: [TIMEOUT][85] -> [PASS][86] [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-apl8/igt@i915_pm_rpm@modeset-non-lpsp-stress.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl1/igt@i915_pm_rpm@modeset-non-lpsp-stress.html * igt@i915_selftest@perf@engine_cs: - shard-snb: [SKIP][87] ([fdo#109271]) -> [PASS][88] [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-snb4/igt@i915_selftest@perf@engine_cs.html [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-snb7/igt@i915_selftest@perf@engine_cs.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-1: - shard-glk: [INCOMPLETE][89] ([i915#5584]) -> [PASS][90] [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-glk5/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-1.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-hdmi-a-1.html * igt@kms_cursor_legacy@flip-vs-cursor@toggle: - shard-iclb: [FAIL][91] ([i915#2346]) -> [PASS][92] +2 similar issues [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb6/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1: - shard-iclb: [SKIP][93] ([i915#5235]) -> [PASS][94] +2 similar issues [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html * igt@kms_psr@psr2_no_drrs: - shard-iclb: [SKIP][95] ([fdo#109441]) -> [PASS][96] +1 similar issue [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb6/igt@kms_psr@psr2_no_drrs.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@kms_psr@psr2_no_drrs.html #### Warnings #### * igt@gem_pread@exhaustion: - shard-apl: [INCOMPLETE][97] ([i915#7248]) -> [WARN][98] ([i915#2658]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-apl3/igt@gem_pread@exhaustion.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-apl6/igt@gem_pread@exhaustion.html - shard-tglb: [INCOMPLETE][99] ([i915#7248]) -> [WARN][100] ([i915#2658]) [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-tglb6/igt@gem_pread@exhaustion.html [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb3/igt@gem_pread@exhaustion.html - shard-glk: [INCOMPLETE][101] ([i915#7248]) -> [WARN][102] ([i915#2658]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-glk2/igt@gem_pread@exhaustion.html [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-glk3/igt@gem_pread@exhaustion.html * igt@gem_pwrite@basic-exhaustion: - shard-tglb: [WARN][103] ([i915#2658]) -> [INCOMPLETE][104] ([i915#7248]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-tglb3/igt@gem_pwrite@basic-exhaustion.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-tglb5/igt@gem_pwrite@basic-exhaustion.html * igt@i915_pm_rc6_residency@rc6-idle@vecs0: - shard-iclb: [WARN][105] ([i915#2684]) -> [FAIL][106] ([i915#2684]) [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb7/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf: - shard-iclb: [SKIP][107] ([i915#658]) -> [SKIP][108] ([i915#2920]) +1 similar issue [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb6/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@overlay-plane-update-continuous-sf: - shard-iclb: [SKIP][109] ([i915#2920]) -> [SKIP][110] ([fdo#111068] / [i915#658]) +1 similar issue [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7055/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/shard-iclb8/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302 [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303 [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308 [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309 [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312 [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099 [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155 [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755 [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850 [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902 [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433 [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434 [i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435 [i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012 [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318 [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469 [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734 [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936 [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938 [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387 [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565 [i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767 [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771 [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812 [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854 [i915#4855]: https://gitlab.freedesktop.org/drm/intel/issues/4855 [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4874]: https://gitlab.freedesktop.org/drm/intel/issues/4874 [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880 [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881 [i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884 [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885 [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439 [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461 [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563 [i915#5584]: https://gitlab.freedesktop.org/drm/intel/issues/5584 [i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591 [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227 [i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245 [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301 [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334 [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335 [i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344 [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412 [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433 [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493 [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497 [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768 [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946 [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178 [i915#7248]: https://gitlab.freedesktop.org/drm/intel/issues/7248 [i915#7276]: https://gitlab.freedesktop.org/drm/intel/issues/7276 [i915#7468]: https://gitlab.freedesktop.org/drm/intel/issues/7468 [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7055 -> IGTPW_8095 CI-20190529: 20190529 CI_DRM_12376: ceb77a7b0d107112b1b4197917d8fdec9a3d0ca8 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8095: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/index.html IGT_7055: f37bbbbce4d34c3220a2bd5492a2e9c2a7390288 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8095/index.html [-- Attachment #2: Type: text/html, Size: 34633 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR 2022-11-14 11:52 [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR Bhanuprakash Modem 2022-11-14 14:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork 2022-11-14 20:38 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2022-11-15 17:17 ` Bhanuprakash Modem 2 siblings, 0 replies; 5+ messages in thread From: Bhanuprakash Modem @ 2022-11-15 17:17 UTC (permalink / raw) To: igt-dev This patch will try to enable VRR on Non-VRR panel. VRR should not be enabled on the Non-VRR panel. It is unlikely to reject the commit/modeset. And the expected behavior is the same as disabling VRR on a VRR capable panel. V2, V3: - Fix the condition check to run basic tests V4: - Fix the crash in CI (devided by zero) Cc: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> --- tests/kms_vrr.c | 70 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 8976d4a6..68c4f264 100644 --- a/tests/kms_vrr.c +++ b/tests/kms_vrr.c @@ -41,10 +41,11 @@ (m)->type, (m)->flags enum { - TEST_NONE = 0, - TEST_DPMS = 1 << 0, - TEST_SUSPEND = 1 << 1, - TEST_FLIPLINE = 1 << 2, + TEST_BASIC = 1 << 0, + TEST_DPMS = 1 << 1, + TEST_SUSPEND = 1 << 2, + TEST_FLIPLINE = 1 << 3, + TEST_NEGATIVE = 1 << 4, }; typedef struct range { @@ -116,7 +117,7 @@ static uint64_t get_time_ns(void) /* Returns the rate duration in nanoseconds for the given refresh rate. */ static uint64_t rate_from_refresh(uint64_t refresh) { - return NSECS_PER_SEC / refresh; + return refresh ? (NSECS_PER_SEC / refresh) : 0; } /* Instead of running on default mode, loop through the connector modes @@ -179,11 +180,16 @@ static vtest_ns_t get_test_rate_ns(range_t range) return vtest_ns; } -/* Returns true if an output supports VRR. */ +/* Returns true if driver supports VRR. */ static bool has_vrr(igt_output_t *output) { - return igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE) && - igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE); + return igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE); +} + +/* Returns true if an output supports VRR. */ +static bool vrr_capable(igt_output_t *output) +{ + return igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE); } /* Toggles variable refresh rate on the pipe. */ @@ -398,7 +404,8 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags) * Flip will happen right away so returned refresh rate is 50Hz. * if refresh_rate < 40Hz: * h/w will terminate the vblank at Vmax which is obvious. - * So, for now we can safely ignore the lower refresh rates + * So, vblank termination should happen at Vmax, and flip done at + * next Vmin. */ if (flags & TEST_FLIPLINE) { rate = rate_from_refresh(range.max + 5); @@ -408,17 +415,33 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags) (range.max + 5), rate, result); } - rate = vtest_ns.mid; - result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); - igt_assert_f(result > 75, - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n", - ((range.max + range.min) / 2), rate, result); + if (flags & ~TEST_NEGATIVE) { + rate = vtest_ns.mid; + result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); + igt_assert_f(result > 75, + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n", + ((range.max + range.min) / 2), rate, result); + } - set_vrr_on_pipe(data, pipe, false); + if (flags & TEST_FLIPLINE) { + rate = rate_from_refresh(range.min - 5); + result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); + igt_assert_f(result < 50, + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold exceeded, result was %u%%\n", + (range.min - 5), rate, result); + } + + /* + * If we request VRR on a non-VRR panel, it is unlikely to reject the + * modeset. And the expected behavior is the same as disabling VRR on + * a VRR capable panel. + */ + set_vrr_on_pipe(data, pipe, (flags & TEST_NEGATIVE)? true : false); + rate = vtest_ns.mid; result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); igt_assert_f(result < 10, - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR off threshold exceeded, result was %u%%\n", - ((range.max + range.min) / 2), rate, result); + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold exceeded, result was %u%%\n", + ((range.max + range.min) / 2), rate, (flags & TEST_NEGATIVE)? "on" : "off", result); /* Clean-up */ igt_plane_set_fb(data->primary, NULL); @@ -442,6 +465,13 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags) if (!has_vrr(output)) continue; + /* For Negative tests, panel should be non-vrr. */ + if ((flags & TEST_NEGATIVE) && vrr_capable(output)) + continue; + + if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output)) + continue; + for_each_pipe(&data->display, pipe) { if (igt_pipe_connector_valid(pipe, output)) { igt_dynamic_f("pipe-%s-%s", @@ -470,7 +500,7 @@ igt_main igt_describe("Tests that VRR is enabled and that the difference between flip " "timestamps converges to the requested rate"); igt_subtest_with_dynamic("flip-basic") - run_vrr_test(&data, test_basic, 0); + run_vrr_test(&data, test_basic, TEST_BASIC); igt_describe("Tests with DPMS that VRR is enabled and that the difference between flip " "timestamps converges to the requested rate."); @@ -486,6 +516,10 @@ igt_main igt_subtest_with_dynamic("flipline") run_vrr_test(&data, test_basic, TEST_FLIPLINE); + igt_describe("Make sure that VRR should not be enabled on the Non-VRR panel."); + igt_subtest_with_dynamic("negative-basic") + run_vrr_test(&data, test_basic, TEST_NEGATIVE); + igt_fixture { igt_display_fini(&data.display); } -- 2.38.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] [i-g-t v5 00/52] Add IGT support for Bigjoiner
@ 2022-11-15 16:58 Bhanuprakash Modem
2022-11-15 16:58 ` [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR Bhanuprakash Modem
0 siblings, 1 reply; 5+ messages in thread
From: Bhanuprakash Modem @ 2022-11-15 16:58 UTC (permalink / raw)
To: igt-dev
Add IGT support for bigjoiner:
* Pipe-D won't support mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.
V2: - Rebase
V3: - Optimizations in helper
V4, V5: - Rebase
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Bhanuprakash Modem (52):
lib/igt_kms: Add a helper for valid pipe/output constraint
lib/igt_kms: Bigjoiner check in max_bpc constraint
tests/kms_async_flips: Add support for Bigjoiner
tests/kms_atomic: Add support for Bigjoiner
tests/kms_atomic_interruptible: Add support for Bigjoiner
tests/kms_atomic_transition: Add support for Bigjoiner
tests/kms_color_helper: Helper to check Bigjoiner constraint
tests/kms_color: Add support for Bigjoiner
tests/chamelium/kms_color_chamelium: Add support for Bigjoiner
tests/kms_concurrent: Add support for Bigjoiner
tests/kms_content_protection: Add support for Bigjoiner
tests/kms_cursor_crc: Add support for Bigjoiner
tests/kms_cursor_edge_walk: Add support for Bigjoiner
tests/kms_cursor_legacy: Add support for Bigjoiner
tests/kms_display_modes: Add support for Bigjoiner
tests/kms_dp_tiled_display: Add support for Bigjoiner
tests/kms_flip_event_leak: Add support for Bigjoiner
tests/kms_invalid_mode: Add support for Bigjoiner
tests/kms_lease: Add support for Bigjoiner
tests/kms_multipipe_modeset: Find the suitable mode instead of using
default
tests/kms_pipe_crc_basic: Add support for Bigjoiner
tests/kms_plane: Add support for Bigjoiner
tests/kms_plane_alpha_blend: Add support for Bigjoiner
tests/kms_plane_cursor: Add support for Bigjoiner
tests/kms_plane_lowres: Add support for Bigjoiner
tests/kms_plane_multiple: Add support for Bigjoiner
tests/kms_plane_scaling: Add support for Bigjoiner
tests/kms_prime: Add support for Bigjoiner
tests/kms_properties: Add support for Bigjoiner
tests/kms_rmfb: Add support for Bigjoiner
tests/kms_rotation_crc: Add support for Bigjoiner
tests/kms_scaling_modes: Add support for Bigjoiner
tests/kms_sequence: Add support for Bigjoiner
tests/kms_universal_plane: Add support for Bigjoiner
tests/kms_vblank: Add support for Bigjoiner
tests/kms_vrr: Add support for Bigjoiner
tests/i915/kms_big_fb: Add support for Bigjoiner
tests/i915/kms_big_joiner: Negative tests for Bigjoiner
tests/i915/kms_busy: Add support for Bigjoiner
tests/i915/kms_ccs: Add support for Bigjoiner
tests/i915/kms_cdclk: Add support for Bigjoiner
tests/i915/kms_draw_crc: Add support for Bigjoiner
tests/i915/kms_fence_pin_leak: Add support for Bigjoiner
tests/i915/kms_flip_scaled_crc: Add support for Bigjoiner
tests/i915/kms_flip_tiling: Add support for Bigjoiner
tests/i915/kms_frontbuffer_tracking: Add support for Bigjoiner
tests/i915/kms_mmap_write_crc: Add support for Bigjoiner
tests/i915/kms_psr2_sf: Add support for Bigjoiner
tests/i915/kms_psr2_su: Add support for Bigjoiner
tests/i915/kms_psr: Add support for Bigjoiner
tests/i915/kms_psr_stress_test: Add support for Bigjoiner
tests/i915/kms_pwrite_crc: Add support for Bigjoiner
lib/igt_kms.c | 54 ++++++-
lib/igt_kms.h | 1 +
tests/chamelium/kms_color_chamelium.c | 9 ++
tests/i915/kms_big_fb.c | 13 ++
tests/i915/kms_big_joiner.c | 187 ++++++++++------------
tests/i915/kms_busy.c | 106 ++++++++-----
tests/i915/kms_ccs.c | 18 ++-
tests/i915/kms_cdclk.c | 93 ++++++-----
tests/i915/kms_draw_crc.c | 10 +-
tests/i915/kms_fence_pin_leak.c | 9 ++
tests/i915/kms_flip_scaled_crc.c | 13 +-
tests/i915/kms_flip_tiling.c | 7 +
tests/i915/kms_frontbuffer_tracking.c | 16 +-
tests/i915/kms_mmap_write_crc.c | 6 +
tests/i915/kms_psr.c | 4 +
tests/i915/kms_psr2_sf.c | 7 +
tests/i915/kms_psr2_su.c | 7 +
tests/i915/kms_psr_stress_test.c | 8 +-
tests/i915/kms_pwrite_crc.c | 12 +-
tests/kms_async_flips.c | 24 ++-
tests/kms_atomic.c | 32 +++-
tests/kms_atomic_interruptible.c | 40 +++++
tests/kms_atomic_transition.c | 50 +++++-
tests/kms_color.c | 9 +-
tests/kms_color_helper.c | 12 ++
tests/kms_color_helper.h | 1 +
tests/kms_concurrent.c | 10 +-
tests/kms_content_protection.c | 15 ++
tests/kms_cursor_crc.c | 33 ++++
tests/kms_cursor_edge_walk.c | 6 +
tests/kms_cursor_legacy.c | 202 +++++++++++++++---------
tests/kms_display_modes.c | 104 +++++++-----
tests/kms_dp_tiled_display.c | 1 +
tests/kms_flip_event_leak.c | 11 +-
tests/kms_invalid_mode.c | 6 +
tests/kms_lease.c | 8 +-
tests/kms_multipipe_modeset.c | 9 ++
tests/kms_pipe_crc_basic.c | 24 +++
tests/kms_plane.c | 30 ++--
tests/kms_plane_alpha_blend.c | 9 +-
tests/kms_plane_cursor.c | 6 +
tests/kms_plane_lowres.c | 3 +
tests/kms_plane_multiple.c | 15 +-
tests/kms_plane_scaling.c | 218 +++++++++++++++++---------
tests/kms_prime.c | 11 +-
tests/kms_properties.c | 18 +++
tests/kms_rmfb.c | 10 +-
tests/kms_rotation_crc.c | 25 ++-
tests/kms_scaling_modes.c | 8 +-
tests/kms_sequence.c | 6 +
tests/kms_universal_plane.c | 94 +++++++++--
tests/kms_vblank.c | 54 ++++++-
tests/kms_vrr.c | 6 +
53 files changed, 1219 insertions(+), 471 deletions(-)
--
2.38.0
^ permalink raw reply [flat|nested] 5+ messages in thread* [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR 2022-11-15 16:58 [igt-dev] [i-g-t v5 00/52] Add IGT support for Bigjoiner Bhanuprakash Modem @ 2022-11-15 16:58 ` Bhanuprakash Modem 0 siblings, 0 replies; 5+ messages in thread From: Bhanuprakash Modem @ 2022-11-15 16:58 UTC (permalink / raw) To: igt-dev This patch will try to enable VRR on Non-VRR panel. VRR should not be enabled on the Non-VRR panel. It is unlikely to reject the commit/modeset. And the expected behavior is the same as disabling VRR on a VRR capable panel. V2, V3: - Fix the condition check to run basic tests V4: - Fix the crash in CI (devided by zero) Cc: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> --- tests/kms_vrr.c | 70 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 8976d4a6..68c4f264 100644 --- a/tests/kms_vrr.c +++ b/tests/kms_vrr.c @@ -41,10 +41,11 @@ (m)->type, (m)->flags enum { - TEST_NONE = 0, - TEST_DPMS = 1 << 0, - TEST_SUSPEND = 1 << 1, - TEST_FLIPLINE = 1 << 2, + TEST_BASIC = 1 << 0, + TEST_DPMS = 1 << 1, + TEST_SUSPEND = 1 << 2, + TEST_FLIPLINE = 1 << 3, + TEST_NEGATIVE = 1 << 4, }; typedef struct range { @@ -116,7 +117,7 @@ static uint64_t get_time_ns(void) /* Returns the rate duration in nanoseconds for the given refresh rate. */ static uint64_t rate_from_refresh(uint64_t refresh) { - return NSECS_PER_SEC / refresh; + return refresh ? (NSECS_PER_SEC / refresh) : 0; } /* Instead of running on default mode, loop through the connector modes @@ -179,11 +180,16 @@ static vtest_ns_t get_test_rate_ns(range_t range) return vtest_ns; } -/* Returns true if an output supports VRR. */ +/* Returns true if driver supports VRR. */ static bool has_vrr(igt_output_t *output) { - return igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE) && - igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE); + return igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE); +} + +/* Returns true if an output supports VRR. */ +static bool vrr_capable(igt_output_t *output) +{ + return igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE); } /* Toggles variable refresh rate on the pipe. */ @@ -398,7 +404,8 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags) * Flip will happen right away so returned refresh rate is 50Hz. * if refresh_rate < 40Hz: * h/w will terminate the vblank at Vmax which is obvious. - * So, for now we can safely ignore the lower refresh rates + * So, vblank termination should happen at Vmax, and flip done at + * next Vmin. */ if (flags & TEST_FLIPLINE) { rate = rate_from_refresh(range.max + 5); @@ -408,17 +415,33 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags) (range.max + 5), rate, result); } - rate = vtest_ns.mid; - result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); - igt_assert_f(result > 75, - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n", - ((range.max + range.min) / 2), rate, result); + if (flags & ~TEST_NEGATIVE) { + rate = vtest_ns.mid; + result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); + igt_assert_f(result > 75, + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n", + ((range.max + range.min) / 2), rate, result); + } - set_vrr_on_pipe(data, pipe, false); + if (flags & TEST_FLIPLINE) { + rate = rate_from_refresh(range.min - 5); + result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); + igt_assert_f(result < 50, + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold exceeded, result was %u%%\n", + (range.min - 5), rate, result); + } + + /* + * If we request VRR on a non-VRR panel, it is unlikely to reject the + * modeset. And the expected behavior is the same as disabling VRR on + * a VRR capable panel. + */ + set_vrr_on_pipe(data, pipe, (flags & TEST_NEGATIVE)? true : false); + rate = vtest_ns.mid; result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS); igt_assert_f(result < 10, - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR off threshold exceeded, result was %u%%\n", - ((range.max + range.min) / 2), rate, result); + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold exceeded, result was %u%%\n", + ((range.max + range.min) / 2), rate, (flags & TEST_NEGATIVE)? "on" : "off", result); /* Clean-up */ igt_plane_set_fb(data->primary, NULL); @@ -442,6 +465,13 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags) if (!has_vrr(output)) continue; + /* For Negative tests, panel should be non-vrr. */ + if ((flags & TEST_NEGATIVE) && vrr_capable(output)) + continue; + + if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output)) + continue; + for_each_pipe(&data->display, pipe) { if (igt_pipe_connector_valid(pipe, output)) { igt_dynamic_f("pipe-%s-%s", @@ -470,7 +500,7 @@ igt_main igt_describe("Tests that VRR is enabled and that the difference between flip " "timestamps converges to the requested rate"); igt_subtest_with_dynamic("flip-basic") - run_vrr_test(&data, test_basic, 0); + run_vrr_test(&data, test_basic, TEST_BASIC); igt_describe("Tests with DPMS that VRR is enabled and that the difference between flip " "timestamps converges to the requested rate."); @@ -486,6 +516,10 @@ igt_main igt_subtest_with_dynamic("flipline") run_vrr_test(&data, test_basic, TEST_FLIPLINE); + igt_describe("Make sure that VRR should not be enabled on the Non-VRR panel."); + igt_subtest_with_dynamic("negative-basic") + run_vrr_test(&data, test_basic, TEST_NEGATIVE); + igt_fixture { igt_display_fini(&data.display); } -- 2.38.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-11-15 17:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-11-14 11:52 [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR Bhanuprakash Modem 2022-11-14 14:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork 2022-11-14 20:38 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2022-11-15 17:17 ` [igt-dev] [i-g-t] " Bhanuprakash Modem -- strict thread matches above, loose matches on Subject: below -- 2022-11-15 16:58 [igt-dev] [i-g-t v5 00/52] Add IGT support for Bigjoiner Bhanuprakash Modem 2022-11-15 16:58 ` [igt-dev] [i-g-t] tests/kms_vrr: Add Negative tests to validate VRR Bhanuprakash Modem
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox