On Tue, Oct 16, 2012 at 05:34:42PM +0300, Imre Deak wrote:
> Move the panning to a more logical place where the rest of the test
> steps are performed. This won't change things in practice, since the
> first thing drmHandleEvent does is call the flip_handler.
> 
> Signed-off-by: Imre Deak <imre.d...@intel.com>

Looking at this again I think the test is actually broken. It tries to
check whether fb_set_base correclty waits for any outstanding flips (well,
it can't really check that, but it should exercise the code at least). So
the right place to call this is actually right _after_ issueing the flip,
where the TEST_DPMS and TEST_MODESET cases are.
-Daniel

> ---
>  tests/flip_test.c |   29 ++++++++++++++---------------
>  1 file changed, 14 insertions(+), 15 deletions(-)
> 
> diff --git a/tests/flip_test.c b/tests/flip_test.c
> index 06768a4..0825cda 100644
> --- a/tests/flip_test.c
> +++ b/tests/flip_test.c
> @@ -218,6 +218,20 @@ static void page_flip_handler(int fd, unsigned int 
> frame, unsigned int sec,
>               }
>       }
>  
> +     /* pan before the flip completes */
> +     if (o->flags & TEST_PAN) {
> +             int x_ofs = o->count * 10 > o->mode.hdisplay ?
> +                         o->mode.hdisplay : o->count * 10;
> +
> +             if (drmModeSetCrtc(drm_fd, o->crtc, o->fb_ids[o->current_fb_id],
> +                                x_ofs, 0, &o->id, 1, &o->mode)) {
> +                     fprintf(stderr, "failed to pan (%dx%d@%dHz): %s\n",
> +                             o->fb_width, o->fb_height,
> +                             o->mode.vrefresh, strerror(errno));
> +                     exit(7);
> +             }
> +     }
> +
>       if (o->flags & TEST_WITH_DUMMY_LOAD)
>               emit_dummy_load(o);
>  
> @@ -481,21 +495,6 @@ static void flip_mode(struct test_output *o, int crtc, 
> int duration)
>                       break;
>               }
>  
> -             /* pan before the flip completes */
> -             if (o->flags & TEST_PAN) {
> -                     int x_ofs = o->count * 10 > o->mode.hdisplay ? 
> o->mode.hdisplay :
> -                             o->count * 10;
> -
> -                     if (drmModeSetCrtc(drm_fd, o->crtc, 
> o->fb_ids[o->current_fb_id],
> -                                        x_ofs, 0,
> -                                        &o->id, 1, &o->mode)) {
> -                             fprintf(stderr, "failed to pan (%dx%d@%dHz): 
> %s\n",
> -                                     o->fb_width, o->fb_height,
> -                                     o->mode.vrefresh, strerror(errno));
> -                             exit(7);
> -                     }
> -             }
> -
>               ret = drmHandleEvent(drm_fd, &evctx);
>               assert(ret == 0);
>       }
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to