[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 10:23:56 UTC 2020


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.

--Imre


More information about the igt-dev mailing list