Add a new FLIP_PLANES enum so we can do "page flips" using it too. The goal is to exercise the fast modeset paths on the Kernel. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> --- tests/kms_frontbuffer_tracking.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c index 74acc73..994bb4a 100644 --- a/tests/kms_frontbuffer_tracking.c +++ b/tests/kms_frontbuffer_tracking.c @@ -122,6 +122,7 @@ enum flip_type { FLIP_PAGEFLIP, FLIP_PAGEFLIP_EVENT, FLIP_MODESET, + FLIP_PLANES, }; enum color { @@ -2194,6 +2195,31 @@ static void wait_flip_event(void) } } +static void set_prim_plane_for_params(struct modeset_params *params) +{ + int rc, i, crtc_index = -1; + uint32_t plane_id = 0; + + for (i = 0; i < drm.res->count_crtcs; i++) + if (drm.res->crtcs[i] == params->crtc_id) + crtc_index = i; + igt_assert(crtc_index >= 0); + + for (i = 0; i < drm.plane_res->count_planes; i++) + if ((drm.planes[i]->possible_crtcs & (1 << crtc_index)) && + drm.plane_types[i] == DRM_PLANE_TYPE_PRIMARY) + plane_id = drm.planes[i]->plane_id; + igt_assert(plane_id); + + rc = drmModeSetPlane(drm.fd, plane_id, params->crtc_id, + params->fb.fb->fb_id, 0, 0, 0, + params->mode->hdisplay, + params->mode->vdisplay, + params->fb.x << 16, params->fb.y << 16, + params->fb.w << 16, params->fb.h << 16); + igt_assert(rc == 0); +} + static void page_flip_for_params(struct modeset_params *params, enum flip_type type) { @@ -2215,6 +2241,9 @@ static void page_flip_for_params(struct modeset_params *params, case FLIP_MODESET: set_mode_for_params(params); break; + case FLIP_PLANES: + set_prim_plane_for_params(params); + break; default: igt_assert(false); } @@ -3184,6 +3213,13 @@ int main(int argc, char *argv[]) igt_draw_get_method_name(t.method)) flip_subtest(&t, FLIP_MODESET); + igt_subtest_f("%s-%s-%s-%s-plflip-%s", + feature_str(t.feature), + pipes_str(t.pipes), + screen_str(t.screen), + fbs_str(t.fbs), + igt_draw_get_method_name(t.method)) + flip_subtest(&t, FLIP_PLANES); TEST_MODE_ITER_END TEST_MODE_ITER_BEGIN(t) -- 2.6.2 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx