From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Pranay Samala <pranay.samala@intel.com>
Cc: igt-dev@lists.freedesktop.org, karthik.b.s@intel.com,
sameer.lattannavar@intel.com
Subject: Re: [PATCH i-g-t v2] tests/intel/kms_sharpness_filter: Restructure modifier validation into per-modifier subtests
Date: Fri, 27 Feb 2026 08:16:30 +0200 [thread overview]
Message-ID: <aaE2vmwRFB29o7uT@intel.com> (raw)
In-Reply-To: <20260227061656.2044321-1-pranay.samala@intel.com>
On Fri, Feb 27, 2026 at 11:46:56AM +0530, Pranay Samala wrote:
> Previously, all modifiers were exercised within a single
> subtest, making failures/skips hard to isolate and debug.
> This new flow generates explicit subtest names (filter-%s-modifier-%s)
> for each format/modifier, improving clarity and CI reporting.
>
> Each subtest now validates only the selected format/modifier, and
> unsupported format/modifier combinations are cleanly skipped.
>
> v2:
> - Add each format/modifier coverage in single subtest (Rama)
>
> Signed-off-by: Pranay Samala <pranay.samala@intel.com>
> ---
> tests/intel/kms_sharpness_filter.c | 99 +++++++++++++++++-------------
> 1 file changed, 55 insertions(+), 44 deletions(-)
>
> diff --git a/tests/intel/kms_sharpness_filter.c b/tests/intel/kms_sharpness_filter.c
> index ba325b377..7002c0989 100644
> --- a/tests/intel/kms_sharpness_filter.c
> +++ b/tests/intel/kms_sharpness_filter.c
> @@ -21,15 +21,9 @@
> * SUBTEST: filter-strength
> * Description: Verify that varying strength (0-255), affects the degree of sharpeness applied.
> *
> - * SUBTEST: filter-modifiers
> - * Description: Verify content adaptive sharpness filter with varying modifiers.
> - *
> * SUBTEST: filter-rotations
> * Description: Verify content adaptive sharpness filter with varying rotations.
> *
> - * SUBTEST: filter-formats
> - * Description: Verify content adaptive sharpness filter with varying formats.
Why are we even doing all these format/modifier/etc tests?
The sharpness filter is a pipe level feature, so I fail to see
what possible difference any of these things could make here.
> - *
> * SUBTEST: filter-toggle
> * Description: Verify toggling between enabling and disabling content adaptive sharpness filter.
> *
> @@ -70,6 +64,23 @@
> * sharpness filter.
> */
>
> +/**
> + * SUBTEST: filter-format-%s-modifier-%s
> + * Description: Verify content adaptive sharpness filter with format %arg[1] modifier %arg[2]
> + *
> + * arg[1]:
> + *
> + * @nv12: NV12 format
> + * @rgb565: RGB565 format
> + * @xrgb8888: XRGB8888 format
> + * @xbgr16161616f: XBGR16161616F format
> + *
> + * arg[2]:
> + *
> + * @linear: Linear modifier
> + * @x-tiled: x tile modifier
> + * @4-tiled: 4 tile modifier
> + */
> IGT_TEST_DESCRIPTION("Test to validate content adaptive sharpness filter");
>
> /*
> @@ -100,9 +111,8 @@ IGT_TEST_DESCRIPTION("Test to validate content adaptive sharpness filter");
>
> enum test_type {
> TEST_FILTER_BASIC,
> - TEST_FILTER_MODIFIERS,
> + TEST_FILTER_FORMAT_MODIFIER,
> TEST_FILTER_ROTATION,
> - TEST_FILTER_FORMATS,
> TEST_FILTER_STRENGTH,
> TEST_FILTER_TOGGLE,
> TEST_FILTER_TAP,
> @@ -136,11 +146,15 @@ static const struct {
> { I915_FORMAT_MOD_X_TILED, "x-tiled", },
> { I915_FORMAT_MOD_4_TILED, "4-tiled", },
> };
> -static const int formats[] = {
> - DRM_FORMAT_NV12,
> - DRM_FORMAT_RGB565,
> - DRM_FORMAT_XRGB8888,
> - DRM_FORMAT_XBGR16161616F,
> +
> +static const struct {
> + int format;
> + const char *name;
> +} formats[] = {
> + { DRM_FORMAT_NV12, "nv12", },
> + { DRM_FORMAT_RGB565, "rgb565", },
> + { DRM_FORMAT_XRGB8888, "xrgb8888", },
> + { DRM_FORMAT_XBGR16161616F, "xbgr16161616f", },
> };
> static const igt_rotation_t rotations[] = {
> IGT_ROTATION_0,
> @@ -165,6 +179,7 @@ typedef struct {
> int filter_tap;
> uint64_t modifier;
> const char *modifier_name;
> + const char *format_name;
> uint32_t format;
> igt_rotation_t rotation;
> uint32_t scaling_mode;
> @@ -487,15 +502,14 @@ run_sharpness_filter_test(data_t *data, enum test_type type)
> case TEST_FILTER_BASIC:
> snprintf(name, sizeof(name), "-basic");
> break;
> - case TEST_FILTER_MODIFIERS:
> - snprintf(name, sizeof(name), "-%s", data->modifier_name);
> + case TEST_FILTER_FORMAT_MODIFIER:
> + snprintf(name, sizeof(name), "-%s-%s",
> + igt_format_str(data->format),
> + data->modifier_name);
> break;
> case TEST_FILTER_ROTATION:
> snprintf(name, sizeof(name), "-%srot", igt_plane_rotation_name(data->rotation));
> break;
> - case TEST_FILTER_FORMATS:
> - snprintf(name, sizeof(name), "-%s", igt_format_str(data->format));
> - break;
> case TEST_FILTER_STRENGTH:
> snprintf(name, sizeof(name), "-strength-%d", data->filter_strength);
> break;
> @@ -597,18 +611,29 @@ int igt_main_args("l", NULL, help_str, opt_handler, &data)
> }
> }
>
> - igt_describe("Verify content adaptive sharpness filter with "
> - "varying modifiers.");
> - igt_subtest_with_dynamic("filter-modifiers") {
> - data.rotation = IGT_ROTATION_0;
> - data.format = DRM_FORMAT_XRGB8888;
> - data.filter_strength = MID_FILTER_STRENGTH;
> -
> - for (int i = 0; i < ARRAY_SIZE(modifiers); i++) {
> - data.modifier = modifiers[i].modifier;
> - data.modifier_name = modifiers[i].name;
> -
> - run_sharpness_filter_test(&data, TEST_FILTER_MODIFIERS);
> + for (int i = 0; i < ARRAY_SIZE(formats); i++) {
> + data.format = formats[i].format;
> + data.format_name = formats[i].name;
> + for (int j = 0; j < ARRAY_SIZE(modifiers); j++) {
> + data.modifier = modifiers[j].modifier;
> + data.modifier_name = modifiers[j].name;
> +
> + igt_describe("Verify content adaptive sharpness filter with "
> + "all combinations of formats and modifiers.");
> + igt_subtest_with_dynamic_f("filter-format-%s-modifier-%s",
> + data.format_name,
> + data.modifier_name) {
> + data.rotation = IGT_ROTATION_0;
> + data.filter_strength = MID_FILTER_STRENGTH;
> + igt_skip_on_f((!igt_display_has_format_mod(&data.display,
> + data.format,
> + data.modifier)),
> + "Skipping: format " IGT_FORMAT_FMT " / modifier "
> + IGT_MODIFIER_FMT "are not supported on this "
> + "platform\n", IGT_FORMAT_ARGS(data.format),
> + IGT_MODIFIER_ARGS(data.modifier));
> + run_sharpness_filter_test(&data, TEST_FILTER_FORMAT_MODIFIER);
> + }
> }
> }
>
> @@ -626,20 +651,6 @@ int igt_main_args("l", NULL, help_str, opt_handler, &data)
> }
> }
>
> - igt_describe("Verify content adaptive sharpness filter with "
> - "varying formats.");
> - igt_subtest_with_dynamic("filter-formats") {
> - data.modifier = DRM_FORMAT_MOD_LINEAR;
> - data.rotation = IGT_ROTATION_0;
> - data.filter_strength = MID_FILTER_STRENGTH;
> -
> - for (int i = 0; i < ARRAY_SIZE(formats); i++) {
> - data.format = formats[i];
> -
> - run_sharpness_filter_test(&data, TEST_FILTER_FORMATS);
> - }
> - }
> -
> igt_describe("Verify toggling between enabling and disabling "
> "content adaptive sharpness filter.");
> igt_subtest_with_dynamic("filter-toggle") {
> --
> 2.34.1
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2026-02-27 6:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-27 6:16 [PATCH i-g-t v2] tests/intel/kms_sharpness_filter: Restructure modifier validation into per-modifier subtests Pranay Samala
2026-02-27 6:16 ` Ville Syrjälä [this message]
2026-02-27 13:15 ` ✓ Xe.CI.BAT: success for tests/intel/kms_sharpness_filter: Restructure modifier validation into per-modifier subtests (rev2) Patchwork
2026-02-27 13:28 ` ✗ i915.CI.BAT: failure " Patchwork
2026-02-27 22:02 ` ✗ Xe.CI.FULL: " 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=aaE2vmwRFB29o7uT@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=karthik.b.s@intel.com \
--cc=pranay.samala@intel.com \
--cc=sameer.lattannavar@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.