[igt-dev] [PATCH i-g-t v2 1/4] tests/kms_cursor_legacy: Handle cursor movements as slow patch for display 9+
Petri Latvala
petri.latvala at intel.com
Wed Sep 8 09:47:37 UTC 2021
On Tue, Sep 07, 2021 at 11:01:27AM -0700, José Roberto de Souza wrote:
> i915 is dropping frontbuffer rendering support for display 9+ so
> this evasion attempts will never happen as DRM_IOCTL_MODE_CURSOR will
> be converted to atomic commits that will be executed during vblanks.
>
> v2:
> - Not using data filed by fixture to generate subtest list (Petri)
>
> Cc: Petri Latvala <petri.latvala at intel.com>
> Cc: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> ---
> tests/kms_cursor_legacy.c | 24 ++++++++++++++----------
> 1 file changed, 14 insertions(+), 10 deletions(-)
>
> diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
> index 0f0df951b..3ddea9c35 100644
> --- a/tests/kms_cursor_legacy.c
> +++ b/tests/kms_cursor_legacy.c
> @@ -303,8 +303,13 @@ enum flip_test {
> flip_test_last = flip_test_atomic_transitions_varying_size
> };
>
> -static bool cursor_slowpath(enum flip_test mode)
> +static bool cursor_slowpath(igt_display_t *display, enum flip_test mode)
> {
> + /* Intel display 9 and newer will handle cursor movement as fastsets */
> + if (is_i915_device(display->drm_fd) &&
> + intel_display_ver(intel_get_drm_devid(display->drm_fd)) >= 9)
> + return true;
What is the meaning of the return value of cursor_slowpath()? "This
will take the slow path"? If so, the comment and the code are saying
opposite things...
--
Petri Latvala
> +
> /* cursor moving doesn't take slowpath, everything else does. */
> if (mode == flip_test_legacy || mode == flip_test_atomic)
> return false;
> @@ -600,7 +605,7 @@ static void basic_flip_cursor(igt_display_t *display,
>
> if (miss)
> { /* compare nothing, already failed */ }
> - else if (!cursor_slowpath(mode))
> + else if (!cursor_slowpath(display, mode))
> miss = delta != 0;
> else
> miss = delta != 0 && delta != 1;
> @@ -753,7 +758,7 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
> do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[nloops & 1]);
>
> /* Nor should it have delayed the following cursor update */
> - if (!cursor_slowpath(mode))
> + if (!cursor_slowpath(display, mode))
> igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
> else
> igt_assert_lte(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 1);
> @@ -1119,7 +1124,7 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
> vblank_last = vbl.sequence;
> }
>
> - if (!cursor_slowpath(mode))
> + if (!cursor_slowpath(display, mode))
> igt_assert_lte(vbl.sequence, vblank_start + 5 * vrefresh / 8);
>
> shared[0] = 1;
> @@ -1558,12 +1563,11 @@ igt_main
> igt_subtest_f("%sflip-before-cursor-%s", prefix, modes[i])
> basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR, 0);
>
> - if (!cursor_slowpath(i)) {
> - igt_subtest_f("%sbusy-flip-before-cursor-%s", prefix, modes[i]) {
> - igt_require_gem(display.drm_fd);
> - basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR,
> - BASIC_BUSY);
> - }
> + igt_subtest_f("%sbusy-flip-before-cursor-%s", prefix, modes[i]) {
> + igt_require(!cursor_slowpath(&display, i));
> + igt_require_gem(display.drm_fd);
> + basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR,
> + BASIC_BUSY);
> }
> }
>
> --
> 2.33.0
>
More information about the igt-dev
mailing list