[igt-dev] [PATCH v2 5/8] tests/kms_draw_crc: Fix generating reference CRCs on platforms w/o aperture
Imre Deak
imre.deak at intel.com
Wed Feb 12 16:57:51 UTC 2020
On Wed, Feb 12, 2020 at 12:23:56PM +0200, Imre Deak wrote:
> On Tue, Feb 11, 2020 at 04:29:49PM -0800, Dixit, Ashutosh wrote:
> > On Mon, 10 Feb 2020 18:31:05 -0800, Imre Deak wrote:
> > >
> > > Generate reference CRCs by drawing through a CPU mapping, which is also
> > > available on platforms w/o a GTT aperture.
> > >
> > > v2:
> > > - Fix code comment in draw_method_subtest(). (Matt)
> > >
> > > Cc: Matt Roper <matthew.d.roper at intel.com>
> > > Signed-off-by: Imre Deak <imre.deak at intel.com>
> > > ---
> > > tests/kms_draw_crc.c | 6 +++---
> > > 1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/tests/kms_draw_crc.c b/tests/kms_draw_crc.c
> > > index 6de9feae..0e762ad1 100644
> > > --- a/tests/kms_draw_crc.c
> > > +++ b/tests/kms_draw_crc.c
> > > @@ -183,11 +183,11 @@ static void draw_method_subtest(enum igt_draw_method method,
> > >
> > > igt_require(format_is_supported(formats[format_index], tiling));
> > >
> > > - /* Use IGT_DRAW_MMAP_GTT on an untiled buffer as the parameter for
> > > + /* Use IGT_DRAW_MMAP_CPU on an untiled buffer as the parameter for
> > > * comparison. Cache the value so we don't recompute it for every single
> > > * subtest. */
> > > if (!base_crcs[format_index].set) {
> > > - get_method_crc(IGT_DRAW_MMAP_GTT, formats[format_index],
> > > + get_method_crc(IGT_DRAW_MMAP_CPU, formats[format_index],
> > > LOCAL_DRM_FORMAT_MOD_NONE,
> > > &base_crcs[format_index].crc);
> > > base_crcs[format_index].set = true;
> > > @@ -225,7 +225,7 @@ static void fill_fb_subtest(void)
> > > igt_create_fb(drm_fd, ms.mode->hdisplay, ms.mode->vdisplay,
> > > DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, &fb);
> > >
> > > - igt_draw_rect_fb(drm_fd, bufmgr, NULL, &fb, IGT_DRAW_MMAP_GTT,
> > > + igt_draw_rect_fb(drm_fd, bufmgr, NULL, &fb, IGT_DRAW_MMAP_CPU,
> > > 0, 0, fb.width, fb.height, 0xFF);
> >
> > Should be WC. CPU mapping will not work in all cases.
>
> I can't see why. This will result in a frontbuffer drawing that calls
> DRM_IOCTL_I915_GEM_SW_FINISH, which should flush CPU caches if needed.
Ok, so it's not only about cache-flushing but WB mapping not working on
local memory in general.
That also means we have to disable subtests that draw to the FB through
a CPU mapping, but I'll leave that for a follow-up (as we're missing the
required queries for that).
>
> --Imre
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
More information about the igt-dev
mailing list