summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Roberto de Souza <jose.souza@intel.com>2019-04-02 13:59:02 -0700
committerJosé Roberto de Souza <jose.souza@intel.com>2019-04-03 12:55:10 -0700
commitcf6ee44092c88580355133ce39b6d587e1f2efcd (patch)
treed8ad886222faa090807c1ad3abf7351c23a60707
parentff77959d1526fbace9bd12c9ecdac5d8715c4f73 (diff)
tests/frontbuffer_tracking: Assert the status of other features on stridechange subtest
As explained in c1edee186d18 ("tests/frontbuffer_tracking: Do not assert FBC state after a page flip changing stride") after changing the plane stride there is the possibility that CFB will not be big enough to keep FBC enabled, that is why do_assertions() is called with DONT_ASSERT_FEATURE_STATUS but DONT_ASSERT_FEATURE_STATUS is overkill and will not check the status of the other features like PSR and DRRS when running combined feature tests and possibly hiding bugs. So lets add a new flag that will only not assert FBC. Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
-rw-r--r--tests/kms_frontbuffer_tracking.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index caef6755..ee13b138 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -1509,6 +1509,7 @@ static void do_flush(const struct test_mode *t)
#define DONT_ASSERT_CRC (1 << 0)
#define DONT_ASSERT_FEATURE_STATUS (1 << 1)
+#define DONT_ASSERT_FBC_STATUS (1 << 12)
#define FBC_ASSERT_FLAGS (0xF << 2)
#define ASSERT_FBC_ENABLED (1 << 2)
@@ -1539,7 +1540,7 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags)
flags |= ASSERT_DRRS_HIGH;
}
- if ((t->feature & FEATURE_FBC) == 0)
+ if ((t->feature & FEATURE_FBC) == 0 || (flags & DONT_ASSERT_FBC_STATUS))
flags &= ~FBC_ASSERT_FLAGS;
if ((t->feature & FEATURE_PSR) == 0)
flags &= ~PSR_ASSERT_FLAGS;
@@ -2910,7 +2911,7 @@ static void stridechange_subtest(const struct test_mode *t)
fill_fb_region(&params->primary, COLOR_PRIM_BG);
set_mode_for_params(params);
- do_assertions(DONT_ASSERT_FEATURE_STATUS);
+ do_assertions(DONT_ASSERT_FBC_STATUS);
/* Go back to the fb that can have FBC. */
params->primary.fb = old_fb;
@@ -2920,7 +2921,7 @@ static void stridechange_subtest(const struct test_mode *t)
/* This operation is the same as above, but with the planes API. */
params->primary.fb = new_fb;
set_prim_plane_for_params(params);
- do_assertions(DONT_ASSERT_FEATURE_STATUS);
+ do_assertions(DONT_ASSERT_FBC_STATUS);
params->primary.fb = old_fb;
set_prim_plane_for_params(params);
@@ -2932,7 +2933,7 @@ static void stridechange_subtest(const struct test_mode *t)
*/
rc = drmModePageFlip(drm.fd, drm.display.pipes[params->pipe].crtc_id, new_fb->fb_id, 0, NULL);
igt_assert(rc == -EINVAL || rc == 0);
- do_assertions(rc ? 0 : DONT_ASSERT_FEATURE_STATUS);
+ do_assertions(rc ? 0 : DONT_ASSERT_FBC_STATUS);
}
/**