From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 04C2C10E347 for ; Tue, 16 May 2023 12:00:38 +0000 (UTC) Message-ID: <2c0ac184-9b02-f015-7ae3-93146fa98472@intel.com> Date: Tue, 16 May 2023 17:30:33 +0530 MIME-Version: 1.0 To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= References: <20230515120334.220022-1-swati2.sharma@intel.com> <20230515120334.220022-2-swati2.sharma@intel.com> Content-Language: en-US From: "Sharma, Swati2" In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: Add NV12 CRC sanitycheck tests List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: igt-dev@lists.freedesktop.org Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: On 15-May-23 6:15 PM, Ville Syrjälä wrote: > On Mon, May 15, 2023 at 05:33:33PM +0530, Swati Sharma wrote: >> New CRC sanitycheck test cases are added with NV12 format (white >> and solid rgb). > > Why? As discussed offline, tried fixing pixel-format test working in simulation https://patchwork.freedesktop.org/patch/537263/ > >> Existing test case(with format XRGB) is modified to validate CRC >> with solid rgb in addition to white color fb) >> >> Signed-off-by: Swati Sharma >> Signed-off-by: Jeevan B >> --- >> tests/kms_pipe_crc_basic.c | 198 ++++++++++++++++++++++++++++++++++--- >> 1 file changed, 182 insertions(+), 16 deletions(-) >> >> diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c >> index 84c73fd7..a340d5b1 100644 >> --- a/tests/kms_pipe_crc_basic.c >> +++ b/tests/kms_pipe_crc_basic.c >> @@ -239,13 +239,15 @@ static void test_read_crc(data_t *data, enum pipe pipe, >> * CRC-sanity test, to make sure there would be no CRC mismatches >> * >> * - Create two framebuffers (FB0 & FB1) with same color info >> + * with different formats (RGB/NV12) >> * - Flip FB0 with the Primary plane & collect the CRC as ref CRC. >> * - Flip FB1 with the Primary plane, collect the CRC & compare with >> * the ref CRC. >> * >> * No CRC mismatch should happen >> */ >> -static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output) >> +static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output, >> + uint32_t format, int color) >> { >> igt_display_t *display = &data->display; >> igt_plane_t *primary; >> @@ -260,18 +262,60 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output) >> mode = igt_output_get_mode(output); >> >> /* Create two framebuffers with the same color info. */ >> - igt_create_color_fb(data->drm_fd, >> - mode->hdisplay, mode->vdisplay, >> - DRM_FORMAT_XRGB8888, >> - DRM_FORMAT_MOD_LINEAR, >> - 1.0, 1.0, 1.0, >> - &fb0); >> - igt_create_color_fb(data->drm_fd, >> - mode->hdisplay, mode->vdisplay, >> - DRM_FORMAT_XRGB8888, >> - DRM_FORMAT_MOD_LINEAR, >> - 1.0, 1.0, 1.0, >> - &fb1); >> + switch (color) { >> + case 1: >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 1.0, 0.0, 0.0, >> + &fb0); >> + >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 1.0, 0.0, 0.0, >> + &fb1); >> + break; >> + case 2: >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 0.0, 1.0, 0.0, >> + &fb0); >> + >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 0.0, 1.0, 0.0, >> + &fb1); >> + break; >> + case 3: >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 0.0, 0.0, 1.0, >> + &fb0); >> + >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 0.0, 0.0, 1.0, >> + &fb1); >> + break; >> + case 0: >> + default: >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 1.0, 1.0, 1.0, >> + &fb0); >> + >> + igt_create_color_fb(data->drm_fd, >> + mode->hdisplay, mode->vdisplay, >> + format, DRM_FORMAT_MOD_LINEAR, >> + 1.0, 1.0, 1.0, >> + &fb1); >> + } >> >> /* Flip FB0 with the Primary plane & collect the CRC as ref CRC. */ >> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); >> @@ -475,8 +519,77 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL) >> } >> } >> >> - igt_describe("Basic sanity check for CRC mismatches"); >> - igt_subtest_with_dynamic("compare-crc-sanitycheck") { >> + igt_describe("Basic sanity check for CRC mismatches with XRGB format " >> + "and white color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-xrgb") { >> + for_each_pipe_with_single_output(&data.display, pipe, output) { >> + if (simulation_constraint(pipe)) >> + continue; >> + >> + if(!pipe_output_combo_valid(&data.display, pipe, output)) >> + continue; >> + >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_XRGB8888, 0); >> + >> + break; >> + } >> + } >> + >> + igt_describe("Basic sanity check for CRC mismatches with XRGB format " >> + "and red solid color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-xrgb-red") { >> + for_each_pipe_with_single_output(&data.display, pipe, output) { >> + if (simulation_constraint(pipe)) >> + continue; >> + >> + if(!pipe_output_combo_valid(&data.display, pipe, output)) >> + continue; >> + >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_XRGB8888, 1); >> + >> + break; >> + } >> + } >> + >> + igt_describe("Basic sanity check for CRC mismatches with XRGB format " >> + "and green solid color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-xrgb-green") { >> + for_each_pipe_with_single_output(&data.display, pipe, output) { >> + if (simulation_constraint(pipe)) >> + continue; >> + >> + if(!pipe_output_combo_valid(&data.display, pipe, output)) >> + continue; >> + >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_XRGB8888, 2); >> + >> + break; >> + } >> + } >> + >> + igt_describe("Basic sanity check for CRC mismatches with XRGB format " >> + "and blue solid color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-xrgb-blue") { >> + for_each_pipe_with_single_output(&data.display, pipe, output) { >> + if (simulation_constraint(pipe)) >> + continue; >> + >> + if(!pipe_output_combo_valid(&data.display, pipe, output)) >> + continue; >> + >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_XRGB8888, 3); >> + >> + break; >> + } >> + } >> + >> + igt_describe("Basic sanity check for CRC mismatches with NV12 format " >> + "and white color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-nv12") { >> for_each_pipe_with_single_output(&data.display, pipe, output) { >> if (simulation_constraint(pipe)) >> continue; >> @@ -485,7 +598,60 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL) >> continue; >> >> igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> - test_compare_crc(&data, pipe, output); >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_NV12, 0); >> + >> + break; >> + } >> + } >> + >> + igt_describe("Basic sanity check for CRC mismatches with NV12 format " >> + "and red solid color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-nv12-red") { >> + for_each_pipe_with_single_output(&data.display, pipe, output) { >> + if (simulation_constraint(pipe)) >> + continue; >> + >> + if(!pipe_output_combo_valid(&data.display, pipe, output)) >> + continue; >> + >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_NV12, 1); >> + >> + break; >> + } >> + } >> + >> + igt_describe("Basic sanity check for CRC mismatches with NV12 format " >> + "and green solid color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-nv12-green") { >> + for_each_pipe_with_single_output(&data.display, pipe, output) { >> + if (simulation_constraint(pipe)) >> + continue; >> + >> + if(!pipe_output_combo_valid(&data.display, pipe, output)) >> + continue; >> + >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_NV12, 2); >> + >> + break; >> + } >> + } >> + >> + igt_describe("Basic sanity check for CRC mismatches with NV12 format " >> + "and blue solid color fb."); >> + igt_subtest_with_dynamic("compare-crc-sanitycheck-nv12-blue") { >> + for_each_pipe_with_single_output(&data.display, pipe, output) { >> + if (simulation_constraint(pipe)) >> + continue; >> + >> + if(!pipe_output_combo_valid(&data.display, pipe, output)) >> + continue; >> + >> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) >> + test_compare_crc(&data, pipe, output, DRM_FORMAT_NV12, 3); >> + >> + break; >> } >> } >> >> -- >> 2.25.1 >