[PATCH i-g-t v14 5/5] tests/kms_async_flips: Skip Async Flips with Linear Modifier
Reddy Guddati, Santhosh
santhosh.reddy.guddati at intel.com
Mon Jun 23 07:59:45 UTC 2025
On 23-06-2025 12:56, Borah, Chaitanya Kumar wrote:
>
>
>> -----Original Message-----
>> From: Reddy Guddati, Santhosh <santhosh.reddy.guddati at intel.com>
>> Sent: Tuesday, June 17, 2025 7:57 PM
>> To: igt-dev at lists.freedesktop.org
>> Cc: B S, Karthik <karthik.b.s at intel.com>; Murthy, Arun R
>> <arun.r.murthy at intel.com>; Borah, Chaitanya Kumar
>> <chaitanya.kumar.borah at intel.com>; Reddy Guddati, Santhosh
>> <santhosh.reddy.guddati at intel.com>
>> Subject: [PATCH i-g-t v14 5/5] tests/kms_async_flips: Skip Async Flips with
>> Linear Modifier
>>
>> Skip the linear modifier subtest on unsupported platforms
>>
>> V2: Remove platform check and use in_formats_async (Chaitanya)
>> Update the commit message
>>
>> V3: Fix crash
>>
>> v4: Handle the case for linear modifiers on platforms where
>> IN_FORMATS_ASYNC is not supported. (Chaitanya)
>>
>> v5: Move the linear modifier support checks to run_test (Chaitanya)
>>
>> Signed-off-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
>> ---
>> tests/kms_async_flips.c | 32 ++++++++++++++++++++++++++++++++
>> 1 file changed, 32 insertions(+)
>>
>> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
>> e176b2a28..0c8f4afae 100644
>> --- a/tests/kms_async_flips.c
>> +++ b/tests/kms_async_flips.c
>> @@ -799,6 +799,35 @@ static void test_crc(data_t *data)
>> igt_assert_lt(data->frame_count * 2, data->flip_count); }
>>
>> +static void require_linear_modifier(data_t *data) {
>> + enum pipe pipe = PIPE_A;
>
> This again the restrict the check only to PIPE A.
As format/ modifier support is output independent, PIPE_A is chosen
here simply to ensure a valid output is available for the test setup.
This choice is intended to simplify the setup by choosing a known good pipe.
>
> Regards
>
> Chaitanya
>
>
>> +
>> + data->output = igt_get_single_output_for_pipe(&data->display, pipe);
>> + igt_require_f(data->output, "No output found for pipe %s\n",
>> + kmstest_pipe_name(pipe));
>> +
>> + igt_output_set_pipe(data->output, pipe);
>> +
>> + data->plane = igt_output_get_plane_type(data->output,
>> DRM_PLANE_TYPE_PRIMARY);
>> + igt_require_f(data->plane, "No primary plane found for output %s\n",
>> + data->output->name);
>> +
>> + if(!igt_plane_has_prop(data->plane,
>> IGT_PLANE_IN_FORMATS_ASYNC)) {
>> + data->modifier = DRM_FORMAT_MOD_LINEAR;
>> + } else {
>> + igt_assert_f(data->plane->async_format_mod_count > 0,
>> + "No async format/modifier supported\n");
>> + for (int i = 0; i < data->plane->async_format_mod_count; i++) {
>> + if (data->plane->async_modifiers[i] ==
>> DRM_FORMAT_MOD_LINEAR) {
>> + data->modifier =
>> DRM_FORMAT_MOD_LINEAR;
>> + return;
>> + }
>> + }
>> + igt_skip("No linear modifier supported for async flips\n");
>> + }
>> +}
>> +
>> static void run_test(data_t *data, void (*test)(data_t *)) {
>> igt_display_t *display = &data->display; @@ -806,6 +835,9 @@ static
>> void run_test(data_t *data, void (*test)(data_t *))
>> if (data->atomic_path)
>> require_atomic_async_cap(data);
>>
>> + if (data->linear_modifier)
>> + require_linear_modifier(data);
>> +
>> for_each_pipe_with_valid_output(display, data->pipe, data->output)
>> {
>> igt_display_reset(display);
>>
>> --
>> 2.34.1
>
More information about the igt-dev
mailing list