All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "José Roberto de Souza" <jose.souza@intel.com>
Cc: igt-dev@lists.freedesktop.org
Subject: Re: [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage
Date: Thu, 6 Feb 2020 14:00:27 +0200	[thread overview]
Message-ID: <20200206120027.GQ13686@intel.com> (raw)
In-Reply-To: <20200206020944.338033-2-jose.souza@intel.com>

On Wed, Feb 05, 2020 at 06:09:42PM -0800, José Roberto de Souza wrote:
> Lets add some more tiling tests, if tiling is supported by FBC draw
> some rectangles and compare the CRC against benchmark if not
> supported run the test to guarantee that FBC is disabled.
> 
> This is a preparation for when kernel will allow FBC to be enabled
> without fences, so we can better test linear and Y tiled
> frontbuffers.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  tests/kms_frontbuffer_tracking.c | 50 +++++++++++++++++++++++++-------
>  1 file changed, 39 insertions(+), 11 deletions(-)
> 
> diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
> index 63b5d12d..d5a64a4d 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -2159,6 +2159,23 @@ static void format_draw_subtest(const struct test_mode *t)
>  		badformat_subtest(t);
>  }
>  
> +static bool tiling_is_valid(int feature_flags, enum tile_type tile)
> +{
> +	if (!(feature_flags & FEATURE_FBC))
> +		return true;
> +
> +	switch (tile) {
> +	case TILE_LINEAR:
> +		return false;
> +	case TILE_X:
> +	case TILE_Y:
> +		return true;
> +	default:
> +		igt_assert(false);
> +		return false;
> +	}
> +}
> +
>  /*
>   * slow_draw - sleep a little bit between drawing operations
>   *
> @@ -2954,22 +2971,22 @@ static void stridechange_subtest(const struct test_mode *t)
>  }
>  
>  /**
> - * tilingchange - alternate between tiled and untiled in multiple ways
> + * tiling_disable_fbc_subtest - Check that tiling causes FBC to be disabled
>   *
>   * METHOD
> - *   This test alternates between tiled and untiled frontbuffers of the same
> - *   size and format through multiple different APIs: the page flip IOCTL,
> - *   normal modesets and the plane APIs.
> + *   This test alternates between a FBC supported and non-supported tiled
> + *   frontbuffers of the same size and format through multiple different
> + *   APIs: the page flip IOCTL, normal modesets and the plane APIs.
>   *
>   * EXPECTED RESULTS
> - *   FBC gets properly disabled for the untiled FB and reenabled for the
> - *   tiled FB.
> + *   FBC gets properly disabled for the non-supported tiling and reenabled for
> + *   the supported tiling.
>   *
>   * FAILURES
>   *   Bad Kernels may somehow leave FBC enabled, which can cause FIFO underruns
>   *   that lead to CRC assertion failures.
>   */
> -static void tilingchange_subtest(const struct test_mode *t)
> +static void tiling_disable_fbc_subtest(const struct test_mode *t)
>  {
>  	struct igt_fb new_fb, *old_fb;
>  	struct modeset_params *params = pick_params(t);
> @@ -2980,13 +2997,13 @@ static void tilingchange_subtest(const struct test_mode *t)
>  	old_fb = params->primary.fb;
>  
>  	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
> -		  LOCAL_DRM_FORMAT_MOD_NONE, t->plane, &new_fb);
> +		  t->tile, t->plane, &new_fb);
>  	fill_fb(&new_fb, COLOR_PRIM_BG);
>  
>  	for (flip_type = 0; flip_type < FLIP_COUNT; flip_type++) {
>  		igt_debug("Flip type: %d\n", flip_type);
>  
> -		/* Set a buffer with no tiling. */
> +		/* Set a buffer with new tiling. */
>  		params->primary.fb = &new_fb;
>  		page_flip_for_params(params, flip_type);
>  		do_assertions(ASSERT_FBC_DISABLED);
> @@ -3486,8 +3503,19 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  			igt_subtest_f("%s-stridechange", feature_str(t.feature))
>  				stridechange_subtest(&t);
>  
> -			igt_subtest_f("%s-tilingchange", feature_str(t.feature))
> -				tilingchange_subtest(&t);
> +			for (t.tile = TILE_LINEAR; t.tile < TILE_COUNT;
> +			     t.tile++) {

Ah, I guess the enum is for this loop.

s/tile/tiling/ whould be more customary language in general.
Although, maybe people would then confuse it with the uapi
definitions? Shrug.

> +				igt_subtest_f("%s-tiling-%s",
> +					      feature_str(t.feature),
> +					      tile_str(t.tile)) {
> +
> +					if (tiling_is_valid(t.feature, t.tile))
> +						draw_subtest(&t);
> +					else
> +						tiling_disable_fbc_subtest(&t);
> +				}
> +			}
> +			t.tile = opt.tiling;
>  		}
>  
>  		if ((t.feature & FEATURE_PSR) || (t.feature & FEATURE_DRRS))
> -- 
> 2.25.0

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2020-02-06 12:00 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage José Roberto de Souza
2020-02-06 11:57   ` Ville Syrjälä
2020-03-10 23:59     ` Souza, Jose
2020-02-06 12:00   ` Ville Syrjälä [this message]
2020-03-11  0:00     ` Souza, Jose
2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_frontbuffer_tracking: Enable positive test on linear tiling José Roberto de Souza
2020-02-06 11:58   ` Ville Syrjälä
2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 4/4] DO_NOT_MERGE: Revert "tests/kms_frontbuffer_tracking: Enable positive test on linear tiling" José Roberto de Souza
2020-02-06  2:59 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode Patchwork
2020-02-06 11:53 ` [igt-dev] [PATCH i-g-t 1/4] " Ville Syrjälä
2020-03-10 23:54   ` Souza, Jose
2020-02-06 15:58 ` [igt-dev] ✗ GitLab.Pipeline: failure for series starting with [i-g-t,1/4] " Patchwork
2020-02-08 14:56 ` [igt-dev] ✗ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200206120027.GQ13686@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=jose.souza@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.