On Thu, 2016-10-27 at 16:00 +0000, Xiang, Haihao wrote:
> > -----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.

Indeed, if you do need to use dmabuf export in a non VA_SURFACE
context, we do have changes we need to make in the fugure for better
sharing of the export.

> 
> > 
> > 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.


Agreed.

Thanks,

Sean

> 
> > 
> > 
> > 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.kelle
> > y@intel.
> >     > > com>  wrote:
> >     > > > On Thu, Oct 6, 2016 at 1:20 AM, Julien Isorce<julien.isor
> > ce@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]
> > rg>
> >     > 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

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to