From: Eric Nelson <eric.nelson@boundarydevices.com>
To: Christian Betz <christian.betz@gmail.com>
Cc: "meta-freescale@yoctoproject.org" <meta-freescale@yoctoproject.org>
Subject: Re: Chromium acceleration
Date: Wed, 19 Mar 2014 19:50:42 -0700 [thread overview]
Message-ID: <532A5782.4050809@boundarydevices.com> (raw)
In-Reply-To: <CAC9ffDFfXP-yEyK3aOsosjdqz4XtFgs1BGKsh9byD3uMFmkdiw@mail.gmail.com>
Thanks Christian,
On 03/19/2014 06:29 PM, Christian Betz wrote:
> The Vivante libraries can map the physical buffers produced by
> the VPU directly, so they could do format conversion on their
> way to the graphics stack if the Chromium bindings have access
> to that (the "single copy" I referred to above).
>
>
> in my experience "zero-copy" really means zero memcpy() (or similar
> system call, or really anything that involves the cpu to move around
> image data. /metadata /such as buffer pointers is generally allowed). in
> other words having the GPU do format conversion isn't considered a copy.
>
> here's a great article on this general technique implemented in
> webkit/gtk+:
> http://blogs.igalia.com/vjaquez/2013/07/26/composited-video-support-in-webkitgtk/
>
That's a nice article, and if Webkit (Blink) retains the same mapping,
video buffers from the VPU would end up hitting a RenderObject and
the only "copy" would be in rendering that to the Framebuffer.
Since we're on the fat end of the pipe here, that copy can be expensive
and might limit things to 1x1080P decode, but I'd be happy with that.
In the mfw_v4lsink case at least, this can be bypassed by having
the V4L2 buffer filled by the VPU and also displayed by the IPU
(such that copy), but aiming there would keep the video out of the
rest of the RenderLayer tree (I think).
This is what I was so awkwardly trying to suggest.
> moving beyond semantics... let me tell you what i know about this
> particular issue:
>
> there is source code in chromium to accomplish a similar goal.
> specifically there is a "generic" android driver, which works out of the
> box with i.mx6 because freescale implements the standard android video
> decode interface that allows VPU -> GPU texture uploading (don't quote
> me on this, i'm just reading the source code:
> https://chromium.googlesource.com/chromium/src/+/a361fce28da709ea872062f30fb4b65fcc37b695/content/common/gpu/media/android_video_decode_accelerator.cc)
>
> sadly there is no such standard interface on GNU/Linux. outside of
> android (i.e. chromeos), there are drivers for particular chipsets, like
> samsung exynos. here is the source for that:
> https://chromium.googlesource.com/chromium/src/+/a361fce28da709ea872062f30fb4b65fcc37b695/content/common/gpu/media/exynos_video_decode_accelerator.cc
>
> the group should also be aware of the current situation regarding these
> modules /only/ working when certain flags to enable "chromeos" are used
> (explained here:
> https://code.google.com/p/chromium/wiki/LinuxHWVideoDecode). in other
> words: this stuff doesn't work on your x86 with the chrome you download
> from google.
>
Again, thanks for the info.
Regards,
Eric
next prev parent reply other threads:[~2014-03-20 2:50 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-19 20:49 Chromium acceleration Eric Nelson
2014-03-19 21:00 ` Carlos Rafael Giani
2014-03-19 22:40 ` Eric Nelson
2014-03-20 1:29 ` Christian Betz
2014-03-20 2:50 ` Eric Nelson [this message]
2014-03-20 8:30 ` Carlos Rafael Giani
2014-03-20 12:22 ` Otavio Salvador
2014-03-20 14:07 ` Christian Betz
2014-03-20 15:02 ` Otavio Salvador
2014-03-20 14:29 ` Eric Nelson
2014-03-20 14:58 ` Otavio Salvador
2014-03-21 11:49 ` Diego
2014-03-21 14:17 ` Eric Nelson
2014-03-20 13:46 ` Christian Betz
2014-03-20 23:19 ` Carlos Rafael Giani
2014-03-21 12:21 ` Dmitriy B.
2014-04-01 19:22 ` Eric Nelson
2014-04-02 10:21 ` Carlos Rafael Giani
2014-04-02 10:28 ` Gary Thomas
2014-04-02 10:33 ` Carlos Rafael Giani
[not found] ` <533BE4A3.7040301@pr.hu>
2014-04-02 10:23 ` Carlos Rafael Giani
2014-04-02 11:12 ` Boszormenyi Zoltan
2014-04-02 12:02 ` Christian Betz
2014-04-02 12:28 ` Carlos Rafael Giani
2014-04-04 9:28 ` Boszormenyi Zoltan
2014-04-02 10:29 ` Boszormenyi Zoltan
2014-04-02 14:16 ` Eric Nelson
2014-03-20 12:47 ` Lauren Post
2014-03-20 14:25 ` Eric Nelson
2014-03-20 14:27 ` Lauren Post
-- strict thread matches above, loose matches on Subject: below --
2014-03-25 9:32 zboszor
2014-03-25 9:35 ` Eric Bénard
2014-03-25 9:46 ` Marco Trillo
2014-03-25 12:58 ` Boszormenyi Zoltan
2014-11-27 10:14 Becue Paul
2014-12-01 14:34 ` Daiane Angolini
2014-12-01 15:07 ` Otavio Salvador
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=532A5782.4050809@boundarydevices.com \
--to=eric.nelson@boundarydevices.com \
--cc=christian.betz@gmail.com \
--cc=meta-freescale@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.