[igt-dev] [PATCH i-g-t v3] tests/kms_rotation_crc- MPO subtest: Mixing up of pixel formats and tiling on different planes.

Juha-Pekka Heikkila juhapekka.heikkila at gmail.com
Thu Dec 16 08:48:47 UTC 2021


Hi Ananya,

you will need to include p0xx changes also to that check where is 
checked if p[0] .. p[1] are / are not NV12, that check you had attempted 
in earlier version of your patch.

P0xx are similar planar formats as NV12 hence color ramps will fail crc 
checks unless handled for that optimization check. If p0xx are not 
considered on those checks p0xx will be handled as packed rgb format 
without color ramps found on p0xx and thus fail crc.

/Juha-Pekka

On 15.12.2021 18.46, Ananya Sharma wrote:
>   already existing pixel format RGB565, XRGB8888, NV12. New addition of P010 pixel format.
> 
> Signed-off-by: Ananya Sharma <ananya.sharma at intel.com>
> ---
>   tests/kms_rotation_crc.c | 7 +++----
>   1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 1497120c..7d813598 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -666,7 +666,7 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
>   	 * case with tiling are 2 bpp, 4 bpp and NV12.
>   	 */
>   	static const uint32_t formatlist[] = {DRM_FORMAT_RGB565,
> -		DRM_FORMAT_XRGB8888, DRM_FORMAT_NV12};
> +		DRM_FORMAT_XRGB8888, DRM_FORMAT_NV12, DRM_FORMAT_P010};
>   
>   	static struct {
>   		igt_rotation_t rotation;
> @@ -751,8 +751,7 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
>   						 * no need to redo comparison image and
>   						 * just use stored crc.
>   						 */
> -						if (p[0].format != DRM_FORMAT_NV12 &&
> -						    p[1].format != DRM_FORMAT_NV12 &&
> +						if (!igt_format_is_yuv_semiplanar(p[0].format) && !igt_format_is_yuv_semiplanar(p[1].format) &&
>   						    crclog[ctz(planeconfigs[i].rotation) | (ctz(planeconfigs[j].rotation) << 2)].frame != 0) {
>   							retcrc_sw = crclog[ctz(planeconfigs[i].rotation) | (ctz(planeconfigs[j].rotation) << 2)];
>   							have_crc = true;
> @@ -819,7 +818,7 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
>   										   flipsw,
>   										   &retcrc_sw);
>   
> -							if (p[0].format != DRM_FORMAT_NV12 && p[1].format != DRM_FORMAT_NV12)
> +							if (!igt_format_is_yuv_semiplanar(p[0].format) &&!igt_format_is_yuv_semiplanar(p[1].format))
>   								crclog[ctz(planeconfigs[i].rotation) | (ctz(planeconfigs[j].rotation) << 2)]
>   								= retcrc_sw;
>   						}



More information about the igt-dev mailing list