* [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane
@ 2023-10-25 12:02 Nidhi Gupta
0 siblings, 0 replies; 5+ messages in thread
From: Nidhi Gupta @ 2023-10-25 12:02 UTC (permalink / raw)
To: igt-dev; +Cc: Nidhi Gupta
Added a new subtest to validate FBC on each plane, this new subtest
will first disable the fbc feature on all pipes and planes and then
enable it on all plane one by one and confirm.
v2: Modify tests to disable primary and enable other plane
to check fbc is enabled or not. <Bhanu>
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
tests/intel/kms_frontbuffer_tracking.c | 122 +++++++++++++++++++++++++
1 file changed, 122 insertions(+)
diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
index f90d09f9f..1c7903249 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -224,6 +224,8 @@ struct fb_region {
int h;
};
+struct igt_fb default_fb;
+
struct draw_pattern_info {
bool frames_stack;
int n_rects;
@@ -888,6 +890,14 @@ static bool fbc_mode_too_large(void)
return strstr(buf, "FBC disabled: mode too large for compression\n");
}
+static bool fbc_enable_per_plane(void)
+{
+ char buf[128];
+
+ debugfs_read_crtc("i915_fbc_status", buf);
+ return strstr(buf, "*");
+}
+
static bool drrs_wait_until_rr_switch_to_low(void)
{
return igt_wait(is_drrs_low(), 5000, 1);
@@ -1691,6 +1701,31 @@ static void set_region_for_test(const struct test_mode *t,
do_assertions(ASSERT_NO_ACTION_CHANGE);
}
+static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane)
+{
+ //create_fb
+ struct igt_fb fb;
+ uint32_t color;
+
+ igt_create_fb(drm.fd, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay,
+ t->format, DRM_FORMAT_MOD_LINEAR, &fb);
+ //fill_fb_region
+ color = pick_color(&fb, COLOR_PRIM_BG);
+
+ igt_draw_rect_fb(drm.fd, drm.bops, 0, &fb, IGT_DRAW_BLT,
+ 0, 0, fb.width, fb.height,
+ color);
+ set_mode_for_params(&prim_mode_params);
+ igt_plane_set_fb(plane, &fb);
+ igt_plane_set_position(plane, 0, 0);
+ igt_plane_set_size(plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay);
+ igt_fb_set_size(&fb, plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay);
+
+ igt_display_commit(&drm.display);
+ igt_require(!fbc_enable_per_plane());
+ do_assertions(ASSERT_NO_ACTION_CHANGE);
+}
+
static bool enable_features_for_test(const struct test_mode *t)
{
bool ret = false;
@@ -1941,6 +1976,65 @@ static void rte_subtest(const struct test_mode *t)
}
}
+/**
+ * SUBTEST: plane-%u-fbc-rte
+ * Description: Disable the provided %arg[1] plane and enable again
+ * Driver requirement: i915, xe
+ * Functionality: fbc
+ * Mega feature: General Display Features
+ * Test category: functionality test
+ *
+ * arg[1].values: 0, 1, 2
+ */
+
+/**
+ * SUBTEST: plane-0-fbc-rte
+ * Description: Disable the provided %arg[1] plane and enable again
+ * Driver requirement: i915, xe
+ * Functionality: fbc
+ * Mega feature: General Display Features
+ * Test category: functionality test
+ *
+ * SUBTEST: plane-1-fbc-rte
+ * Description: Disable the provided %arg[1] plane and enable again
+ * Driver requirement: i915, xe
+ * Functionality: fbc
+ * Mega feature: General Display Features
+ * Test category: functionality test
+ *
+ * SUBTEST: plane-2-fbc-rte
+ * Description: Disable the provided %arg[1] plane and enable again
+ * Driver requirement: i915, xe
+ * Functionality: fbc
+ * Mega feature: General Display Features
+ * Test category: functionality test
+ */
+
+/**
+ * plane-fbc-rte - the basic sanity test
+ *
+ * METHOD
+ * Just disable all screens, assert everything is disabled, then enable all
+ * screens and planes and assert that the tested feature is enabled.
+ *
+ * EXPECTED RESULTS
+ * Blue screens and t->feature enabled.
+ *
+ * FAILURES
+ * A failure here means that every other subtest will probably fail too. It
+ * probably means that the Kernel is just not enabling the feature we want.
+ */
+static void plane_fbc_rte_subtest(const struct test_mode *t, igt_plane_t *plane)
+{
+ do_assertions(ASSERT_FBC_DISABLED);
+
+ if (plane->index == 0)
+ enable_prim_screen_and_wait(t);
+ if (plane->index > 0)
+ set_plane_for_test_fbc(t, plane);
+
+}
+
static void update_wanted_crc(const struct test_mode *t, igt_crc_t *crc)
{
if (t->screen == SCREEN_PRIM)
@@ -4910,6 +5004,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
{
struct test_mode t;
int devid;
+ igt_plane_t *plane;
igt_fixture {
setup_environment();
@@ -4936,6 +5031,33 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
}
}
+ igt_subtest_with_dynamic("plane-fbc-rte") {
+
+ int n_planes = 0;
+
+ t.pipes = PIPE_SINGLE;
+ t.feature = FEATURE_FBC;
+ t.screen = SCREEN_PRIM;
+ t.fbs = FBS_INDIVIDUAL;
+ t.format = FORMAT_DEFAULT;
+ /* Make sure nothing is using these values. */
+ t.flip = -1;
+ t.method = -1;
+ t.tiling = opt.tiling;
+
+ for_each_plane_on_pipe(&drm.display, prim_mode_params.pipe, plane) {
+ n_planes++;
+ if (n_planes == 4)
+ break;
+ igt_dynamic_f("plane-%u-fbc-rte", plane->index) {
+ prepare_subtest_data(&t, NULL);
+ unset_all_crtcs();
+ plane_fbc_rte_subtest(&t, plane);
+ n_planes++;
+ }
+ }
+ }
+
TEST_MODE_ITER_BEGIN(t)
igt_subtest_f("%s-%s-%s-%s-%s-draw-%s",
--
2.39.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane
@ 2023-10-30 7:58 Nidhi Gupta
2023-10-30 9:05 ` [igt-dev] ✓ CI.xeBAT: success for tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6) Patchwork
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Nidhi Gupta @ 2023-10-30 7:58 UTC (permalink / raw)
To: igt-dev; +Cc: Nidhi Gupta
Added a new subtest to validate FBC on each plane, this new subtest
will first disable the fbc feature on all pipes and planes and then
enable it on all plane one by one and confirm.
v2: Modify tests to disable primary and enable other plane
to check fbc is enabled or not. <Bhanu>
v3: Implemented design changes as suggested <Bhanu>
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
tests/intel/kms_frontbuffer_tracking.c | 113 +++++++++++++++++++++++--
1 file changed, 105 insertions(+), 8 deletions(-)
diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
index f90d09f9f..a549a7fea 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -45,6 +45,15 @@
#define TIME SLOW_QUICK(1000, 10000)
+/**
+ * SUBTEST: plane-fbc-rte
+ * Description: Sanity test to enable FBC on a plane.
+ * Driver requirement: i915, xe
+ * Functionality: fbc
+ * Mega feature: General Display Features
+ * Test category: functionality test
+ */
+
IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and "
"its related features: FBC, PSR and DRRS");
@@ -381,14 +390,6 @@ static void init_mode_params(struct modeset_params *params,
params->cursor.w = 64;
params->cursor.h = 64;
- params->sprite.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_OVERLAY);
- igt_require(params->sprite.plane);
- params->sprite.fb = NULL;
- params->sprite.x = 0;
- params->sprite.y = 0;
- params->sprite.w = 64;
- params->sprite.h = 64;
-
free(mode);
}
@@ -888,6 +889,19 @@ static bool fbc_mode_too_large(void)
return strstr(buf, "FBC disabled: mode too large for compression\n");
}
+static bool fbc_enable_per_plane(int plane_index, enum pipe pipe)
+{
+ char buf[128];
+ char buf1[128];
+ char pipe_name;
+
+ pipe_name = *kmstest_pipe_name(pipe);
+ sprintf(buf1, "%d%s", plane_index, &pipe_name);
+
+ debugfs_read_crtc("i915_fbc_status", buf);
+ return strstr(buf, buf1);
+}
+
static bool drrs_wait_until_rr_switch_to_low(void)
{
return igt_wait(is_drrs_low(), 5000, 1);
@@ -1691,6 +1705,32 @@ static void set_region_for_test(const struct test_mode *t,
do_assertions(ASSERT_NO_ACTION_CHANGE);
}
+static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane)
+{
+ struct igt_fb fb;
+ uint32_t color;
+
+ igt_create_fb(drm.fd, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay,
+ t->format, DRM_FORMAT_MOD_LINEAR, &fb);
+ color = pick_color(&fb, COLOR_PRIM_BG);
+
+ igt_draw_rect_fb(drm.fd, drm.bops, 0, &fb, IGT_DRAW_BLT,
+ 0, 0, fb.width, fb.height,
+ color);
+
+ igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode);
+ igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe);
+
+ igt_plane_set_fb(plane, &fb);
+ igt_plane_set_position(plane, 0, 0);
+ igt_plane_set_size(plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay);
+ igt_fb_set_size(&fb, plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay);
+
+ igt_display_commit(&drm.display);
+ igt_require(!fbc_enable_per_plane(plane->index, prim_mode_params.pipe));
+ do_assertions(ASSERT_NO_ACTION_CHANGE);
+}
+
static bool enable_features_for_test(const struct test_mode *t)
{
bool ret = false;
@@ -1941,6 +1981,49 @@ static void rte_subtest(const struct test_mode *t)
}
}
+static bool is_valid_plane(igt_plane_t *plane)
+{
+ int index = plane->index;
+ /*
+ * Execute test only on first three planes
+ */
+
+ return index != 0 && index != 1 && index != 2;
+}
+
+/**
+ * plane-fbc-rte - the basic sanity test
+ *
+ * METHOD
+ * Just disable primary screen, assert everything is disabled, then enable single
+ * screens and single plane one by one and assert that the tested fbc is enabled
+ * for the particular plane.
+ *
+ * EXPECTED RESULTS
+ * Blue screens and t->feature enabled.
+ *
+ * FAILURES
+ * A failure here means that every other subtest will probably fail too. It
+ * probably means that the Kernel is just not enabling the feature we want.
+ */
+
+static void plane_fbc_rte_subtest(const struct test_mode *t)
+{
+ igt_plane_t *plane;
+
+ for_each_plane_on_pipe(&drm.display, t->pipes, plane) {
+
+ if (!is_valid_plane(plane))
+ continue;
+
+ prepare_subtest_data(t, NULL);
+ unset_all_crtcs();
+ do_assertions(ASSERT_FBC_DISABLED);
+ set_plane_for_test_fbc(t, plane);
+ }
+
+}
+
static void update_wanted_crc(const struct test_mode *t, igt_crc_t *crc)
{
if (t->screen == SCREEN_PRIM)
@@ -4936,6 +5019,20 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
}
}
+ t.pipes = PIPE_SINGLE;
+ t.feature = FEATURE_FBC;
+ t.screen = SCREEN_PRIM;
+ t.fbs = FBS_INDIVIDUAL;
+ t.format = FORMAT_DEFAULT;
+ /* Make sure nothing is using these values. */
+ t.flip = -1;
+ t.method = -1;
+ t.tiling = opt.tiling;
+
+ igt_subtest_f("plane-fbc-rte") {
+ plane_fbc_rte_subtest(&t);
+ }
+
TEST_MODE_ITER_BEGIN(t)
igt_subtest_f("%s-%s-%s-%s-%s-draw-%s",
--
2.39.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] ✓ CI.xeBAT: success for tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6)
2023-10-30 7:58 [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane Nidhi Gupta
@ 2023-10-30 9:05 ` Patchwork
2023-10-30 9:11 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
2023-10-30 11:24 ` [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane Modem, Bhanuprakash
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2023-10-30 9:05 UTC (permalink / raw)
To: Nidhi Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 1579 bytes --]
== Series Details ==
Series: tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6)
URL : https://patchwork.freedesktop.org/series/123724/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_7563_BAT -> XEIGTPW_10082_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 2)
------------------------------
Missing (2): bat-dg2-oem2 bat-adlp-7
Known issues
------------
Here are the changes found in XEIGTPW_10082_BAT that come from known issues:
### IGT changes ###
#### Possible fixes ####
* {igt@xe_evict_ccs@evict-ccs-overcommit-simple}:
- bat-pvc-2: [FAIL][1] -> [PASS][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7563/bat-pvc-2/igt@xe_evict_ccs@evict-ccs-overcommit-simple.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10082/bat-pvc-2/igt@xe_evict_ccs@evict-ccs-overcommit-simple.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
Build changes
-------------
* IGT: IGT_7563 -> IGTPW_10082
IGTPW_10082: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/index.html
IGT_7563: 3f58d866798c3d7896789903f92997f2312b2305 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-455-de883f4aeb33287b3dc84a369c5af0bc89982856: de883f4aeb33287b3dc84a369c5af0bc89982856
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10082/index.html
[-- Attachment #2: Type: text/html, Size: 2158 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6)
2023-10-30 7:58 [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane Nidhi Gupta
2023-10-30 9:05 ` [igt-dev] ✓ CI.xeBAT: success for tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6) Patchwork
@ 2023-10-30 9:11 ` Patchwork
2023-10-30 11:24 ` [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane Modem, Bhanuprakash
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2023-10-30 9:11 UTC (permalink / raw)
To: Nidhi Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 15301 bytes --]
== Series Details ==
Series: tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6)
URL : https://patchwork.freedesktop.org/series/123724/
State : failure
== Summary ==
CI Bug Log - changes from IGT_7563 -> IGTPW_10082
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_10082 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_10082, please notify your bug team (lgci.bug.filing@intel.com) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/index.html
Participating hosts (40 -> 36)
------------------------------
Additional (1): fi-pnv-d510
Missing (5): bat-kbl-2 fi-bsw-n3050 bat-dg2-8 fi-snb-2520m bat-mtlp-8
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_10082:
### IGT changes ###
#### Possible regressions ####
* igt@kms_frontbuffer_tracking@basic:
- bat-adlp-11: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-adlp-11/igt@kms_frontbuffer_tracking@basic.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adlp-11/igt@kms_frontbuffer_tracking@basic.html
- fi-hsw-4770: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-hsw-4770/igt@kms_frontbuffer_tracking@basic.html
- fi-cfl-8109u: [PASS][4] -> [FAIL][5]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html
- bat-adln-1: [PASS][6] -> [FAIL][7]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-adln-1/igt@kms_frontbuffer_tracking@basic.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adln-1/igt@kms_frontbuffer_tracking@basic.html
- fi-ivb-3770: [PASS][8] -> [FAIL][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-ivb-3770/igt@kms_frontbuffer_tracking@basic.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-ivb-3770/igt@kms_frontbuffer_tracking@basic.html
- fi-ilk-650: [PASS][10] -> [FAIL][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-ilk-650/igt@kms_frontbuffer_tracking@basic.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-ilk-650/igt@kms_frontbuffer_tracking@basic.html
- bat-jsl-1: [PASS][12] -> [FAIL][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-jsl-1/igt@kms_frontbuffer_tracking@basic.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-jsl-1/igt@kms_frontbuffer_tracking@basic.html
- fi-tgl-1115g4: [PASS][14] -> [FAIL][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-tgl-1115g4/igt@kms_frontbuffer_tracking@basic.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-tgl-1115g4/igt@kms_frontbuffer_tracking@basic.html
- bat-adlp-6: [PASS][16] -> [FAIL][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-adlp-6/igt@kms_frontbuffer_tracking@basic.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adlp-6/igt@kms_frontbuffer_tracking@basic.html
- fi-skl-6600u: [PASS][18] -> [FAIL][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-skl-6600u/igt@kms_frontbuffer_tracking@basic.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-skl-6600u/igt@kms_frontbuffer_tracking@basic.html
- fi-apl-guc: [PASS][20] -> [FAIL][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-apl-guc/igt@kms_frontbuffer_tracking@basic.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-apl-guc/igt@kms_frontbuffer_tracking@basic.html
- bat-dg1-5: [PASS][22] -> [FAIL][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-dg1-5/igt@kms_frontbuffer_tracking@basic.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-dg1-5/igt@kms_frontbuffer_tracking@basic.html
- fi-pnv-d510: NOTRUN -> [FAIL][24]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-pnv-d510/igt@kms_frontbuffer_tracking@basic.html
- fi-glk-j4005: [PASS][25] -> [FAIL][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-glk-j4005/igt@kms_frontbuffer_tracking@basic.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-glk-j4005/igt@kms_frontbuffer_tracking@basic.html
- bat-adlp-9: [PASS][27] -> [FAIL][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-adlp-9/igt@kms_frontbuffer_tracking@basic.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adlp-9/igt@kms_frontbuffer_tracking@basic.html
- fi-skl-guc: [PASS][29] -> [FAIL][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-skl-guc/igt@kms_frontbuffer_tracking@basic.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-skl-guc/igt@kms_frontbuffer_tracking@basic.html
- bat-dg2-11: [PASS][31] -> [FAIL][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-dg2-11/igt@kms_frontbuffer_tracking@basic.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-dg2-11/igt@kms_frontbuffer_tracking@basic.html
- fi-kbl-soraka: [PASS][33] -> [FAIL][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-kbl-soraka/igt@kms_frontbuffer_tracking@basic.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-kbl-soraka/igt@kms_frontbuffer_tracking@basic.html
- fi-kbl-7567u: [PASS][35] -> [FAIL][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-kbl-7567u/igt@kms_frontbuffer_tracking@basic.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-kbl-7567u/igt@kms_frontbuffer_tracking@basic.html
- fi-cfl-8700k: [PASS][37] -> [FAIL][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-cfl-8700k/igt@kms_frontbuffer_tracking@basic.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-cfl-8700k/igt@kms_frontbuffer_tracking@basic.html
- bat-rplp-1: [PASS][39] -> [FAIL][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-rplp-1/igt@kms_frontbuffer_tracking@basic.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-rplp-1/igt@kms_frontbuffer_tracking@basic.html
- fi-rkl-11600: [PASS][41] -> [FAIL][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-rkl-11600/igt@kms_frontbuffer_tracking@basic.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-rkl-11600/igt@kms_frontbuffer_tracking@basic.html
- fi-cfl-guc: [PASS][43] -> [FAIL][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-cfl-guc/igt@kms_frontbuffer_tracking@basic.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-cfl-guc/igt@kms_frontbuffer_tracking@basic.html
- bat-jsl-3: [PASS][45] -> [FAIL][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-jsl-3/igt@kms_frontbuffer_tracking@basic.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-jsl-3/igt@kms_frontbuffer_tracking@basic.html
#### Warnings ####
* igt@kms_frontbuffer_tracking@basic:
- fi-elk-e7500: [SKIP][47] ([fdo#109271]) -> [FAIL][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-elk-e7500/igt@kms_frontbuffer_tracking@basic.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-elk-e7500/igt@kms_frontbuffer_tracking@basic.html
- fi-blb-e6850: [SKIP][49] ([fdo#109271]) -> [FAIL][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-blb-e6850/igt@kms_frontbuffer_tracking@basic.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-blb-e6850/igt@kms_frontbuffer_tracking@basic.html
- fi-bsw-nick: [FAIL][51] ([i915#9276]) -> [FAIL][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-bsw-nick/igt@kms_frontbuffer_tracking@basic.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-bsw-nick/igt@kms_frontbuffer_tracking@basic.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_frontbuffer_tracking@basic:
- {bat-dg2-14}: [PASS][53] -> [FAIL][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-dg2-14/igt@kms_frontbuffer_tracking@basic.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-dg2-14/igt@kms_frontbuffer_tracking@basic.html
Known issues
------------
Here are the changes found in IGTPW_10082 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@gt_heartbeat:
- fi-glk-j4005: [PASS][55] -> [DMESG-FAIL][56] ([i915#5334])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_suspend@basic-s2idle-without-i915:
- bat-dg1-5: [PASS][57] -> [ABORT][58] ([i915#4817] / [i915#8213])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-dg1-5/igt@i915_suspend@basic-s2idle-without-i915.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-dg1-5/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770: NOTRUN -> [SKIP][59] ([fdo#109271] / [i915#5190])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_busy@basic@modeset:
- bat-adlp-11: [PASS][60] -> [DMESG-WARN][61] ([i915#6868])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-adlp-11/igt@kms_busy@basic@modeset.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adlp-11/igt@kms_busy@basic@modeset.html
* igt@kms_flip@basic-flip-vs-dpms@c-dp5:
- bat-adlp-11: [PASS][62] -> [DMESG-FAIL][63] ([i915#6868])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-adlp-11/igt@kms_flip@basic-flip-vs-dpms@c-dp5.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adlp-11/igt@kms_flip@basic-flip-vs-dpms@c-dp5.html
* igt@kms_flip@basic-flip-vs-dpms@d-dp5:
- bat-adlp-11: [PASS][64] -> [FAIL][65] ([i915#6121])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-adlp-11/igt@kms_flip@basic-flip-vs-dpms@d-dp5.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adlp-11/igt@kms_flip@basic-flip-vs-dpms@d-dp5.html
* igt@kms_flip@basic-flip-vs-modeset:
- bat-adlp-11: NOTRUN -> [SKIP][66] ([i915#3637])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-adlp-11/igt@kms_flip@basic-flip-vs-modeset.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1:
- fi-hsw-4770: NOTRUN -> [SKIP][67] ([fdo#109271]) +12 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1.html
* igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
- bat-rplp-1: [PASS][68] -> [ABORT][69] ([i915#8668])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-c-vga-1:
- fi-hsw-4770: NOTRUN -> [DMESG-WARN][70] ([i915#8841]) +6 other tests dmesg-warn
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-hsw-4770/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-c-vga-1.html
* igt@kms_psr@primary_page_flip:
- fi-pnv-d510: NOTRUN -> [SKIP][71] ([fdo#109271]) +28 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-pnv-d510/igt@kms_psr@primary_page_flip.html
* igt@kms_psr@sprite_plane_onoff:
- fi-hsw-4770: NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#1072]) +3 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html
#### Possible fixes ####
* igt@i915_selftest@live@mman:
- bat-rpls-1: [TIMEOUT][73] ([i915#6794] / [i915#7392]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-rpls-1/igt@i915_selftest@live@mman.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-rpls-1/igt@i915_selftest@live@mman.html
* igt@i915_suspend@basic-s2idle-without-i915:
- bat-rpls-1: [WARN][75] ([i915#8747]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7563/bat-rpls-1/igt@i915_suspend@basic-s2idle-without-i915.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/bat-rpls-1/igt@i915_suspend@basic-s2idle-without-i915.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
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#4817]: https://gitlab.freedesktop.org/drm/intel/issues/4817
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6121]: https://gitlab.freedesktop.org/drm/intel/issues/6121
[i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794
[i915#6868]: https://gitlab.freedesktop.org/drm/intel/issues/6868
[i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
[i915#7392]: https://gitlab.freedesktop.org/drm/intel/issues/7392
[i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
[i915#8747]: https://gitlab.freedesktop.org/drm/intel/issues/8747
[i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841
[i915#8981]: https://gitlab.freedesktop.org/drm/intel/issues/8981
[i915#9276]: https://gitlab.freedesktop.org/drm/intel/issues/9276
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7563 -> IGTPW_10082
CI-20190529: 20190529
CI_DRM_13809: 4949f524796f1292c50b35c85c428362b2baccbc @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_10082: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/index.html
IGT_7563: 3f58d866798c3d7896789903f92997f2312b2305 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@kms_frontbuffer_tracking@plane-fbc-rte
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10082/index.html
[-- Attachment #2: Type: text/html, Size: 16965 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane
2023-10-30 7:58 [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane Nidhi Gupta
2023-10-30 9:05 ` [igt-dev] ✓ CI.xeBAT: success for tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6) Patchwork
2023-10-30 9:11 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
@ 2023-10-30 11:24 ` Modem, Bhanuprakash
2 siblings, 0 replies; 5+ messages in thread
From: Modem, Bhanuprakash @ 2023-10-30 11:24 UTC (permalink / raw)
To: Nidhi Gupta, igt-dev
Hi Nidhi,
On Mon-30-10-2023 01:28 pm, Nidhi Gupta wrote:
> Added a new subtest to validate FBC on each plane, this new subtest
> will first disable the fbc feature on all pipes and planes and then
> enable it on all plane one by one and confirm.
>
> v2: Modify tests to disable primary and enable other plane
> to check fbc is enabled or not. <Bhanu>
>
> v3: Implemented design changes as suggested <Bhanu>
>
> Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
> ---
> tests/intel/kms_frontbuffer_tracking.c | 113 +++++++++++++++++++++++--
> 1 file changed, 105 insertions(+), 8 deletions(-)
>
> diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
> index f90d09f9f..a549a7fea 100644
> --- a/tests/intel/kms_frontbuffer_tracking.c
> +++ b/tests/intel/kms_frontbuffer_tracking.c
> @@ -45,6 +45,15 @@
>
> #define TIME SLOW_QUICK(1000, 10000)
>
> +/**
> + * SUBTEST: plane-fbc-rte
> + * Description: Sanity test to enable FBC on a plane.
> + * Driver requirement: i915, xe
> + * Functionality: fbc
> + * Mega feature: General Display Features
> + * Test category: functionality test
> + */
Please move the documentation to just below #includes.
> +
> IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and "
> "its related features: FBC, PSR and DRRS");
>
> @@ -381,14 +390,6 @@ static void init_mode_params(struct modeset_params *params,
> params->cursor.w = 64;
> params->cursor.h = 64;
>
> - params->sprite.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_OVERLAY);
> - igt_require(params->sprite.plane);
> - params->sprite.fb = NULL;
> - params->sprite.x = 0;
> - params->sprite.y = 0;
> - params->sprite.w = 64;
> - params->sprite.h = 64;
Why did you drop these changes? It'll cause a regression.
> -
> free(mode);
> }
>
> @@ -888,6 +889,19 @@ static bool fbc_mode_too_large(void)
> return strstr(buf, "FBC disabled: mode too large for compression\n");
> }
>
> +static bool fbc_enable_per_plane(int plane_index, enum pipe pipe)
> +{
> + char buf[128];
> + char buf1[128];
Please use some meaningful name, probably "buf_plane"
> + char pipe_name;
> +
> + pipe_name = *kmstest_pipe_name(pipe);
> + sprintf(buf1, "%d%s", plane_index, &pipe_name);
--------------------------------------------^
Please drop the variable "pipe_name", instead you can use
kmstest_pipe_name() directly.
> +
> + debugfs_read_crtc("i915_fbc_status", buf);
> + return strstr(buf, buf1);
We need to check if '*' is present in front of the enabled plane.
Example:
* [PLANE:40:plane 2A]: FBC possible
Probably, you need a similar change as below:
- return strstr(buf, buf1);
+ return strstr(strstr(buf, '*'), buf1);
> +}
> +
> static bool drrs_wait_until_rr_switch_to_low(void)
> {
> return igt_wait(is_drrs_low(), 5000, 1);
> @@ -1691,6 +1705,32 @@ static void set_region_for_test(const struct test_mode *t,
> do_assertions(ASSERT_NO_ACTION_CHANGE);
> }
>
> +static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane)
> +{
> + struct igt_fb fb;
> + uint32_t color;
> +
> + igt_create_fb(drm.fd, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay,
> + t->format, DRM_FORMAT_MOD_LINEAR, &fb);
> + color = pick_color(&fb, COLOR_PRIM_BG);
> +
> + igt_draw_rect_fb(drm.fd, drm.bops, 0, &fb, IGT_DRAW_BLT,
> + 0, 0, fb.width, fb.height,
> + color);
> +
> + igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode);
> + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe);
> +
> + igt_plane_set_fb(plane, &fb);
> + igt_plane_set_position(plane, 0, 0);
> + igt_plane_set_size(plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay);
> + igt_fb_set_size(&fb, plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay);
> +
> + igt_display_commit(&drm.display);
> + igt_require(!fbc_enable_per_plane(plane->index, prim_mode_params.pipe));
> + do_assertions(ASSERT_NO_ACTION_CHANGE);
----------------------^
Should be ASSERT_FBC_ENABLED, right?
> +}
> +
> static bool enable_features_for_test(const struct test_mode *t)
> {
> bool ret = false;
> @@ -1941,6 +1981,49 @@ static void rte_subtest(const struct test_mode *t)
> }
> }
>
> +static bool is_valid_plane(igt_plane_t *plane)
> +{
> + int index = plane->index;
> + /*
> + * Execute test only on first three planes
> + */
> +
> + return index != 0 && index != 1 && index != 2;
Please fix this logic as it returns False if plane->index is less than
3, else True.
Also please add a check to reject the cursor plane.
> +}
> +
> +/**
> + * plane-fbc-rte - the basic sanity test
> + *
> + * METHOD
> + * Just disable primary screen, assert everything is disabled, then enable single
> + * screens and single plane one by one and assert that the tested fbc is enabled
> + * for the particular plane.
> + *
> + * EXPECTED RESULTS
> + * Blue screens and t->feature enabled.
> + *
> + * FAILURES
> + * A failure here means that every other subtest will probably fail too. It
> + * probably means that the Kernel is just not enabling the feature we want.
> + */
> +
> +static void plane_fbc_rte_subtest(const struct test_mode *t)
> +{
> + igt_plane_t *plane;
> +
> + for_each_plane_on_pipe(&drm.display, t->pipes, plane) {
> +
> + if (!is_valid_plane(plane))
> + continue;
> +
> + prepare_subtest_data(t, NULL);
> + unset_all_crtcs();
> + do_assertions(ASSERT_FBC_DISABLED);
I think, these three calls are not required for each plane, since we are
not using any plane info.
- Bhanu
> + set_plane_for_test_fbc(t, plane);
> + }
> +
> +}
> +
> static void update_wanted_crc(const struct test_mode *t, igt_crc_t *crc)
> {
> if (t->screen == SCREEN_PRIM)
> @@ -4936,6 +5019,20 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
> }
> }
>
> + t.pipes = PIPE_SINGLE;
> + t.feature = FEATURE_FBC;
> + t.screen = SCREEN_PRIM;
> + t.fbs = FBS_INDIVIDUAL;
> + t.format = FORMAT_DEFAULT;
> + /* Make sure nothing is using these values. */
> + t.flip = -1;
> + t.method = -1;
> + t.tiling = opt.tiling;
> +
> + igt_subtest_f("plane-fbc-rte") {
> + plane_fbc_rte_subtest(&t);
> + }
> +
> TEST_MODE_ITER_BEGIN(t)
>
> igt_subtest_f("%s-%s-%s-%s-%s-draw-%s",
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-10-30 11:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-30 7:58 [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane Nidhi Gupta
2023-10-30 9:05 ` [igt-dev] ✓ CI.xeBAT: success for tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane (rev6) Patchwork
2023-10-30 9:11 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
2023-10-30 11:24 ` [igt-dev] [PATCH i-g-t v4] tests/kms_frontbuffer_tracking: Extend the test to enable FBC for each plane Modem, Bhanuprakash
-- strict thread matches above, loose matches on Subject: below --
2023-10-25 12:02 Nidhi Gupta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox