[igt-dev] [PATCH v2 3/8] tests/kms_available_modes_crc: Don't set tiling for framebuffer

Imre Deak imre.deak at intel.com
Tue Feb 11 20:42:02 UTC 2020


On Tue, Feb 11, 2020 at 12:15:57PM -0800, Dixit, Ashutosh wrote:
> On Mon, 10 Feb 2020 18:31:03 -0800, Imre Deak wrote:
> >
> > From: Vanshidhar Konda <vanshidhar.r.konda at intel.com>
> >
> > The GEM object used for the framebuffer does not need tiling to be set
> > on it as the entire framebuffer is being filled with the same value -
> > tiling will not impact the end value of the buffer.
> >
> > Cc: Matt Roper <matthew.d.roper at intel.com>
> > Signed-off-by: Vanshidhar Konda <vanshidhar.r.konda at intel.com>
> > Signed-off-by: Imre Deak <imre.deak at intel.com>
> > Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> > ---
> >  tests/kms_available_modes_crc.c | 6 ------
> >  1 file changed, 6 deletions(-)
> >
> > diff --git a/tests/kms_available_modes_crc.c b/tests/kms_available_modes_crc.c
> > index 12761343..ed43d1fb 100644
> > --- a/tests/kms_available_modes_crc.c
> > +++ b/tests/kms_available_modes_crc.c
> > @@ -211,17 +211,11 @@ static bool setup_fb(data_t *data, igt_output_t *output, igt_plane_t *plane,
> >	data->buf = (unsigned char *)calloc(data->size*2, 1);
> >
> >	data->gem_handle = gem_create(data->gfx_fd, gemsize);
> > -	ret = __gem_set_tiling(data->gfx_fd, data->gem_handle,
> > -			       igt_fb_mod_to_tiling(tiling),
> > -			       data->fb.strides[0]);
> > -
> >	data->fb.gem_handle = data->gem_handle;
> >	data->fb.width = w;
> >	data->fb.height = h;
> >	fill_in_fb(data, output, plane, format);
> >
> > -	igt_assert_eq(ret, 0);
> > -
> >	ret = __kms_addfb(data->gfx_fd, data->gem_handle, w, h,
> >			  format, tiling, data->fb.strides, data->fb.offsets,
> >			  num_planes, LOCAL_DRM_MODE_FB_MODIFIERS,
> 
> I think there are still the following remaining issues with this patch:
> 
> 1. 33cc93c8 has introduced a gem_require_mappable_ggtt() skipping the
>    entire test. That should probably be removed as part of this patch?
> 
> 2. do_write() has a gem_mmap__gtt() which should be converted to
>    device_coherent()?

That's a good point, we'll need to use another way to write the test
image to the FB and stop skipping the test. However I think this patch
is still valid on its own, and the above things can be done as a
follow-up.

> 3. This is sort of optional but in my view there is an inconsistency here
>    which should be addressed:
> 
>    The original test was actually using a tiled object and using the tiling
>    available in the aperture/gtt to write to the object. Through this patch
>    we have essentially removed the tiling on the object. However, we are
>    continuing to use LOCAL_I915_FORMAT_MOD_X_TILED in setup_fb(). It just
>    happens that because we are filling in a single value the modifier is
>    immaterial.

It's not immaterial, the display will scan out an X tiled FB.

> 
>    Shouldn't this be made consistent? Either
> 
>    (a) we should change the modifier to LOCAL_DRM_FORMAT_MOD_NONE, or
> 
>    (b) if we are going to use the tiled modifer we should assume the object
>        is really tiled and use the blitter or rendercopy to write to the
>        object.

The test just solid fills the FB and we don't need to do that in a pixel
line-by-line order.

>    I guess (a) is simpler to do.


More information about the igt-dev mailing list