[Libva] [PATCH Libva-intel-driver] Add one option of bypassing rendering function to test decoding

Yuan, Shengquan shengquan.yuan at intel.com
Thu May 8 01:14:54 PDT 2014


Yes, va_x11.c has the code. It looks I just checked a wrong file.

I think its application's responsibility to call vaSyncSurface to make sure the decoding on the surface is completed before it calls vaPutSurface for display.

Thanks
-Austin


-----Original Message-----
From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of Zhao Yakui
Sent: Thursday, May 08, 2014 4:10 PM
To: Yuan, Shengquan
Cc: libva at lists.freedesktop.org
Subject: Re: [Libva] [PATCH Libva-intel-driver] Add one option of bypassing rendering function to test decoding

On Thu, 2014-05-08 at 01:09 -0600, Yuan, Shengquan wrote:
> export LIBVA_FOOL_POSTP=1
> 
> Unfortunately, it is not handled in x11/va_x11.c: vaPutSurface
> 
> We may need similar codes as android/va_androi.c:vaPutSurface for 
> va_x11.c:vaPutSurface
> 
>     if (fool_postp)
>         return VA_STATUS_SUCCESS;

Thanks for your suggestion. 
Now the "LIBVA_FOOL_POSTP=1" can be used for bypassing vaPutSurface in x11/va_x11.c and android/va_android.c. 

Of course IMO it will make sense that the vaSyncSurface is also called instead of real dummy vaPutSurface when the LIBVA_FOOL_POSTP is set.
(This is to assure that the previous decoding is finished).

Thanks.
    Yakui

> 
> Thanks
> -Austin
> 
> 
> -----Original Message-----
> From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of 
> Zhao Yakui
> Sent: Tuesday, May 06, 2014 12:50 PM
> To: Xu, Guangxin
> Cc: Zhao at freedesktop.org; libva at lists.freedesktop.org
> Subject: Re: [Libva] [PATCH Libva-intel-driver] Add one option of 
> bypassing rendering function to test decoding
> 
> On Mon, 2014-05-05 at 22:44 -0600, Xu, Guangxin wrote:
> > Hi Yakui
> > This will introduce side effect to normal case. It will search string in environment list. No matter INTEL_DECODE_BENCH defined or not.
> 
> Maybe the getenv("INTEL_DECODE_BENCH") will cost some time as it searches env list. But compared with the time of rendering/decoding operation, the cost time can almost be ignored. 
> 
> > 
> > 
> > -----Original Message-----
> > From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf 
> > Of Zhao Yakui
> > Sent: Tuesday, May 6, 2014 12:36 PM
> > To: Xiang, Haihao
> > Cc: Zhao at freedesktop.org; libva at lists.freedesktop.org
> > Subject: Re: [Libva] [PATCH Libva-intel-driver] Add one option of 
> > bypassing rendering function to test decoding
> > 
> > On Mon, 2014-05-05 at 22:19 -0600, Xiang, Haihao wrote:
> > > It would be better not to call vaPutSurface() in your benchmark if 
> > > you want to ignore rendering.
> > 
> > Thanks for your review.
> > 
> > It is also one solution. Currently the bench test is based on the mplayer-vaapi. In such case it is not easy to bypass the vaPutSurface.
> > At the same time it also needs to add the function of waiting for the completion of decoding.
> > 
> > > 
> > > Thanks
> > > Haihao
> > > 
> > > 
> > > > From: Zhao Yakui <yakui.zhao at intel.com>
> > > > 
> > > > Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
> > > > ---
> > > >  src/i965_drv_video.h  | 3 +++
> > > >  src/i965_output_dri.c | 4 ++++
> > > >  2 files changed, 7 insertions(+)
> > > > 
> > > > diff --git a/src/i965_drv_video.h b/src/i965_drv_video.h index
> > > > 0e32f7d..70755d2 100644
> > > > --- a/src/i965_drv_video.h
> > > > +++ b/src/i965_drv_video.h
> > > > @@ -432,6 +432,9 @@ extern VAStatus i965_CreateSurfaces(VADriverContextP ctx,
> > > >                      int format,
> > > >                      int num_surfaces,
> > > >                      VASurfaceID *surfaces);
> > > > +extern VAStatus i965_SyncSurface(VADriverContextP ctx,
> > > > +                                 VASurfaceID render_target);
> > > > +
> > > >  
> > > >  #define I965_SURFACE_MEM_NATIVE             0
> > > >  #define I965_SURFACE_MEM_GEM_FLINK          1
> > > > diff --git a/src/i965_output_dri.c b/src/i965_output_dri.c index
> > > > 717ee9a..645a7d1 100644
> > > > --- a/src/i965_output_dri.c
> > > > +++ b/src/i965_output_dri.c
> > > > @@ -140,6 +140,10 @@ i965_put_surface_dri(
> > > >      if (!obj_surface || !obj_surface->bo)
> > > >          return VA_STATUS_SUCCESS;
> > > >  
> > > > +    if (getenv("INTEL_DECODE_BENCH")) {
> > > > +        i965_SyncSurface(ctx, surface);
> > > > +        return VA_STATUS_SUCCESS;
> > > > +    }
> > > >      _i965LockMutex(&i965->render_mutex);
> > > >  
> > > >      dri_drawable = dri_vtable->get_drawable(ctx, 
> > > > (Drawable)draw);
> > > 
> > > 
> > 
> > 
> > _______________________________________________
> > Libva mailing list
> > Libva at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/libva
> 
> 
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva


_______________________________________________
Libva mailing list
Libva at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libva


More information about the Libva mailing list