From patchwork Tue Oct 16 14:34:47 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Imre Deak X-Patchwork-Id: 1601041 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id 624B0DFFED for ; Tue, 16 Oct 2012 14:47:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 72F75A0897 for ; Tue, 16 Oct 2012 07:47:13 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by gabe.freedesktop.org (Postfix) with ESMTP id 5E1399EBD3 for ; Tue, 16 Oct 2012 07:35:28 -0700 (PDT) Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga102.ch.intel.com with ESMTP; 16 Oct 2012 07:35:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.80,593,1344236400"; d="scan'208";a="205092322" Received: from ideak-desk.fi.intel.com (HELO localhost) ([10.237.72.98]) by azsmga001.ch.intel.com with ESMTP; 16 Oct 2012 07:35:26 -0700 From: Imre Deak To: intel-gfx@lists.freedesktop.org Date: Tue, 16 Oct 2012 17:34:47 +0300 Message-Id: <1350398096-3649-14-git-send-email-imre.deak@intel.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1350398096-3649-1-git-send-email-imre.deak@intel.com> References: <1350398096-3649-1-git-send-email-imre.deak@intel.com> Subject: [Intel-gfx] [PATCH 13/22] flip_test: swap the order of check state/run test step X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org At the moment we first check the state then run the test step in our test loop. Swapping the order makes the starting state of each iteration better defined, allowing an easier extension of these steps in the future. Since now it's guaranteed that we exit the event loop with no pending flips, we can also get rid of the final flushing of events. We don't want the first initializing flip to affect the test loop other than setting an initial FB, so before starting the test loop wait for it to complete by calling wait_for_events() and leave the flip event counter at zero. Signed-off-by: Imre Deak --- tests/flip_test.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/tests/flip_test.c b/tests/flip_test.c index 790463c..6cfc0ec 100644 --- a/tests/flip_test.c +++ b/tests/flip_test.c @@ -469,8 +469,6 @@ static void wait_for_events(struct test_output *o) /* Returned the ellapsed time in us */ static unsigned event_loop(struct test_output *o, unsigned duration_sec) { - drmEventContext evctx; - int ret; struct timeval start, end; struct timeval tv_dur; @@ -481,9 +479,9 @@ static unsigned event_loop(struct test_output *o, unsigned duration_sec) while (1) { struct timeval now; + run_test_step(o); wait_for_events(o); check_all_state(o); - run_test_step(o); update_all_state(o); gettimeofday(&now, NULL); @@ -494,12 +492,6 @@ static unsigned event_loop(struct test_output *o, unsigned duration_sec) gettimeofday(&end, NULL); timersub(&end, &start, &tv_dur); - /* and drain the event queue */ - memset(&evctx, 0, sizeof evctx); - evctx.page_flip_handler = NULL; - ret = drmHandleEvent(drm_fd, &evctx); - assert(ret == 0); - return tv_dur.tv_sec * 1000 * 1000 + tv_dur.tv_usec; } @@ -553,8 +545,9 @@ static void flip_mode(struct test_output *o, int crtc, int duration) fprintf(stderr, "failed to page flip: %s\n", strerror(errno)); exit(4); } + wait_for_events(o); + o->current_fb_id = 1; - o->count = 1; /* for the uncounted tail */ ellapsed = event_loop(o, duration);