Re: [PATCH i-g-t] tests/amdgpu/amd_cursor_overlay: reset primary position for reference frame

Tom Chung <[email protected]> Tue, 4 Aug 2026 10:53:43 +0800
Newsgroups org.freedesktop.lists.igt-dev
Message-ID <[email protected]>
Reviewed-by: Tom Chung <[email protected]>

On 7/30/2026 8:57 PM, James Lin wrote:
> [Why]
> test_cursor_pos() reuses the primary plane across cursor positions. The
> TEST_QUARTER_FB path repositions the primary to an opposite quarter of the
> screen (opp_x, opp_y). On the next iteration the reference frame reprograms
> the full-size framebuffer with igt_plane_set_fb(), which resets the plane
> size but NOT its CRTC position, so the "full-screen" reference primary keeps
> the stale quarter offset and therefore no longer covers the CRTC.
>
> On DCN4x the cursor falls back to overlay mode whenever the top plane does
> not fill the CRTC. With the stale offset the reference frame is composited
> with an overlay cursor instead of a native one, which renders differently
> from the settled frame and produces a stable CRC mismatch against the test
> frame (only the first position, where the primary is still at the origin,
> happens to pass).
>
> [How]
> Explicitly reset the primary plane position to (0,0) for the reference
> frame so it actually covers the CRTC, matching the test's intent.
>
> Signed-off-by: James Lin <[email protected]>
> ---
>   tests/amdgpu/amd_cursor_overlay.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/tests/amdgpu/amd_cursor_overlay.c b/tests/amdgpu/amd_cursor_overlay.c
> index 41c9905b8..b130da4ff 100644
> --- a/tests/amdgpu/amd_cursor_overlay.c
> +++ b/tests/amdgpu/amd_cursor_overlay.c
> @@ -214,6 +214,7 @@ static void test_cursor_pos(data_t *data, int x, int y, unsigned int flags)
>   	cr = igt_get_cairo_ctx(rgb_fb->fd, rgb_fb);
>   
>   	igt_plane_set_fb(data->primary, rgb_fb);
> +	igt_plane_set_position(data->primary, 0, 0);
>   	igt_display_commit2(&data->display, COMMIT_ATOMIC);
>   
>   	igt_paint_color(cr, 0, 0, rgb_fb->width, rgb_fb->height, 0.0, 0.0, 0.0);