>-----Original Message-----
>From: Julien Isorce [mailto:[email protected]]
>Sent: Wednesday, October 26, 2016 4:43 PM
>To: Xiang, Haihao <[email protected]>
>Cc: Zhao, Yakui <[email protected]>; Kelley, Sean V
><[email protected]>; [email protected]
>Subject: Re: [Libva] problem when tiling is disabled on decoded surfaces
>
>Hi,
>
>
>Thx for the detailed.
>
>
>If I understand correctly, the intel HW video decoder can only output a tiled
>layout. But if I export the surface as a dmabuf and I use mmap on it, I will 
>still
>be able to access pixels using width/pitch like if it was linear.

You do not need to export the surface as a dmabuf if you only want to access 
pixels in your program.
the purpose of exporting a surface as a dmabuf is for buffer sharing.

>
>If I need to share it with a non-intel gpu I would need VPP since this unit can
>output a linear layout (I can configure it by clearing the flag
>VA_SURFACE_EXTBUF_DESC_ENABLE_TILING when calling vaCreateSurfaces)

Yes.

>
>
>Is it correct ?
>
>
>Cheers
>
>Julien
>
>
>
>On 8 October 2016 at 04:09, Xiang, Haihao <[email protected]
><mailto:[email protected]> > wrote:
>
>
>
>       Hi Julien,
>
>       Please do not set obj_surface->user_disable_tiling to true unless you
>       know the usage, e.g. your applicate allocates a VA surface via libva
>       and shares this surface between libva and camera, some cameras only
>       support linear memory.
>
>       In your case, it is the right behavior if you saw garbage because all
>       surfaces are linear however HW requires a tiled surface for decoding.
>
>       Thanks
>       Haihao
>
>
>
>       > On 10/08/2016 02:13 AM, Sean V Kelley wrote:
>       > > On Fri, Oct 7, 2016 at 11:00 AM, Sean V Kelley<sean.v.kelley@intel.
>       > > com>  wrote:
>       > > > On Thu, Oct 6, 2016 at 1:20 AM, Julien Isorce<julien.isorce@gmail
>       > > > .com>  wrote:
>       > > > > Hi,
>       > > > >
>       > > > > In intel vaapi driver I tried disabling tiling with:
>       > > > >
>       > > > > ---   a/src/i965_drv_video.c
>       > > > > +++ b/src/i965_drv_video.c
>       > > > > @@ -1534,7 +1534,7 @@ i965_CreateSurfaces2(
>       > > > >           obj_surface->orig_height = height;
>       > > > > -        obj_surface->user_disable_tiling = false;
>       > > > > +       obj_surface->user_disable_tiling = true;
>       > > > >           obj_surface->user_h_stride_set = false;
>       > > > >
>       > > > > But then gst-launch-1.0 filesrc
>       > > > > location=~/Downloads/simpson.mp4 ! qtdemux !
>       > > > > vaapih264dec ! xvimagesink shows garbage, like if the memory
>       > > > > was still
>       > > > > tiled.
>       > > > >
>       > > >
>       > > > We implemented disable tiling for a very specific purpose.  We
>       > > > were
>       > > > sharing surfaces decoded via Imagination Tech driver on a
>       > > > Baytrail,
>       > > > and wrapped that for the X11 backend rendering.  I was using
>two
>       > > > drivers (IMG and GEN).
>       > > > At the time, the driver assumed that all surfaces were
>       > > > tiled.  Since
>       > > > IMG was not tiled, we needed a way to pass through.  I'll look at
>       > > > this
>       > > > more closely.
>       > > >
>       > > > But for hardware GEN decoding we assume the surface to be
>       > > > tiled.  The
>       > > > intent was never to allow disabling tilint for purposes of actual
>       > > > h264
>       > > > decode.
>       > >
>       > > The GEN hardware really only uses the tiling format for
>       > > decoding/encoding.  The flag
>       > > is historical and used with other drivers (remember VA-API can be
>       > > used
>       > > with IMG).  In my
>       > > case I triggered it by our having added a new VA memory type for
>       > > when
>       > > I needed to share surfaces.
>       > >
>       > > But again, we don't decode non-tiled.  We simply give you the
>       > > flexibility to create those surfaces non-tiled
>       > > for historical and conversion reasons as the one above I gave you.
>       >
>       > Hi, Julien
>       >
>       >      What Sean said is correct. When the surface is used for the
>       > decoding, it should be tiled, which is the hardware requirement. If
>       > it
>       > is non-tiled, the hardware can't work as expected.
>       >      The non-tiled surface can be used for the other purpose. For
>       > example: buffer sharing (Some other componenets/driver wants to
>share
>       > the NV12 buffer with libva driver. And it requires that it is non-
>       > tiled.
>       > The default buffer for NV12 format is tiled. So one option is added
>       > so
>       > that the non-tiled NV12 buffer is created).
>       >
>       >      BTW: the tiling or non-tiling surface is transparent to the
>       > upper
>       > middleware. Although one tiling buffer is created internally, the
>       > upper
>       > middleware can map it and then access it based on width/pitch.
>       >
>       >      Not sure whether it helps to clarify your concerns.
>       >
>       > Thanks
>       >     Yakui
>       >
>       > >
>       > > Sean
>       > >
>       > >
>       > > >
>       > > > I'll have to refresh my memory a bit.  I'll let Haihao chime in.
>       > > >
>       > > > Sean
>       > > >
>       > > >
>       > > > > I tried to debug it and but all calls to dri_bo_get_tiling
>       > > > > returns
>       > > > > I915_TILING_NONE as expected.
>       > > > >
>       > > > > Also see vainfo output below.
>       > > > >
>       > > > > Thx
>       > > > > Julien
>       > > > >
>       > > > > libva info: VA-API version 0.39.4
>       > > > > libva info: va_getDriverName() returns 0
>       > > > > libva info: Trying to open
>       > > > > /home/julien/gst/master/prefix/lib/dri/i965_drv_video.so
>       > > > > libva info: Found init function __vaDriverInit_0_39
>       > > > > libva info: va_openDriver() returns 0
>       > > > > vainfo: VA-API version: 0.39 (libva 1.7.3.pre1)
>       > > > > vainfo: Driver version: Intel i965 driver for Intel(R) Haswell
>       > > > > Mobile -
>       > > > > 1.7.3.pre1 (1.7.2-115-gfa3d1c3)
>       > > > > vainfo: Supported profile and entrypoints
>       > > > >        VAProfileMPEG2Simple            :    VAEntrypointVLD
>       > > > >        VAProfileMPEG2Simple            :    VAEntrypointEncSlic
>       > > > > e
>       > > > >        VAProfileMPEG2Main              :    VAEntrypointVLD
>       > > > >        VAProfileMPEG2Main              :    VAEntrypointEncSlic
>       > > > > e
>       > > > >        VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
>       > > > >        VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlic
>       > > > > e
>       > > > >        VAProfileH264Main               :    VAEntrypointVLD
>       > > > >        VAProfileH264Main               :    VAEntrypointEncSlic
>       > > > > e
>       > > > >        VAProfileH264High               :    VAEntrypointVLD
>       > > > >        VAProfileH264High               :    VAEntrypointEncSlic
>       > > > > e
>       > > > >        VAProfileH264MultiviewHigh      :    VAEntrypointVLD
>       > > > >        VAProfileH264MultiviewHigh      :    VAEntrypointEncSlic
>       > > > > e
>       > > > >        VAProfileH264StereoHigh         :    VAEntrypointVLD
>       > > > >        VAProfileH264StereoHigh         :    VAEntrypointEncSlic
>       > > > > e
>       > > > >        VAProfileVC1Simple              :    VAEntrypointVLD
>       > > > >        VAProfileVC1Main                :    VAEntrypointVLD
>       > > > >        VAProfileVC1Advanced            :    VAEntrypointVLD
>       > > > >        VAProfileNone                   :    VAEntrypointVideoPr
>       > > > > oc
>       > > > >        VAProfileJPEGBaseline           :    VAEntrypointVLD
>       > > > >        VAProfileVP9Profile0            :    VAEntrypointVLD
>       > > > >
>       > > > > _______________________________________________
>       > > > > Libva mailing list
>       > > > > [email protected]
><mailto:[email protected]>
>       > > > > https://lists.freedesktop.org/mailman/listinfo/libva
><https://lists.freedesktop.org/mailman/listinfo/libva>
>       > > > >
>       > > >
>       > > >
>       > > >
>       > > > --
>       > > > Sean V. Kelley<[email protected]
><mailto:[email protected]> >
>       > > > Open Source Technology Center / SSG
>       > > > Intel Corp.
>       > >
>       > >
>       > >
>       >
>       > _______________________________________________
>       > Libva mailing list
>       > [email protected] <mailto:[email protected]>
>       > https://lists.freedesktop.org/mailman/listinfo/libva
><https://lists.freedesktop.org/mailman/listinfo/libva>
>       _______________________________________________
>       Libva mailing list
>       [email protected] <mailto:[email protected]>
>       https://lists.freedesktop.org/mailman/listinfo/libva
><https://lists.freedesktop.org/mailman/listinfo/libva>
>
>

_______________________________________________
Libva mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to