Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Juha-Pekka Heikkilä" <juhapekka.heikkila@gmail.com>
To: Luca Coelho <luca@coelho.fi>, igt-dev@lists.freedesktop.org
Subject: Re: [PATCH i-g-t 9/9] tests/kms_plane_scaling: remove legacy subtests covered by max-crc tests
Date: Mon, 26 Oct 2026 15:58:43 +0200	[thread overview]
Message-ID: <f54c30fc-70e3-48e3-bdd2-672b927bf7b9@gmail.com> (raw)
In-Reply-To: <702623e740738dcca92ee3d8ecc3adf256f6f51e.camel@coelho.fi>



On 19/10/2026 16.32, Luca Coelho wrote:
> On Thu, 2026-10-15 at 16:16 +0300, Juha-Pekka Heikkila wrote:
>> The plane-*-max-crc subtests search scaling limits kernel actually accepts
>> for each pixel format, modifier and rotation, on all pipes, for primary
>> and overlay planes alone and together, and verify result with crc. Legacy
>> subtests below only checked that commit with fixed scaling factor was
>> accepted, skipping on -EINVAL or -ERANGE, so they never
>> verified the scaled output.
>>
>> The first three removed groups each had six variants: upscale-20x20,
>> upscale-factor-0-25, downscale-factor-0-25, downscale-factor-0-5,
>> downscale-factor-0-75 and scaler-unity-scaling.
>>
>> plane-*-with-pixel-format
>>    Covered by plane-{up/down}scale-max-crc-linear, which tests every
>>    format at largest accepted factor and checks the crc.
>>    Unity scaling is reference commit of each max-crc step.
>>
>> plane-*-with-modifiers
>>    Covered by per modifier plane-{up/down}scale-max-crc-* subtests.
>>
>> plane-*-with-rotation
>>    Linear XRGB8888 walking rotations 0, 90, 180, 270 and returning on the
>>    first rejected commit. Where 90 is advertised it is rejected with
>>    linear, so only rotation 0 was ever exercised; Covered by
>>    plane-{up/down}scale-max-crc-* and plane-{up/down}scale-max-crc-rotation-*.
>>
>> planes-* (24 subtests)
>>    Covered by primary+overlay step of the max-crc subtests, which scales
>>    both planes at their limits at the same time on pipes with at least
>>    two scalers and compares against both planes unscaled.
>>
>> Assisted-by: Claude:claude-opus-5
>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>> ---
> 
> This seems to drop some of the existing plane scaling coverage.  The
> planes-* subtests seem to be gone, at least the upscale/downscale
> mixes, and also some of the unity-scaling tests?
> 
> The max-crc tests and the overlay checks in patch 8 seem to cover
> only the scaling limits, so I'm not sure these cases are still covered.
> 
> 
> Would it make sense to keep some of the unity-scaling cases, or at
> least the 2-plane fixed-factor ones? But I'm probably missing
> something, so could you point out where they're covered now?
> 

Those legacy tests did only check if commit succeeded and skip on einval 
or erange while they never did any other checking. Where they're now 
covered is

unity scaling -> every max-crc-test start with 1:1 commit on primary, 
then overlay and in two-plane step both planes at 1:1 once. That commit 
gives reference crc for each format/modifier/rotation/pipe so broken 
unity commit would fail these tests

two planes scaled in the same direction -> patch 8 scales primary and 
overlay at their limits at the same time and compares crc we got against 
both planes unscaled.

fixed factors -> the limit search probes the whole range between 1:1 and 
the limit with TEST_ONLY commits and the limit itself is CRC-checked.

You're right on two planes scaled in opposite directions at once and 
plane pairs other than primary+first overlay are no longer covered. For 
next version I'll add a mixed-direction step to the max-crc test.

/Juha-Pekka

> 
> 
>>   tests/kms_plane_scaling.c | 697 --------------------------------------
>>   1 file changed, 697 deletions(-)
>>
>> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
>> index 176ab6b65..7e7155ccd 100644
>> --- a/tests/kms_plane_scaling.c
>> +++ b/tests/kms_plane_scaling.c
>> @@ -36,144 +36,14 @@
>>   #include <math.h>
>>   
>>   /**
>> - * SUBTEST: plane-scaler-unity-scaling-with-modifiers
>> - * Description: Tests scaling with modifiers, unity scaling.
>> - *
>>    * SUBTEST: plane-scaler-with-clipping-clamping-modifiers
>>    * Description: Tests scaling with clipping and clamping, modifiers.
>>    *
>> - * SUBTEST: plane-upscale-%s-with-modifiers
>> - * Description: Tests upscaling with modifiers %arg[1].
>> - *
>> - * arg[1]:
>> - *
>> - * @20x20:          from 20x20 fb
>> - * @factor-0-25:    for 0.25 scaling factor
>> - */
>> -
>> -/**
>> - * SUBTEST: plane-downscale-factor-%s-with-modifiers
>> - * Description: Tests downscaling with modifiers for %arg[1] scaling factor.
>> - *
>> - * arg[1]:
>> - *
>> - * @0-25:   0.25
>> - * @0-5:    0.5
>> - * @0-75:   0.75
>> - */
>> -
>> -/**
>> - * SUBTEST: plane-scaler-unity-scaling-with-rotation
>> - * Description: Tests scaling with rotation, unity scaling.
>> - *
>>    * SUBTEST: plane-scaler-with-clipping-clamping-rotation
>>    * Description: Tests scaling with clipping and clamping, rotation.
>>    *
>> - * SUBTEST: plane-upscale-%s-with-rotation
>> - * Description: Tests upscaling with rotation %arg[1].
>> - *
>> - * arg[1]:
>> - *
>> - * @20x20:          from 20x20 fb
>> - * @factor-0-25:    for 0.25 scaling factor
>> - */
>> -
>> -/**
>> - * SUBTEST: plane-downscale-factor-%s-with-rotation
>> - * Description: Tests downscaling with rotation for %arg[1] scaling factor.
>> - *
>> - * arg[1]:
>> - *
>> - * @0-25:   0.25
>> - * @0-5:    0.5
>> - * @0-75:   0.75
>> - */
>> -
>> -/**
>> - * SUBTEST: plane-scaler-unity-scaling-with-pixel-format
>> - * Description: Tests scaling with pixel formats, unity scaling.
>> - *
>>    * SUBTEST: plane-scaler-with-clipping-clamping-pixel-formats
>>    * Description: Tests scaling with clipping and clamping, pixel formats.
>> - *
>> - * SUBTEST: plane-upscale-%s-with-pixel-format
>> - * Description: Tests upscaling with pixel formats %arg[1].
>> - *
>> - * arg[1]:
>> - *
>> - * @20x20:          from 20x20 fb
>> - * @factor-0-25:    for 0.25 scaling factor
>> - */
>> -
>> -/**
>> - * SUBTEST: plane-downscale-factor-%s-with-pixel-format
>> - * Description: Tests downscaling with pixel formats for %arg[1] scaling factor.
>> - *
>> - * arg[1]:
>> - *
>> - * @0-25:   0.25
>> - * @0-5:    0.5
>> - * @0-75:   0.75
>> - */
>> -
>> -/**
>> - * SUBTEST: planes-downscale-factor-%s
>> - * Description: Tests downscaling of 2 planes for %arg[1] scaling factor.
>> - *
>> - * arg[1]:
>> - *
>> - * @0-25:  0.25
>> - * @0-5:   0.5
>> - * @0-75:  0.75
>> - */
>> -
>> -/**
>> - * SUBTEST: planes-downscale-factor-%s-%s
>> - * Description: Tests downscaling (scaling factor %arg[1]) and upscaling (%arg[2])
>> - *              of 2 planes.
>> - *
>> - * arg[1]:
>> - *
>> - * @0-25:  0.25
>> - * @0-5:   0.5
>> - * @0-75:  0.75
>> - *
>> - * arg[2]:
>> - *
>> - * @upscale-20x20:           upscale 20x20
>> - * @upscale-factor-0-25:     scaling factor 0.25
>> - * @unity-scaling:           Unity
>> - */
>> -
>> -/**
>> - * SUBTEST: planes-scaler-unity-scaling
>> - * Description: Tests scaling of 2 planes, unity scaling.
>> - *
>> - * SUBTEST: planes-upscale-%s
>> - * Description: Tests upscaling of 2 planes %arg[1].
>> - *
>> - * arg[1]:
>> - *
>> - * @20x20:          from 20x20 fb
>> - * @factor-0-25:    for 0.25 scaling factor
>> - */
>> -
>> -/**
>> - * SUBTEST: planes-%s-downscale-factor-%s
>> - * Description: Tests scaling (%arg[1]) and downscaling (scaling factor %arg[2])
>> - *              of 2 planes.
>> - *
>> - * arg[1]:
>> - *
>> - * @unity-scaling:           Unity
>> - * @upscale-factor-0-25:     scaling factor 0.25
>> - * @upscale-20x20:           upscale 20x20
>> - *
>> - * arg[2]:
>> - *
>> - * @0-25:  0.25
>> - * @0-5:   0.5
>> - * @0-75:  0.75
>>    */
>>   
>>   /**
>> @@ -260,13 +130,6 @@
>>   
>>   IGT_TEST_DESCRIPTION("Test display plane scaling");
>>   
>> -enum scaler_combo_test_type {
>> -	TEST_PLANES_UPSCALE = 0,
>> -	TEST_PLANES_DOWNSCALE,
>> -	TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	TEST_PLANES_DOWNSCALE_UPSCALE,
>> -};
>> -
>>   typedef struct {
>>   	uint32_t devid;
>>   	int drm_fd;
>> @@ -293,315 +156,6 @@ static const struct invalid_paramtests intel_paramtests[] = {
>>   	},
>>   };
>>   
>> -const struct {
>> -	const char * const describe;
>> -	const char * const name;
>> -	const double sf;
>> -	const bool is_upscale;
>> -} scaler_with_pixel_format_tests[] = {
>> -	{
>> -		"Tests upscaling with pixel formats, from 20x20 fb.",
>> -		"plane-upscale-20x20-with-pixel-format",
>> -		0.0,
>> -		true,
>> -	},
>> -	{
>> -		"Tests upscaling with pixel formats for 0.25 scaling factor.",
>> -		"plane-upscale-factor-0-25-with-pixel-format",
>> -		0.25,
>> -		true,
>> -	},
>> -	{
>> -		"Tests downscaling with pixel formats for 0.25 scaling factor.",
>> -		"plane-downscale-factor-0-25-with-pixel-format",
>> -		0.25,
>> -		false,
>> -	},
>> -	{
>> -		"Tests downscaling with pixel formats for 0.5 scaling factor.",
>> -		"plane-downscale-factor-0-5-with-pixel-format",
>> -		0.5,
>> -		false,
>> -	},
>> -	{
>> -		"Tests downscaling with pixel formats for 0.75 scaling factor.",
>> -		"plane-downscale-factor-0-75-with-pixel-format",
>> -		0.75,
>> -		false,
>> -	},
>> -	{
>> -		"Tests scaling with pixel formats, unity scaling.",
>> -		"plane-scaler-unity-scaling-with-pixel-format",
>> -		1.0,
>> -		true,
>> -	},
>> -};
>> -
>> -const struct {
>> -	const char * const describe;
>> -	const char * const name;
>> -	const double sf;
>> -	const bool is_upscale;
>> -} scaler_with_rotation_tests[] = {
>> -	{
>> -		"Tests upscaling with rotation, from 20x20 fb.",
>> -		"plane-upscale-20x20-with-rotation",
>> -		0.0,
>> -		true,
>> -	},
>> -	{
>> -		"Tests upscaling with rotation for 0.25 scaling factor.",
>> -		"plane-upscale-factor-0-25-with-rotation",
>> -		0.25,
>> -		true,
>> -	},
>> -	{
>> -		"Tests downscaling with rotation for 0.25 scaling factor.",
>> -		"plane-downscale-factor-0-25-with-rotation",
>> -		0.25,
>> -		false,
>> -	},
>> -	{
>> -		"Tests downscaling with rotation for 0.5 scaling factor.",
>> -		"plane-downscale-factor-0-5-with-rotation",
>> -		0.5,
>> -		false,
>> -	},
>> -	{
>> -		"Tests downscaling with rotation for 0.75 scaling factor.",
>> -		"plane-downscale-factor-0-75-with-rotation",
>> -		0.75,
>> -		false,
>> -	},
>> -	{
>> -		"Tests scaling with rotation, unity scaling.",
>> -		"plane-scaler-unity-scaling-with-rotation",
>> -		1.0,
>> -		true,
>> -	},
>> -};
>> -
>> -const struct {
>> -	const char * const describe;
>> -	const char * const name;
>> -	const double sf;
>> -	const bool is_upscale;
>> -} scaler_with_modifiers_tests[] = {
>> -	{
>> -		"Tests upscaling with modifiers, from 20x20 fb.",
>> -		"plane-upscale-20x20-with-modifiers",
>> -		0.0,
>> -		true,
>> -	},
>> -	{
>> -		"Tests upscaling with modifiers for 0.25 scaling factor.",
>> -		"plane-upscale-factor-0-25-with-modifiers",
>> -		0.25,
>> -		true,
>> -	},
>> -	{
>> -		"Tests downscaling with modifiers for 0.25 scaling factor.",
>> -		"plane-downscale-factor-0-25-with-modifiers",
>> -		0.25,
>> -		false,
>> -	},
>> -	{
>> -		"Tests downscaling with modifiers for 0.5 scaling factor.",
>> -		"plane-downscale-factor-0-5-with-modifiers",
>> -		0.5,
>> -		false,
>> -	},
>> -	{
>> -		"Tests downscaling with modifiers for 0.75 scaling factor.",
>> -		"plane-downscale-factor-0-75-with-modifiers",
>> -		0.75,
>> -		false,
>> -	},
>> -	{
>> -		"Tests scaling with modifiers, unity scaling.",
>> -		"plane-scaler-unity-scaling-with-modifiers",
>> -		1.0,
>> -		true,
>> -	},
>> -};
>> -
>> -const struct {
>> -	const char * const describe;
>> -	const char * const name;
>> -	const double sf_plane1;
>> -	const double sf_plane2;
>> -	const enum scaler_combo_test_type test_type;
>> -} scaler_with_2_planes_tests[] = {
>> -	{
>> -		"Tests upscaling of 2 planes, from 20x20 fb.",
>> -		"planes-upscale-20x20",
>> -		0.0,
>> -		0.0,
>> -		TEST_PLANES_UPSCALE,
>> -	},
>> -	{
>> -		"Tests upscaling of 2 planes for 0.25 scaling factor.",
>> -		"planes-upscale-factor-0-25",
>> -		0.25,
>> -		0.25,
>> -		TEST_PLANES_UPSCALE,
>> -	},
>> -	{
>> -		"Tests scaling of 2 planes, unity scaling.",
>> -		"planes-scaler-unity-scaling",
>> -		1.0,
>> -		1.0,
>> -		TEST_PLANES_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling of 2 planes for 0.25 scaling factor.",
>> -		"planes-downscale-factor-0-25",
>> -		0.25,
>> -		0.25,
>> -		TEST_PLANES_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling of 2 planes for 0.5 scaling factor.",
>> -		"planes-downscale-factor-0-5",
>> -		0.5,
>> -		0.5,
>> -		TEST_PLANES_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling of 2 planes for 0.75 scaling factor.",
>> -		"planes-downscale-factor-0-75",
>> -		0.75,
>> -		0.75,
>> -		TEST_PLANES_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests upscaling (20x20) and downscaling (scaling factor 0.25) of 2 planes.",
>> -		"planes-upscale-20x20-downscale-factor-0-25",
>> -		0.0,
>> -		0.25,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests upscaling (20x20) and downscaling (scaling factor 0.5) of 2 planes.",
>> -		"planes-upscale-20x20-downscale-factor-0-5",
>> -		0.0,
>> -		0.5,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests upscaling (20x20) and downscaling (scaling factor 0.75) of 2 planes.",
>> -		"planes-upscale-20x20-downscale-factor-0-75",
>> -		0.0,
>> -		0.75,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.25) of 2 planes.",
>> -		"planes-upscale-factor-0-25-downscale-factor-0-25",
>> -		0.25,
>> -		0.25,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.5) of 2 planes.",
>> -		"planes-upscale-factor-0-25-downscale-factor-0-5",
>> -		0.25,
>> -		0.5,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.75) of 2 planes.",
>> -		"planes-upscale-factor-0-25-downscale-factor-0-75",
>> -		0.25,
>> -		0.75,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests scaling (unity) and downscaling (scaling factor 0.25) of 2 planes.",
>> -		"planes-unity-scaling-downscale-factor-0-25",
>> -		1.0,
>> -		0.25,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests scaling (unity) and downscaling (scaling factor 0.5) of 2 planes.",
>> -		"planes-unity-scaling-downscale-factor-0-5",
>> -		1.0,
>> -		0.5,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests scaling (unity) and downscaling (scaling factor 0.75) of 2 planes.",
>> -		"planes-unity-scaling-downscale-factor-0-75",
>> -		1.0,
>> -		0.75,
>> -		TEST_PLANES_UPSCALE_DOWNSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.25) and upscaling (20x20) of 2 planes.",
>> -		"planes-downscale-factor-0-25-upscale-20x20",
>> -		0.25,
>> -		0.0,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.25) and upscaling (scaling factor 0.25) of 2 planes.",
>> -		"planes-downscale-factor-0-25-upscale-factor-0-25",
>> -		0.25,
>> -		0.25,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.25) and scaling (unity) of 2 planes.",
>> -		"planes-downscale-factor-0-25-unity-scaling",
>> -		0.25,
>> -		1.0,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.5) and upscaling (20x20) of 2 planes.",
>> -		"planes-downscale-factor-0-5-upscale-20x20",
>> -		0.5,
>> -		0.0,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.5) and upscaling (scaling factor 0.25) of 2 planes.",
>> -		"planes-downscale-factor-0-5-upscale-factor-0-25",
>> -		0.5,
>> -		0.25,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.5) and scaling (unity) of 2 planes.",
>> -		"planes-downscale-factor-0-5-unity-scaling",
>> -		0.5,
>> -		1.0,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.75) and upscaling (20x20) of 2 planes.",
>> -		"planes-downscale-factor-0-75-upscale-20x20",
>> -		0.75,
>> -		0.0,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.75) and upscaling (scaling factor 0.25) of 2 planes.",
>> -		"planes-downscale-factor-0-75-upscale-factor-0-25",
>> -		0.75,
>> -		0.25,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -	{
>> -		"Tests downscaling (scaling factor 0.75) and scaling (unity) of 2 planes.",
>> -		"planes-downscale-factor-0-75-unity-scaling",
>> -		0.75,
>> -		1.0,
>> -		TEST_PLANES_DOWNSCALE_UPSCALE,
>> -	},
>> -};
>> -
>>   static int get_width(drmModeModeInfo *mode, double scaling_factor)
>>   {
>>   	if (scaling_factor == 0.0)
>> @@ -1478,133 +1032,6 @@ find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
>>   	return crtc;
>>   }
>>   
>> -static int
>> -__test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2, igt_output_t *output,
>> -			    igt_plane_t *p1, igt_plane_t *p2,
>> -			    struct igt_fb *fb1, struct igt_fb *fb2,
>> -			    enum scaler_combo_test_type test_type)
>> -{
>> -	igt_display_t *display = &d->display;
>> -	drmModeModeInfo *mode;
>> -	int ret;
>> -
>> -	mode = igt_output_get_mode(output);
>> -
>> -	igt_plane_set_fb(p1, fb1);
>> -	igt_plane_set_fb(p2, fb2);
>> -
>> -	switch (test_type) {
>> -	case TEST_PLANES_UPSCALE:
>> -		igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
>> -		igt_plane_set_size(p2, mode->hdisplay - 20, mode->vdisplay - 20);
>> -		break;
>> -	case TEST_PLANES_DOWNSCALE:
>> -		igt_plane_set_size(p1, w1, h1);
>> -		igt_plane_set_size(p2, w2, h2);
>> -		break;
>> -	case TEST_PLANES_UPSCALE_DOWNSCALE:
>> -		igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
>> -		igt_plane_set_size(p2, w2, h2);
>> -		break;
>> -	case TEST_PLANES_DOWNSCALE_UPSCALE:
>> -		igt_plane_set_size(p1, w1, h1);
>> -		igt_plane_set_size(p2, mode->hdisplay, mode->vdisplay);
>> -		break;
>> -	default:
>> -		igt_assert(0);
>> -	}
>> -
>> -	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>> -
>> -	igt_plane_set_fb(p1, NULL);
>> -	igt_plane_set_fb(p2, NULL);
>> -
>> -	if (ret == -EINVAL || ret == -ERANGE)
>> -		igt_debug("Scaling op not supported by driver with %s\n",
>> -			 (ret == -EINVAL) ? "-EINVAL" : "-ERANGE");
>> -	return ret;
>> -}
>> -
>> -static void setup_fb(int fd, int width, int height, struct igt_fb *fb)
>> -{
>> -	igt_create_fb(fd, width, height,
>> -		      DRM_FORMAT_XRGB8888,
>> -		      DRM_FORMAT_MOD_LINEAR,
>> -		      fb);
>> -}
>> -
>> -static uint32_t
>> -test_planes_scaling_combo(data_t *d, double sf_plane1,
>> -			  double sf_plane2, igt_crtc_t *crtc,
>> -			  igt_output_t *output,
>> -			  enum scaler_combo_test_type test_type)
>> -{
>> -	igt_display_t *display = &d->display;
>> -	drmModeModeInfo *mode;
>> -	int n_planes;
>> -	int w1, h1, w2, h2;
>> -	int ret;
>> -
>> -	cleanup_crtc(d);
>> -
>> -	igt_output_set_crtc(output, crtc);
>> -	for_each_connector_mode(output, mode) {
>> -		igt_output_override_mode(output, mode);
>> -		igt_debug("Trying mode %dx%d\n",
>> -			  mode->hdisplay, mode->vdisplay);
>> -		w1 = get_width(mode, sf_plane1);
>> -		h1 = get_height(mode, sf_plane1);
>> -		w2 = get_width(mode, sf_plane2);
>> -		h2 = get_height(mode, sf_plane2);
>> -
>> -		n_planes = crtc->n_planes;
>> -		igt_require(n_planes >= 2);
>> -
>> -		switch (test_type) {
>> -		case TEST_PLANES_UPSCALE:
>> -			setup_fb(display->drm_fd, w1, h1, &d->fb[1]);
>> -			setup_fb(display->drm_fd, w2, h2, &d->fb[2]);
>> -			break;
>> -		case TEST_PLANES_DOWNSCALE:
>> -			setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, &d->fb[1]);
>> -			setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, &d->fb[2]);
>> -			break;
>> -		case TEST_PLANES_UPSCALE_DOWNSCALE:
>> -			setup_fb(display->drm_fd, w1, h1, &d->fb[1]);
>> -			setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, &d->fb[2]);
>> -			break;
>> -		case TEST_PLANES_DOWNSCALE_UPSCALE:
>> -			setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, &d->fb[1]);
>> -			setup_fb(display->drm_fd, w2, h2, &d->fb[2]);
>> -			break;
>> -		default:
>> -			igt_assert(0);
>> -		}
>> -
>> -		for (int k = 0; k < n_planes - 1; k += 2) {
>> -			igt_plane_t *p1, *p2;
>> -
>> -			p1 = &crtc->planes[k];
>> -			igt_require(p1);
>> -			p2 = &crtc->planes[k+1];
>> -			igt_require(p2);
>> -
>> -			if (p1->type == DRM_PLANE_TYPE_CURSOR || p2->type == DRM_PLANE_TYPE_CURSOR)
>> -				continue;
>> -			ret = __test_planes_scaling_combo(d, w1, h1, w2, h2, output,
>> -							  p1, p2,
>> -							  &d->fb[1], &d->fb[2],
>> -							  test_type);
>> -			if (ret != 0)
>> -				break;
>> -		}
>> -		cleanup_fbs(d);
>> -		if (ret == 0)
>> -			break;
>> -	}
>> -	return ret;
>> -}
>> -
>>   static void
>>   test_invalid_num_scalers(data_t *d, igt_crtc_t *crtc, igt_output_t *output)
>>   {
>> @@ -2044,99 +1471,6 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
>>   	igt_subtest_group() {
>>   		igt_output_t *output;
>>   
>> -		for (int index = 0; index < ARRAY_SIZE(scaler_with_pixel_format_tests); index++) {
>> -			igt_describe(scaler_with_pixel_format_tests[index].describe);
>> -			igt_subtest_with_dynamic(scaler_with_pixel_format_tests[index].name) {
>> -				for_each_crtc(&data.display, crtc) {
>> -					igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
>> -						for_each_valid_output_on_crtc(&data.display,
>> -									      crtc,
>> -									      output) {
>> -							igt_info("Trying on %s\n", igt_output_name(output));
>> -							if (!crtc_output_combo_valid(&data.display, crtc, output))
>> -								continue;
>> -							if (igt_crtc_num_scalers(crtc) < 1)
>> -								continue;
>> -
>> -							ret = test_scaler_with_pixel_format_crtc(&data,
>> -									scaler_with_pixel_format_tests[index].sf,
>> -									false,
>> -									scaler_with_pixel_format_tests[index].is_upscale,
>> -									crtc,
>> -									output);
>> -							if (ret == 0)
>> -								break;
>> -							igt_info("Required scaling operation not supported on %s trying on next output\n",
>> -								 igt_output_name(output));
>> -						}
>> -						skip_if_erange_or_einval(ret);
>> -					}
>> -				}
>> -			}
>> -		}
>> -
>> -		for (int index = 0; index < ARRAY_SIZE(scaler_with_rotation_tests); index++) {
>> -			igt_describe(scaler_with_rotation_tests[index].describe);
>> -			igt_subtest_with_dynamic(scaler_with_rotation_tests[index].name) {
>> -				for_each_crtc(&data.display, crtc) {
>> -					igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
>> -						for_each_valid_output_on_crtc(&data.display,
>> -									      crtc,
>> -									      output) {
>> -							igt_info("Trying on %s\n", igt_output_name(output));
>> -							if (!crtc_output_combo_valid(&data.display, crtc, output))
>> -								continue;
>> -							if (igt_crtc_num_scalers(crtc) < 1)
>> -								continue;
>> -
>> -							ret = test_scaler_with_rotation_crtc(&data,
>> -									scaler_with_rotation_tests[index].sf,
>> -									false,
>> -									scaler_with_rotation_tests[index].is_upscale,
>> -									crtc,
>> -									output);
>> -							if (ret == 0)
>> -								break;
>> -							igt_info("Required scaling operation not supported on %s trying on next output\n",
>> -								 igt_output_name(output));
>> -						}
>> -						skip_if_erange_or_einval(ret);
>> -					}
>> -				}
>> -			}
>> -		}
>> -
>> -		for (int index = 0; index < ARRAY_SIZE(scaler_with_modifiers_tests); index++) {
>> -			igt_describe(scaler_with_modifiers_tests[index].describe);
>> -			igt_subtest_with_dynamic(scaler_with_modifiers_tests[index].name) {
>> -				for_each_crtc(&data.display, crtc) {
>> -					igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
>> -						for_each_valid_output_on_crtc(&data.display,
>> -									      crtc,
>> -									      output) {
>> -							igt_info("Trying on %s\n", igt_output_name(output));
>> -							if (!crtc_output_combo_valid(&data.display, crtc, output))
>> -								continue;
>> -							if (igt_crtc_num_scalers(crtc) < 1)
>> -								continue;
>> -
>> -							ret = test_scaler_with_modifier_crtc(&data,
>> -									scaler_with_modifiers_tests[index].sf,
>> -									false,
>> -									scaler_with_modifiers_tests[index].is_upscale,
>> -									crtc,
>> -									output);
>> -							if (ret == 0)
>> -								break;
>> -							igt_info("Required scaling operation not supported on %s trying on next output\n",
>> -								 igt_output_name(output));
>> -						}
>> -						skip_if_erange_or_einval(ret);
>> -					}
>> -				}
>> -			}
>> -		}
>> -
>>   		igt_describe("Tests scaling with clipping and clamping, pixel formats.");
>>   		igt_subtest_with_dynamic("plane-scaler-with-clipping-clamping-pixel-formats") {
>>   			for_each_crtc(&data.display, crtc) {
>> @@ -2219,37 +1553,6 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
>>   			}
>>   		}
>>   
>> -		for (int index = 0; index < ARRAY_SIZE(scaler_with_2_planes_tests); index++) {
>> -			igt_describe(scaler_with_2_planes_tests[index].describe);
>> -			igt_subtest_with_dynamic(scaler_with_2_planes_tests[index].name) {
>> -				for_each_crtc(&data.display, crtc) {
>> -					igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
>> -						for_each_valid_output_on_crtc(&data.display,
>> -									      crtc,
>> -									      output) {
>> -							igt_info("Trying on %s\n",
>> -								 igt_output_name(output));
>> -							if (!crtc_output_combo_valid(&data.display, crtc, output))
>> -								continue;
>> -							if (igt_crtc_num_scalers(crtc) < 2)
>> -								continue;
>> -							ret = test_planes_scaling_combo(&data,
>> -								scaler_with_2_planes_tests[index].sf_plane1,
>> -								scaler_with_2_planes_tests[index].sf_plane2,
>> -								crtc,
>> -								output,
>> -								scaler_with_2_planes_tests[index].test_type);
>> -							if (ret == 0)
>> -								break;
>> -							igt_info("Required scaling operation not supported on %s trying on next output\n",
>> -								 igt_output_name(output));
>> -						}
>> -						skip_if_erange_or_einval(ret);
>> -					}
>> -				}
>> -			}
>> -		}
>> -
>>   		for (int index = 0; index < ARRAY_SIZE(intel_paramtests); index++) {
>>   			igt_describe("Test for validating max source size.");
>>   			igt_subtest_with_dynamic(intel_paramtests[index].testname) {


  reply	other threads:[~2026-10-26 14:00 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-15 13:16 [PATCH i-g-t 1/9] lib/igt_fb: add igt_format_get_subsampling() function Juha-Pekka Heikkila
2026-10-15 13:16 ` [PATCH i-g-t 2/9] tests/kms_plane_scaling: add search for scaling limit Juha-Pekka Heikkila
2026-10-19 11:32   ` Luca Coelho
2026-10-15 13:16 ` [PATCH i-g-t 3/9] tests/kms_plane_scaling: add plane-downscale-max-crc subtest Juha-Pekka Heikkila
2026-10-19 11:45   ` Luca Coelho
2026-10-26 13:57     ` Juha-Pekka Heikkilä
2026-10-15 13:16 ` [PATCH i-g-t 4/9] tests/kms_plane_scaling: change plane-downscale-max-crc to do variations Juha-Pekka Heikkila
2026-10-19 13:04   ` Luca Coelho
2026-10-15 13:16 ` [PATCH i-g-t 5/9] tests/kms_plane_scaling: add plane-upscale-max-crc subtest Juha-Pekka Heikkila
2026-10-15 13:16 ` [PATCH i-g-t 6/9] tests/kms_plane_scaling: run plane-*-max-crc on all pipes Juha-Pekka Heikkila
2026-10-19 11:50   ` Luca Coelho
2026-10-26 13:57     ` Juha-Pekka Heikkilä
2026-10-15 13:16 ` [PATCH i-g-t 7/9] tests/kms_plane_scaling: add rotated plane-*-max-crc subtests Juha-Pekka Heikkila
2026-10-19 13:08   ` Luca Coelho
2026-10-15 13:16 ` [PATCH i-g-t 8/9] tests/kms_plane_scaling: test overlay plane in plane-*-max-crc Juha-Pekka Heikkila
2026-10-15 13:16 ` [PATCH i-g-t 9/9] tests/kms_plane_scaling: remove legacy subtests covered by max-crc tests Juha-Pekka Heikkila
2026-10-19 13:32   ` Luca Coelho
2026-10-26 13:58     ` Juha-Pekka Heikkilä [this message]
2026-10-20 10:10   ` Kamil Konieczny
2026-10-15 18:03 ` ✓ i915.CI.BAT: success for series starting with [i-g-t,1/9] lib/igt_fb: add igt_format_get_subsampling() function Patchwork
2026-10-15 20:31 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-10-19 11:24 ` [PATCH i-g-t 1/9] " Luca Coelho

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=f54c30fc-70e3-48e3-bdd2-672b927bf7b9@gmail.com \
    --to=juhapekka.heikkila@gmail.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=luca@coelho.fi \
    /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