From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Swati Sharma <swati2.sharma@intel.com>, <igt-dev@lists.freedesktop.org>
Subject: Re: [PATCH i-g-t 5/9] tests/kms_sharpness_filter: Add filter-tap subtest
Date: Wed, 11 Dec 2024 14:06:59 +0530 [thread overview]
Message-ID: <d83c30d6-b3fc-4811-8f89-60548db7b535@intel.com> (raw)
In-Reply-To: <20241209114623.1843033-6-swati2.sharma@intel.com>
On 12/9/2024 5:16 PM, Swati Sharma wrote:
> Subtest is added to verify that following a resolution change,
> distinct taps are selected i.e.
>
> TAP 3: mode->hdisplay <= 1920 && mode->vdisplay <= 1080
> TAP 5: mode->hdisplay > 1920 && mode->vdisplay > 1080
mode->hdisplay > 1920 and <= 3840; mode->vdisplay > 1080 and <= 2160
> TAP 7: mode->hdisplay >= 3840 && mode->vdisplay >= 2160
>
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
> tests/kms_sharpness_filter.c | 79 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 79 insertions(+)
>
> diff --git a/tests/kms_sharpness_filter.c b/tests/kms_sharpness_filter.c
> index aa200b16a..f91c444f7 100644
> --- a/tests/kms_sharpness_filter.c
> +++ b/tests/kms_sharpness_filter.c
> @@ -37,6 +37,9 @@
> *
> * SUBTEST: filter-toggle
> * Description: Verify toggling between enabling and disabling content adaptive sharpness filter.
> + *
> + * SUBTEST: filter-tap
> + * Description: Verify that following a resolution change, distinct taps are selected.
Hmm.. we cannot verify whether distinct taps are selected or not. What
we can verify is that sharpness works with different resolutions
(implicitly different taps).
> */
>
> IGT_TEST_DESCRIPTION("Test to validate content adaptive sharpness filter");
> @@ -47,10 +50,15 @@ IGT_TEST_DESCRIPTION("Test to validate content adaptive sharpness filter");
> * is seen without corruption for each subtest.
> */
>
> +#define TAP_3 3
> +#define TAP_5 5
> +#define TAP_7 7
> #define DISABLE_FILTER 0
> #define MIN_FILTER_STRENGTH 1
> #define MID_FILTER_STRENGTH 128
> #define MAX_FILTER_STRENGTH 255
> +#define MAX_PIXELS_FOR_3_TAP_FILTER (1920 * 1080)
> +#define MAX_PIXELS_FOR_5_TAP_FILTER (3840 * 2160)
> #define NROUNDS 10
>
> enum test_type {
> @@ -60,6 +68,7 @@ enum test_type {
> TEST_FILTER_FORMATS,
> TEST_FILTER_STRENGTH,
> TEST_FILTER_TOGGLE,
> + TEST_FILTER_TAP,
> };
>
> const int filter_strength_list[] = {
> @@ -69,6 +78,11 @@ const int filter_strength_list[] = {
> (MID_FILTER_STRENGTH + MAX_FILTER_STRENGTH) / 2,
> MAX_FILTER_STRENGTH,
> };
> +const int filter_tap_list[] = {
> + TAP_3,
> + TAP_5,
> + TAP_7,
> +};
> static const struct {
> uint64_t modifier;
> const char *name;
> @@ -99,6 +113,7 @@ typedef struct {
> igt_plane_t *plane[4];
> drmModeModeInfo *mode;
> int filter_strength;
> + int filter_tap;
> uint64_t modifier;
> const char *modifier_name;
> uint32_t format;
> @@ -151,6 +166,31 @@ static void cleanup(data_t *data)
> cleanup_fbs(data);
> }
>
> +static void get_modes_for_filter_taps(igt_output_t *output, drmModeModeInfo *mode[3])
> +{
> + drmModeConnector *connector = output->config.connector;
> + int total_pixels = 0;
> +
> + /*
> + * TAP 3: mode->hdisplay <= 1920 && mode->vdisplay <= 1080
> + * TAP 5: mode->hdisplay > 1920 && mode->vdisplay > 1080
Same as above.
> + * TAP 7: mode->hdisplay >= 3840 && mode->vdisplay >= 2160
> + */
> + for (int i = 0; i < connector->count_modes; i++) {
> + total_pixels = connector->modes[i].hdisplay * connector->modes[i].vdisplay;
> +
> + if (total_pixels <= MAX_PIXELS_FOR_3_TAP_FILTER)
> + mode[0] = &connector->modes[i];
> +
> + if (total_pixels > MAX_PIXELS_FOR_3_TAP_FILTER &&
> + total_pixels <= MAX_PIXELS_FOR_5_TAP_FILTER)
> + mode[1] = &connector->modes[i];
> +
> + if (total_pixels > MAX_PIXELS_FOR_5_TAP_FILTER)
> + mode[2] = &connector->modes[i];
> + }
> +}
> +
> static int test_filter_toggle(data_t *data)
> {
> int ret = 0;
> @@ -237,6 +277,34 @@ run_sharpness_filter_test(data_t *data, enum test_type type)
> continue;
> }
>
> + if (type == TEST_FILTER_TAP) {
> + drmModeModeInfo *modes[3] = { NULL, NULL, NULL };
> + int num_taps = ARRAY_SIZE(filter_tap_list);
> +
> + igt_assert(num_taps == 3);
> +
> + get_modes_for_filter_taps(output, modes);
> + for (int k = 0; k < 3; k++) {
Usually 'i' is used as iterator unless other identifier makes more sense
or perhaps when nested loops are used.
Lets stick to the common practice. Same thing in other patches in the
series.
Regards,
Ankit
> + data->filter_tap = filter_tap_list[k];
> + if (!modes[k])
> + continue;
> + data->mode = modes[k];
> + igt_info("Mode %dx%d@%d on output %s\n", data->mode->hdisplay, data->mode->vdisplay,
> + data->mode->vrefresh, igt_output_name(data->output));
> + igt_output_override_mode(data->output, data->mode);
> +
> + snprintf(name, sizeof(name), "-tap-%d", data->filter_tap);
> + igt_dynamic_f("pipe-%s-%s%s", kmstest_pipe_name(data->pipe_id),
> + data->output->name, name)
> + test_sharpness_filter(data, type);
> + }
> +
> + if (data->limited)
> + break;
> +
> + continue;
> + }
> +
> switch (type) {
> case TEST_FILTER_BASIC:
> snprintf(name, sizeof(name), "-basic");
> @@ -379,6 +447,17 @@ igt_main_args("l", NULL, help_str, opt_handler, &data)
> run_sharpness_filter_test(&data, TEST_FILTER_TOGGLE);
> }
>
> + igt_describe("Verify that following a resolution change, "
> + "distict taps are selected.");
> + igt_subtest_with_dynamic("filter-tap") {
> + data.modifier = DRM_FORMAT_MOD_LINEAR;
> + data.rotation = IGT_ROTATION_0;
> + data.format = DRM_FORMAT_XRGB8888;
> + data.filter_strength = MID_FILTER_STRENGTH;
> +
> + run_sharpness_filter_test(&data, TEST_FILTER_TAP);
> + }
> +
> igt_fixture {
> igt_display_fini(&data.display);
> drm_close_driver(data.drm_fd);
next prev parent reply other threads:[~2024-12-11 8:37 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 11:46 [PATCH i-g-t 0/9] Add new test to validate adaptive sharpness filter Swati Sharma
2024-12-09 11:46 ` [PATCH i-g-t, v3 1/9] lib/igt_kms: Add "sharpness strength" as crtc property Swati Sharma
2024-12-09 11:46 ` [PATCH i-g-t, v2 2/9] lib/igt_kms: Add func() to return scaling mode name string Swati Sharma
2024-12-09 11:46 ` [PATCH i-g-t, v9 3/9] tests/kms_sharpness_filter: Add adaptive sharpness basic filter tests Swati Sharma
2024-12-11 4:25 ` Nautiyal, Ankit K
2024-12-09 11:46 ` [PATCH i-g-t 4/9] tests/kms_sharpness_filter: Add toggle subtest Swati Sharma
2024-12-11 7:57 ` Nautiyal, Ankit K
2024-12-09 11:46 ` [PATCH i-g-t 5/9] tests/kms_sharpness_filter: Add filter-tap subtest Swati Sharma
2024-12-11 8:36 ` Nautiyal, Ankit K [this message]
2024-12-09 11:46 ` [PATCH i-g-t 6/9] tests/kms_sharpness_filter: Add dpms/suspend subtests Swati Sharma
2024-12-11 10:59 ` Nautiyal, Ankit K
2024-12-09 11:46 ` [PATCH i-g-t 7/9] tests/kms_sharpness_filter: Add scaler subtests Swati Sharma
2024-12-11 8:47 ` Nautiyal, Ankit K
2024-12-09 11:46 ` [PATCH i-g-t 8/9] tests/kms_sharpness_filter: Add invalid subtests Swati Sharma
2024-12-11 10:55 ` Nautiyal, Ankit K
2024-12-09 11:46 ` [PATCH i-g-t, v2 9/9] tests/chamelium/kms_chamelium_sharpness_filter: Add basic test Swati Sharma
2024-12-17 10:32 ` Nautiyal, Ankit K
2024-12-09 21:18 ` ✓ Xe.CI.BAT: success for Add new test to validate adaptive sharpness filter (rev10) Patchwork
2024-12-09 21:28 ` ✓ i915.CI.BAT: " Patchwork
2024-12-09 22:33 ` ✗ Xe.CI.Full: failure " Patchwork
2024-12-09 23:50 ` ✗ i915.CI.Full: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-12-04 8:26 [PATCH i-g-t,v9 0/9] Add new test to validate adaptive sharpness Swati Sharma
2024-12-04 8:26 ` [PATCH i-g-t 5/9] tests/kms_sharpness_filter: Add filter-tap subtest Swati Sharma
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=d83c30d6-b3fc-4811-8f89-60548db7b535@intel.com \
--to=ankit.k.nautiyal@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=swati2.sharma@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox