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. 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) Is it correct ? Cheers Julien On 8 October 2016 at 04:09, Xiang, Haihao <[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] > > > > > https://lists.freedesktop.org/mailman/listinfo/libva > > > > > > > > > > > > > > > > > > > > > -- > > > > Sean V. Kelley<[email protected]> > > > > Open Source Technology Center / SSG > > > > Intel Corp. > > > > > > > > > > > > > _______________________________________________ > > Libva mailing list > > [email protected] > > https://lists.freedesktop.org/mailman/listinfo/libva > _______________________________________________ > Libva mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/libva >
_______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
