[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