[igt-dev] [PATCH i-g-t v2 1/1] tests/kms_plane_lowres: Fix CRC mismatch

Petri Latvala petri.latvala at intel.com
Fri Jan 31 10:55:20 UTC 2020


On Fri, Jan 31, 2020 at 11:26:03AM +0200, Mika Kahola wrote:
> Mixing SDR and HDR planes yields to CRC mismatch. The patch computes the
> reference image and CRC with the main plane matching the SDR/HDR plane type.
> 
> v2: HDR planes are not defined for gen9 and older (CI)
> 
> References: https://gitlab.freedesktop.org/drm/intel/issues/899
> Signed-off-by: Mika Kahola <mika.kahola at intel.com>
> ---
>  tests/kms_plane_lowres.c | 142 +++++++++++++++++++++++++--------------
>  1 file changed, 90 insertions(+), 52 deletions(-)
> 
> diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
> index 4c3f5636..012b25e3 100644
> --- a/tests/kms_plane_lowres.c
> +++ b/tests/kms_plane_lowres.c
> @@ -32,11 +32,15 @@
>  
>  IGT_TEST_DESCRIPTION("Test atomic mode setting with a plane by switching between high and low resolutions");
>  
> +#define SDR_PLANE_BASE 3
>  #define SIZE 64
>  
>  typedef struct {
>  	int drm_fd;
>  	igt_display_t display;
> +	uint32_t devid;
> +	igt_output_t *output;
> +	enum pipe pipe;
>  	struct igt_fb fb_primary;
>  	struct igt_fb fb_plane[2];
>  	struct {
> @@ -77,11 +81,44 @@ get_lowres_mode(int drmfd, igt_output_t *output,
>  	return *mode;
>  }
>  
> +static igt_plane_t *first_sdr_plane(igt_output_t *output, uint32_t devid)
> +{
> +        int index;
> +
> +        index = intel_gen(devid) <= 9 ? 0 : SDR_PLANE_BASE;
> +
> +        return igt_output_get_plane(output, index);
> +}
> +
> +static bool is_sdr_plane(const igt_plane_t *plane, uint32_t devid)
> +{
> +        if (intel_gen(devid) <= 9)
> +                return true;
> +
> +        return plane->index >= SDR_PLANE_BASE;
> +}

kms_plane.c has similar HDR plane finder code by Ville. For some
values of similar. At least it had comments explaining why the SDR plane base is 3. :P

Any takers for refactoring to shared code?


-- 
Petri Latvala


More information about the igt-dev mailing list