Cc: ddorwin@chromium.org scherkus@chromium.org Components: -Internals>Media Internals>GPU>Video Blink>WebGL Labels: -Type-Bug OS-Android OS-Linux OS-Mac Type-Feature Status: Available (was: Unconfirmed) Summary: Implement WEBGL_video_texture extension (was: File this bug to track WEBGL_video_texture extension implementation)
To clarify: we intend to implement this extension on all platforms, with Android, Mac and Windows being the first priorities. It will yield significant speedups for uses like 360 degree videos in WebVR.
This extension in particular will require a lot of platform-specific code, and likely some refactoring to share code between the media pipeline and WebGL implementation.
This is a tracking bug for the implementation.
Byungseon (above) just nicely provided this pointer to their implementation of the earlier OES_texture_external extension to WebGL:
https://github.com/xingri/chr53/commits/master
It's nice and simple, but isn't easily portable.
James is going to take a crack at updating LG's old OES_texture_external extension and integrating it as WEBGL_video_texture on Android only at first, just to have some scaffolding in place.
Hi, James,
I'd like to updated the status a little bit.
I've got the initial performance data for this extension using sharing resource method. I've tested vp9/8k/60fps 360 video with polyfill mode on kabylake and coffeelake desktop with HD630 and UHD630 GPU. It seems it could achieve around 34% fps improvment on both platform.
I want to brief introduce my sharing resource strategy. The main change is to transfer a WebGL texture to skia as the render target, so the YUV->RGB color convertion draw could draw to this external texture. Skia provided API to wrap an external texture as render target but has color format limit, I think in WEBGL_video_texture it is not an issue. Do you or kbr have any feedback for this strategy ?
And if you want more data, I'm happy to collect them and offer your a more detailed table in google doc.
Shaobo: your resource sharing strategy sounds good; agreed that for now the color format limitations are not a problem.
Assigning this bug to you for the moment as you're actively working on this extension on Windows. When you're ready to share some CLs and test cases please tell us.
Thanks for the work so far. Please do send a CL implementing your strategy. We can commit it and do some more performance testing to see where the next bottlenecks are.
Comment 1 by kbr@chromium.org
, Oct 20 2017Components: -Internals>Media Internals>GPU>Video Blink>WebGL
Labels: -Type-Bug OS-Android OS-Linux OS-Mac Type-Feature
Status: Available (was: Unconfirmed)
Summary: Implement WEBGL_video_texture extension (was: File this bug to track WEBGL_video_texture extension implementation)