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) {
next prev parent 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