From: Pekka Paalanen <ppaalanen@gmail.com>
To: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Cc: igt-dev@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [igt-dev] [i-g-t 07/14] tests/kms_color: New negative tests for plane level color mgmt
Date: Thu, 18 Nov 2021 11:19:41 +0200 [thread overview]
Message-ID: <20211118111941.764737fb@eldfell> (raw)
In-Reply-To: <20211115094759.520955-8-bhanuprakash.modem@intel.com>
[-- Attachment #1: Type: text/plain, Size: 6193 bytes --]
On Mon, 15 Nov 2021 15:17:52 +0530
Bhanuprakash Modem <bhanuprakash.modem@intel.com> wrote:
> Negative check for:
> * plane gamma lut sizes
> * plane degamma lut sizes
> * plane ctm matrix sizes
>
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_color.c | 127 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 127 insertions(+)
>
> diff --git a/tests/kms_color.c b/tests/kms_color.c
> index e14b37cb6f..d9fe417ba9 100644
> --- a/tests/kms_color.c
> +++ b/tests/kms_color.c
> @@ -736,6 +736,118 @@ static void test_pipe_limited_range_ctm(data_t *data,
> }
> #endif
>
> +static bool invalid_plane_gamma_test(data_t *data, igt_plane_t *plane)
> +{
> + igt_display_t *display = &data->display;
> + drmModePropertyPtr gamma_mode = NULL;
> + uint32_t i;
> +
> + igt_info("Plane invalid gamma test is running on pipe-%s plane-%s(%s)\n",
> + kmstest_pipe_name(plane->pipe->pipe),
> + kmstest_plane_type_name(plane->type),
> + is_hdr_plane(plane) ? "hdr":"sdr");
> +
> + igt_require(igt_plane_has_prop(plane, IGT_PLANE_GAMMA_MODE));
> + igt_require(igt_plane_has_prop(plane, IGT_PLANE_GAMMA_LUT));
> +
> + gamma_mode = get_plane_gamma_degamma_mode(plane, IGT_PLANE_GAMMA_MODE);
> +
> + /* Iterate all supported gamma modes. */
> + for (i = 0; i < gamma_mode->count_enums; i++) {
> + segment_data_t *segment_info = NULL;
> + size_t lut_size = 0;
> +
> + /* Ignore 'no gamma' from enum list. */
> + if (!strcmp(gamma_mode->enums[i].name, "no gamma"))
> + continue;
> +
> + igt_info("Trying to use gamma mode: \'%s\'\n", gamma_mode->enums[i].name);
> +
> + segment_info = get_segment_data(data, gamma_mode->enums[i].value,
> + gamma_mode->enums[i].name);
> + lut_size = sizeof(struct drm_color_lut_ext) * segment_info->entries_count;
> +
> + igt_plane_set_prop_enum(plane, IGT_PLANE_GAMMA_MODE, gamma_mode->enums[i].name);
> + invalid_plane_lut_sizes(display, plane,
> + IGT_PLANE_GAMMA_LUT,
> + lut_size);
> +
> + clear_segment_data(segment_info);
> +
> + /* One enum is enough. */
> + break;
> + }
> +
> + drmModeFreeProperty(gamma_mode);
> +
> + return true;
> +}
> +
> +static bool invalid_plane_degamma_test(data_t *data, igt_plane_t *plane)
> +{
> + igt_display_t *display = &data->display;
> + drmModePropertyPtr degamma_mode = NULL;
> + uint32_t i;
> +
> + igt_info("Plane invalid degamma test is running on pipe-%s plane-%s(%s)\n",
> + kmstest_pipe_name(plane->pipe->pipe),
> + kmstest_plane_type_name(plane->type),
> + is_hdr_plane(plane) ? "hdr":"sdr");
> +
> + igt_require(igt_plane_has_prop(plane, IGT_PLANE_DEGAMMA_MODE));
> + igt_require(igt_plane_has_prop(plane, IGT_PLANE_DEGAMMA_LUT));
> +
> + degamma_mode = get_plane_gamma_degamma_mode(plane, IGT_PLANE_DEGAMMA_MODE);
> +
> + /* Iterate all supported degamma modes. */
> + for (i = 0; i < degamma_mode->count_enums; i++) {
> + segment_data_t *segment_info = NULL;
> + size_t lut_size = 0;
> +
> + /* Ignore 'no degamma' from enum list. */
> + if (!strcmp(degamma_mode->enums[i].name, "no degamma"))
> + continue;
> +
> + igt_info("Trying to use degamma mode: \'%s\'\n", degamma_mode->enums[i].name);
> +
> + segment_info = get_segment_data(data,
> + degamma_mode->enums[i].value,
> + degamma_mode->enums[i].name);
> + lut_size = sizeof(struct drm_color_lut_ext) * segment_info->entries_count * 2;
> +
> + igt_plane_set_prop_enum(plane,
> + IGT_PLANE_DEGAMMA_MODE,
> + degamma_mode->enums[i].name);
> + invalid_plane_lut_sizes(display, plane,
> + IGT_PLANE_DEGAMMA_LUT,
> + lut_size);
> +
> + clear_segment_data(segment_info);
> +
> + /* One enum is enough. */
> + break;
Why is one enum enough?
The same question for the other case in this patch.
> + }
> +
> + drmModeFreeProperty(degamma_mode);
> +
> + return true;
> +}
> +
> +static bool invalid_plane_ctm_test(data_t *data, igt_plane_t *plane)
> +{
> + igt_info("Plane invalid CTM test is running on pipe-%s plane-%s(%s)\n",
> + kmstest_pipe_name(plane->pipe->pipe),
> + kmstest_plane_type_name(plane->type),
> + is_hdr_plane(plane) ? "hdr":"sdr");
> +
> + igt_require(igt_plane_has_prop(plane, IGT_PLANE_CTM));
> + invalid_plane_lut_sizes(&data->display, plane,
> + IGT_PLANE_CTM,
> + sizeof(struct drm_color_ctm));
The code says you're trying shove a LUT into a CTM blob. I understand
that mechanically this is test you want to do, feed a wrong sized blob,
and in this case the contents do not matter (unlike with actual LUTs),
but reading this code is completely misleading and does not make sense.
It takes a while to think about what you actually want to test here,
and then reverse-engineer the code to understand that that is what
actually happens, too. That is too much mental burden for the reader to
realize that this piece of code actually works.
Thanks,
pq
> +
> + return true;
> +}
> +
> static bool plane_gamma_test(data_t *data, igt_plane_t *plane)
> {
> igt_output_t *output;
> @@ -1411,6 +1523,21 @@ static void run_tests_for_plane(data_t *data, enum pipe pipe)
> ctm_tests[i].iter);
> }
> }
> +
> + igt_describe("Negative check for invalid plane gamma lut sizes");
> + igt_subtest_f("pipe-%s-invalid-plane-gamma-lut-sizes",
> + kmstest_pipe_name(pipe))
> + run_plane_color_test(data, pipe, invalid_plane_gamma_test);
> +
> + igt_describe("Negative check for invalid plane degamma lut sizes");
> + igt_subtest_f("pipe-%s-invalid-plane-degamma-lut-sizes",
> + kmstest_pipe_name(pipe))
> + run_plane_color_test(data, pipe, invalid_plane_degamma_test);
> +
> + igt_describe("Negative check for invalid plane ctm matrix sizes");
> + igt_subtest_f("pipe-%s-invalid-plane-ctm-matrix-sizes",
> + kmstest_pipe_name(pipe))
> + run_plane_color_test(data, pipe, invalid_plane_ctm_test);
> }
>
> igt_main
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-11-18 9:19 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-15 9:47 [igt-dev] [i-g-t 00/14] Add IGT support for plane color management Bhanuprakash Modem
2021-11-15 9:47 ` [i-g-t 01/14] HAX: Get uapi headers to compile the IGT Bhanuprakash Modem
2021-11-15 9:47 ` [igt-dev] [i-g-t 02/14] lib/igt_kms: Add plane color mgmt properties Bhanuprakash Modem
2021-11-15 9:47 ` [igt-dev] [i-g-t 03/14] kms_color_helper: Add helper functions for plane color mgmt Bhanuprakash Modem
2021-11-18 8:41 ` Pekka Paalanen
2022-01-03 4:02 ` Modem, Bhanuprakash
2021-11-26 16:54 ` Harry Wentland
2022-01-03 4:02 ` Modem, Bhanuprakash
2021-11-15 9:47 ` [igt-dev] [i-g-t 04/14] tests/kms_color: New subtests for Plane gamma Bhanuprakash Modem
2021-11-18 9:02 ` Pekka Paalanen
2022-01-03 4:09 ` Modem, Bhanuprakash
2021-11-26 16:55 ` Harry Wentland
2022-01-03 4:05 ` Modem, Bhanuprakash
[not found] ` <d8d00fe5-da3c-cf8a-f7ef-6f525b1d551a@amd.com>
2022-01-05 11:21 ` Modem, Bhanuprakash
2021-11-15 9:47 ` [igt-dev] [i-g-t 05/14] tests/kms_color: New subtests for Plane degamma Bhanuprakash Modem
2021-11-15 9:47 ` [igt-dev] [i-g-t 06/14] tests/kms_color: New subtests for Plane CTM Bhanuprakash Modem
2021-11-26 16:55 ` Harry Wentland
2021-11-15 9:47 ` [igt-dev] [i-g-t 07/14] tests/kms_color: New negative tests for plane level color mgmt Bhanuprakash Modem
2021-11-18 9:19 ` Pekka Paalanen [this message]
2021-11-29 14:56 ` Harry Wentland
2022-01-03 4:05 ` Modem, Bhanuprakash
2021-11-15 9:47 ` [igt-dev] [i-g-t 08/14] tests/kms_color_chamelium: New subtests for Plane gamma Bhanuprakash Modem
2021-11-18 9:32 ` Pekka Paalanen
2022-01-03 4:06 ` Modem, Bhanuprakash
2021-11-15 9:47 ` [igt-dev] [i-g-t 09/14] tests/kms_color_chamelium: New subtests for Plane degamma Bhanuprakash Modem
2021-11-15 9:47 ` [igt-dev] [i-g-t 10/14] tests/kms_color_chamelium: New subtests for Plane CTM Bhanuprakash Modem
2021-11-15 9:47 ` [igt-dev] [i-g-t 11/14] lib/igt_kms: Add pipe color mgmt properties Bhanuprakash Modem
2021-11-18 9:34 ` Pekka Paalanen
2021-11-15 9:47 ` [igt-dev] [i-g-t 12/14] kms_color_helper: Add helper functions to support logarithmic gamma mode Bhanuprakash Modem
2021-11-18 9:45 ` Pekka Paalanen
2022-01-03 4:07 ` Modem, Bhanuprakash
2021-11-26 16:55 ` Harry Wentland
2022-01-03 4:08 ` Modem, Bhanuprakash
2021-11-15 9:47 ` [igt-dev] [i-g-t 13/14] tests/kms_color: Extended IGT tests " Bhanuprakash Modem
2021-11-15 9:47 ` [igt-dev] [i-g-t 14/14] tests/kms_color_chamelium: " Bhanuprakash Modem
2021-11-15 11:14 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for plane color management Patchwork
2021-11-15 13:36 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-11-18 9:50 ` [igt-dev] [i-g-t 00/14] " Pekka Paalanen
[not found] ` <26abc3eb-c50e-8f89-ccc9-ad96f1177987@amd.com>
2021-11-29 9:20 ` Pekka Paalanen
[not found] ` <b961943f-3e92-cb93-7b2c-a1ddabb971ed@amd.com>
2022-01-03 4:11 ` Modem, Bhanuprakash
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 00/15] " Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 01/15] HAX: Get uapi headers to compile the IGT Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 02/15] lib/igt_kms: Add plane color mgmt properties Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 03/15] kms_color_helper: Add helper functions for plane color mgmt Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 04/15] tests/kms_color: New subtests for Plane gamma Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 05/15] tests/kms_color: New subtests for Plane degamma Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 06/15] tests/kms_color: New subtests for Plane CTM Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 07/15] tests/kms_color: New negative tests for plane level color mgmt Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 08/15] tests/kms_color_chamelium: New subtests for Plane gamma Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 09/15] tests/kms_color_chamelium: New subtests for Plane degamma Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 10/15] tests/kms_color_chamelium: New subtests for Plane CTM Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 11/15] lib/igt_kms: Add pipe color mgmt properties Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 12/15] kms_color_helper: Add helper functions to support logarithmic gamma mode Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 13/15] tests/kms_color: Extended IGT tests " Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 14/15] tests/kms_color_chamelium: " Bhanuprakash Modem
2022-01-04 7:57 ` [igt-dev] [v2 i-g-t 15/15] HAX: Add color mgmt tests to BAT Bhanuprakash Modem
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=20211118111941.764737fb@eldfell \
--to=ppaalanen@gmail.com \
--cc=bhanuprakash.modem@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=igt-dev@lists.freedesktop.org \
/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