On 10/08/2016 02:13 AM, Sean V Kelley wrote:
On Fri, Oct 7, 2016 at 11:00 AM, Sean V Kelley<[email protected]>  wrote:
On Thu, Oct 6, 2016 at 1:20 AM, Julien Isorce<[email protected]>  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            :    VAEntrypointEncSlice
       VAProfileMPEG2Main              :    VAEntrypointVLD
       VAProfileMPEG2Main              :    VAEntrypointEncSlice
       VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
       VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlice
       VAProfileH264Main               :    VAEntrypointVLD
       VAProfileH264Main               :    VAEntrypointEncSlice
       VAProfileH264High               :    VAEntrypointVLD
       VAProfileH264High               :    VAEntrypointEncSlice
       VAProfileH264MultiviewHigh      :    VAEntrypointVLD
       VAProfileH264MultiviewHigh      :    VAEntrypointEncSlice
       VAProfileH264StereoHigh         :    VAEntrypointVLD
       VAProfileH264StereoHigh         :    VAEntrypointEncSlice
       VAProfileVC1Simple              :    VAEntrypointVLD
       VAProfileVC1Main                :    VAEntrypointVLD
       VAProfileVC1Advanced            :    VAEntrypointVLD
       VAProfileNone                   :    VAEntrypointVideoProc
       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

Reply via email to