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);