[Bug 796521] msdk: Playback not smooth by using ximagesink.

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Jul 19 21:43:15 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=796521

sreerenj <bsreerenj at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW

--- Comment #6 from sreerenj <bsreerenj at gmail.com> ---
(In reply to Nicolas Dufresne (ndufresne) from comment #4)
> (In reply to sreerenj from comment #2) 
> > Somehow, dmabuf backed NV12 to regular NV12 VA surface (not dmabuf)
> > operation is taking more time. Extremely slow and fps dropping more than 50%.
> 
> Did you check the backing memory type ? Sounds like the NV12 data is
> non-cpu-cachable and BGRx data is cpu-cachable. The performance impact on
> CPU processing will be huge if that is the case.

IIUC the video memory is USWC (uncacheable, speculative write-combining) and
regular memcpy() from uswc to system memory is always slow. But I don't know
why BGRx giving better performance. Might be related to the size and alignment
of BGRx data?..

This issue is reproducible with both gstreamer-vaapi and gst-msdk with any 720p
videos.

gstreamer-vaapi:

GST_VAAPI_ENABLE_DIRECT_RENDERING=1 gst-launch-1.0 -v  filesrc location=
Sally.ts ! tsdemux ! mpegvideoparse ! vaapimpeg2dec !  vaapipostproc ! 
video/x-raw, format=NV12 ! videoconvert ! xvimagesink

Here we Explicitly enable direct_rendering (internally use mapping of vasurface
with vaDeriveImage).

In normal use cases, GStreamer-vaapi won't use direct rendering.

gst-msdk:

gst-msdk always use direct mapping. So the issue is easily reproducible with
any pipeline, for eg:
gst-launch-1.0 -v  filesrc location= Sally.ts ! tsdemux ! mpegvideoparse !
msdkmpeg2dec ! msdkvpp !  video/x-raw, format=NV12 ! videoconvert ! xvimagesink

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list