[igt-dev] [PATCHv3 i-g-t] tests/kms_async_flips: Enable async flip on linear buffer

Murthy, Arun R arun.r.murthy at intel.com
Mon Dec 5 04:16:59 UTC 2022


> -----Original Message-----
> From: B S, Karthik <karthik.b.s at intel.com>
> Sent: Friday, November 4, 2022 9:38 AM
> To: Murthy, Arun R <arun.r.murthy at intel.com>; igt-
> dev at lists.freedesktop.org
> Cc: Latvala, Petri <petri.latvala at intel.com>; Nikula, Jani
> <jani.nikula at intel.com>
> Subject: Re: [PATCHv3 i-g-t] tests/kms_async_flips: Enable async flip on linear
> buffer
> 
> Hi,
> 
> On 9/5/2022 5:31 PM, Arun R Murthy wrote:
> > On Intel Gen platforms >= GEN12, Async on linear buffer is supported,
> > hence enabling test for the same.
> >
> > v2: Added new line character for igt_skip_on_f (Petri)
> >      Added new element modifier in data struct (JP)
> > v3: Use display ver instead of graphics ver(Jani N)
> >
> > Signed-off-by: Arun R Murthy <arun.r.murthy at intel.com>
> > ---
> >   tests/kms_async_flips.c | 26 +++++++++++++++++++++++---
> >   1 file changed, 23 insertions(+), 3 deletions(-)
> >
> > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index
> > 695aea74..7ff71d83 100644
> > --- a/tests/kms_async_flips.c
> > +++ b/tests/kms_async_flips.c
> > @@ -61,6 +61,7 @@ typedef struct {
> >   	bool extended;
> >   	enum pipe pipe;
> >   	bool alternate_sync_async;
> > +	uint64_t modifier;
> >   } data_t;
> >
> >   static void flip_handler(int fd_, unsigned int sequence, unsigned
> > int tv_sec, @@ -125,7 +126,7 @@ static void make_fb(data_t *data,
> > struct igt_fb *fb,
> >
> >   	if (is_i915_device(data->drm_fd)) {
> >   		igt_create_fb(data->drm_fd, width, height,
> DRM_FORMAT_XRGB8888,
> > -			      I915_FORMAT_MOD_X_TILED, fb);
> > +			      data->modifier, fb);
> >   		igt_draw_fill_fb(data->drm_fd, fb, 0x88);
> >   	} else {
> >   		igt_create_color_fb(data->drm_fd, width, height,
> > DRM_FORMAT_XRGB8888, @@ -594,21 +595,37 @@ igt_main_args("e",
> NULL, help_str, opt_handler, &data)
> >   		igt_fixture
> >   			require_monotonic_timestamp(data.drm_fd);
> >
> > -		igt_describe("Wait for page flip events in between successive
> asynchronous flips");
> > +		igt_describe("Wait for page flip events in between successive
> > +asynchronous flips on X Tiled buffer");
> The description is misleading because on non-i915 platforms we will still use
> linear buffer.
> If we want to make this x-tiled specific then we might need an i915 check
> here.

Now there are two separate sub-test one for X-tiled and other for linear.

> >   		igt_subtest_with_dynamic("async-flip-with-page-flip-events")
> {
> >   			data.alternate_sync_async = false;
> > +			data.modifier = I915_FORMAT_MOD_X_TILED;
> >   			run_test(&data, test_async_flip);
> >   		}
> >
> > +		igt_describe("Wait for page flip events in between successive
> asynchronous flips on Linear buffer");
> > +		igt_subtest_with_dynamic("async-flip-with-page-flip-events-
> linear") {
> > +			data.alternate_sync_async = false;
> > +			data.modifier = DRM_FORMAT_MOD_LINEAR;
> > +			if(is_i915_device(data.drm_fd)) {
> > +				igt_skip_on_f(intel_display_ver(
> > +
> 	intel_get_drm_devid(data.drm_fd)) < 12,
> > +						"Async on Linear buffer not
> supported\n");
> > +				run_test(&data, test_async_flip);
> 
> The linear buffers are supported in any case on non-i915 platforms, so we
> could have the run_test outside the i915 check?
Done.
> 
> Also, just thinking if we would need a separate test for linear or just update
> the condition in make_fb to use linear modifier if Gen >= 12 in i915?
Its already a separate sub test.


Also the test results with the kernel patch can be located @ https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_109443v7/index.html

Thanks and Regards,
Arun R Murthy
--------------------
> 
> Thanks,
> Karthik.B.S
> > +			}
> > +		}
> > +
> >   		igt_describe("Alternate between sync and async flips");
> >   		igt_subtest_with_dynamic("alternate-sync-async-flip") {
> > +			data.modifier = I915_FORMAT_MOD_X_TILED;
> >   			data.alternate_sync_async = true;
> >   			run_test(&data, test_async_flip);
> >   		}
> >
> >   		igt_describe("Verify that the async flip timestamp does not
> coincide with either previous or next vblank");
> > -		igt_subtest_with_dynamic("test-time-stamp")
> > +		igt_subtest_with_dynamic("test-time-stamp") {
> > +			data.modifier = I915_FORMAT_MOD_X_TILED;
> >   			run_test(&data, test_timestamp);
> > +		}
> >   	}
> >
> >   	igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes
> after
> > async flip"); @@ -622,6 +639,7 @@ igt_main_args("e", NULL, help_str,
> opt_handler, &data)
> >   			      "PSR2 sel fetch causes cursor to be added to
> primary plane " \
> >   			      "pages flips and async flip is not supported in
> cursor\n");
> >
> > +		data.modifier = I915_FORMAT_MOD_X_TILED;
> >   		run_test(&data, test_cursor);
> >   	}
> >
> > @@ -632,6 +650,7 @@ igt_main_args("e", NULL, help_str, opt_handler,
> &data)
> >   		igt_require(igt_display_has_format_mod(&data.display,
> DRM_FORMAT_XRGB8888,
> >
> I915_FORMAT_MOD_Y_TILED));
> >
> > +		data.modifier = I915_FORMAT_MOD_X_TILED;
> >   		run_test(&data, test_invalid);
> >   	}
> >
> > @@ -640,6 +659,7 @@ igt_main_args("e", NULL, help_str, opt_handler,
> &data)
> >   		/* Devices without CRC can't run this test */
> >   		igt_require_pipe_crc(data.drm_fd);
> >
> > +		data.modifier = I915_FORMAT_MOD_X_TILED;
> >   		run_test(&data, test_crc);
> >   	}
> >


More information about the igt-dev mailing list