[igt-dev] [PATCH i-g-t v3 04/15] igt/tests: Add support for Tile4(TileF) format to kms_draw_crc

Lisovskiy, Stanislav stanislav.lisovskiy at intel.com
Fri Feb 18 10:16:00 UTC 2022


On Fri, Feb 18, 2022 at 10:15:31AM +0200, B, Jeevan wrote:
> >-----Original Message-----
> >From: Lisovskiy, Stanislav <stanislav.lisovskiy at intel.com>
> >Sent: Thursday, February 17, 2022 6:21 PM
> >To: B, Jeevan <jeevan.b at intel.com>
> >Cc: igt-dev at lists.freedesktop.org; Heikkila, Juha-pekka <juha-
> >pekka.heikkila at intel.com>; Kahola, Mika <mika.kahola at intel.com>
> >Subject: Re: [PATCH i-g-t v3 04/15] igt/tests: Add support for Tile4(TileF) format
> >to kms_draw_crc
> >
> >On Wed, Feb 16, 2022 at 03:56:22PM +0530, Jeevan B wrote:
> >> From: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
> >>
> >> kms_draw_crc would be the first sample test to support new format.
> >>
> >> v2: add check for tile-4 support
> >>
> >> Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
> >> Signed-off-by: Jeevan B <jeevan.b at intel.com>
> >> ---
> >>  tests/i915/kms_draw_crc.c | 18 +++++++++++-------
> >>  1 file changed, 11 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/tests/i915/kms_draw_crc.c b/tests/i915/kms_draw_crc.c
> >> index 82c368e1..33b7bdf4 100644
> >> --- a/tests/i915/kms_draw_crc.c
> >> +++ b/tests/i915/kms_draw_crc.c
> >> @@ -41,25 +41,24 @@ drmModeConnectorPtr
> >> drm_connectors[MAX_CONNECTORS];  struct buf_ops *bops;  igt_pipe_crc_t
> >> *pipe_crc;
> >>
> >> -#define N_FORMATS 3
> >> -static const uint32_t formats[N_FORMATS] = {
> >> +static const uint32_t formats[] = {
> >>  	DRM_FORMAT_XRGB8888,
> >>  	DRM_FORMAT_RGB565,
> >>  	DRM_FORMAT_XRGB2101010,
> >>  };
> >>
> >> -#define N_MODIFIER_METHODS 3
> >> -static const uint64_t modifiers[N_MODIFIER_METHODS] = {
> >> +static const uint64_t modifiers[] = {
> >>  	DRM_FORMAT_MOD_LINEAR,
> >>  	I915_FORMAT_MOD_X_TILED,
> >>  	I915_FORMAT_MOD_Y_TILED,
> >> +	I915_FORMAT_MOD_4_TILED,
> >>  };
> >>
> >>  struct base_crc {
> >>  	bool set;
> >>  	igt_crc_t crc;
> >>  };
> >> -struct base_crc base_crcs[N_FORMATS];
> >> +struct base_crc base_crcs[ARRAY_SIZE(formats)];
> >>
> >>  struct modeset_params ms;
> >>
> >> @@ -178,6 +177,9 @@ static void draw_method_subtest(enum
> >> igt_draw_method method,  {
> >>  	igt_crc_t crc;
> >>
> >> +	igt_skip_on(modifier == I915_FORMAT_MOD_4_TILED &&
> >> +		    !HAS_4TILE(intel_get_drm_devid(drm_fd)));
> >
> >I wonder, why we don't use format_is_supported call here.
> >We anyway call it, however its done with igt_require..
> >
> >Didn't we have somekind of more unified way of testing formats, only supported
> >by current kernel/platform?
> >
> >I thought Ville did something about this..
> 
> No, we have has_4tile other than that I don't think there is other way. 

Can you check 87302b06b99faf42c5543908174c2606ce22443e("Generalize away copy-pasta")
commit from Ville. I think it is possible just to iterate all the formats/mods reported
by plane, thus all supported formats would be tested.
Just want to make sure we are doing the things in a most optimal way.

Stan

> 
> Thanks 
> Jeevan B
> >
> >Stan
> >
> >> +
> >>  	igt_skip_on(method == IGT_DRAW_MMAP_WC &&
> >!gem_mmap__has_wc(drm_fd));
> >>  	igt_skip_on(method == IGT_DRAW_MMAP_GTT &&
> >>  		    !gem_has_mappable_ggtt(drm_fd)); @@ -315,6 +317,8 @@
> >static
> >> const char *modifier_str(int modifier_index)
> >>  		return "xtiled";
> >>  	case I915_FORMAT_MOD_Y_TILED:
> >>  		return "ytiled";
> >> +	case I915_FORMAT_MOD_4_TILED:
> >> +		return "4tiled";
> >>  	default:
> >>  		igt_assert(false);
> >>  	}
> >> @@ -328,9 +332,9 @@ igt_main
> >>  	igt_fixture
> >>  		setup_environment();
> >>
> >> -	for (format_idx = 0; format_idx < N_FORMATS; format_idx++) {
> >> +	for (format_idx = 0; format_idx < ARRAY_SIZE(formats); format_idx++)
> >> +{
> >>  	for (method = 0; method < IGT_DRAW_METHOD_COUNT; method++) {
> >> -	for (modifier_idx = 0; modifier_idx < N_MODIFIER_METHODS;
> >modifier_idx++) {
> >> +	for (modifier_idx = 0; modifier_idx < ARRAY_SIZE(modifiers);
> >> +modifier_idx++) {
> >>  		igt_describe("This subtest verfies igt_draw library works "
> >>  			     "with different modifiers, DRM_FORMATS,
> >DRAW_METHODS.");
> >>  		igt_subtest_f("draw-method-%s-%s-%s",
> >> --
> >> 2.17.1
> >>


More information about the igt-dev mailing list