2015-12-03 14:39 GMT-02:00 Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>: > Unfortunately Sink CRC is not 100% reliable for all platforms. > So we cannot block FBC tests nor skip them when we are getting > unreliable Sink CRC results, or not getting them at all. > > Cc: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > --- > tests/kms_frontbuffer_tracking.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c > index c729cee..ddcec75 100644 > --- a/tests/kms_frontbuffer_tracking.c > +++ b/tests/kms_frontbuffer_tracking.c > @@ -1570,7 +1570,7 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags) > return flags; > } > > -#define do_crc_assertions(flags) do { \ > +#define do_crc_assertions(flags, mandatory_sink_crc) do { \ > int flags__ = (flags); \ > struct both_crcs crc_; \ > \ > @@ -1582,7 +1582,11 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags) > \ > igt_assert(wanted_crc); \ > igt_assert_crc_equal(&crc_.pipe, &wanted_crc->pipe); \ > - assert_sink_crc_equal(&crc_.sink, &wanted_crc->sink); \ > + if (mandatory_sink_crc) \ > + assert_sink_crc_equal(&crc_.sink, &wanted_crc->sink); \ > + else \ > + if (!sink_crc_equal(&crc_.sink, &wanted_crc->sink)) \ > + igt_info("Sink CRC differ, but not required\n"); \ > } while (0) > > #define do_status_assertions(flags_) do { \ > @@ -1618,12 +1622,13 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags) > > #define do_assertions(flags) do { \ > int flags_ = adjust_assertion_flags(t, (flags)); \ > + bool mandatory_sink_crc = t->feature & FEATURE_PSR; \ You could have declared this inside the do_crc_assertions() macro, making things a little simpler since we wouldn't need to pass the parameter below. With or without this: Acked-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > \ > wait_user(2, "Paused before assertions."); \ > \ > /* Check the CRC to make sure the drawing operations work \ > * immediately, independently of the features being enabled. */ \ > - do_crc_assertions(flags_); \ > + do_crc_assertions(flags_, mandatory_sink_crc); \ > \ > /* Now we can flush things to make the test faster. */ \ > do_flush(t); \ > @@ -1636,7 +1641,7 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags) > * would only delay the test suite while adding no value to the \ > * test suite. */ \ > if (t->screen == SCREEN_PRIM) \ > - do_crc_assertions(flags_); \ > + do_crc_assertions(flags_, mandatory_sink_crc); \ > \ > if (fbc.supports_last_action && opt.fbc_check_last_action) { \ > if (flags_ & ASSERT_LAST_ACTION_CHANGED) \ > -- > 2.4.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Paulo Zanoni _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx