Re: [PATCH i-g-t] tests/kms_frontbuffer_tracking: Try harder to collect CRC's

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2017-09-22 at 15:25 +0000, Rodrigo Vivi wrote:
> 
> Maybe we are missing a vblank wait somewhere on kernel CRC code?!
> Or maybe o kernel we read and discard the first for GLK?! :/
> Also this is pipe crc right?! Shouldn't it be independent of the
> panel at the end?! Does it only happen with MIPI/DSI ?! Or it just
> happen on that particular unity on CI that coincidentally has this
> panel?!
Yes, this is pipe crc. It should be independent of the display panel.
GLK+MIPI/DSI was the first platform that hit this issue. There are
others such as BDW, CFL and CNL that seems to be affected by this

https://bugs.freedesktop.org/show_bug.cgi?id=102374


> 
> On Fri, Sep 22, 2017 at 5:40 AM Mika Kahola <mika.kahola@xxxxxxxxx>
> wrote:
> > It seems that at least with GLK with MIPI/DSI display, the first
> > collected
> > CRC is bogus. To fix this, try to collect two CRC's instead of one.
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101309
> > Signed-off-by: Mika Kahola <mika.kahola@xxxxxxxxx>
> > ---
> >  tests/kms_frontbuffer_tracking.c | 12 +++++++++++-
> >  1 file changed, 11 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index a068c8a..df7cc6e 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -1239,8 +1239,18 @@ static void print_crc(const char *str,
> > struct both_crcs *crc)
> > 
> >  static void collect_crcs(struct both_crcs *crcs, bool
> > mandatory_sink_crc)
> >  {
> > -       igt_pipe_crc_collect_crc(pipe_crc, &crcs->pipe);
> > +       int n;
> > +       igt_crc_t *crc = NULL;
> > +
> > +       igt_pipe_crc_start(pipe_crc);
> > +       n = igt_pipe_crc_get_crcs(pipe_crc, 2, &crc);
> > +       igt_pipe_crc_stop(pipe_crc);
> > +       igt_assert(n > 0);
> > +       igt_assert_crc_equal(&crc[0], &crc[1]);
> > +       crcs->pipe = crc[0];
> > +
> >         get_sink_crc(&crcs->sink, mandatory_sink_crc);
> > +       free(crc);
> >  }
> > 
> >  static void init_blue_crc(enum pixel_format format, bool
> > mandatory_sink_crc)
> > --
> > 2.7.4
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 
> -- 
> Rodrigo Vivi
> Blog: http://blog.vivi.eng.br
>  
-- 
Mika Kahola - Intel OTC

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux