Hey all,

This is an I2E for the WebGPU / WebCodecs integration point that is not
part of the WebGPU v1 shipment as the WebGPU W3C group decided to remove it
from the V1 milestone. However it is a critical integration point for the
video applications looking to use WebGPU as part of their video processing
pipeline. So we would like to start a second original trial, specifically
for this feature, that developers can use to keep prototyping WebGPU video
processing after WebGPU v1 is shipped. Because of the weird nature of this
trial, I didn't know how to fill all the fields in ChromeStatus, so let me
know if more details are needed!

Contact emailscwal...@google.com, kain...@google.com, bajo...@google.com

Explainerhttps://gpuweb.github.io/gpuweb/explainer/#image-input
https://github.com/gpuweb/gpuweb/issues/1380

Specificationhttps://gpuweb.github.io/gpuweb/#gpuexternaltexture

Design docs
https://github.com/gpuweb/gpuweb/issues/1380

Summary

WebGPU exposes an API to create opaque "external texture" objects from
HTMLVideoElement. These object can be used to sample the video frames
efficiently, potentially in a 0-copy way directly from the source YUV data.
However the WebGPU specification for the first version of WebGPU does not
allow creating GPUExternalTextures from WebCodecs VideoFrame objects. This
capability is important for advanced video processing applications that are
already using WebCodecs and would like to integrate WebGPU in the video
processing pipeline. This features adds support for using a VideoFrame as
the source for a GPUExternalTexture.


Blink componentBlink>WebGPU
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU>

TAG review

TAG review statusPending

Risks


Interoperability and Compatibility



*Gecko*: No signal WebCodecs is listed as "worth prototyping" which likely
means this intergration is the same.

*WebKit*: No signal WebCodecs is prototyped in Safari TP, so this
integration is likely interesting.

*Web developers*: Positive

*Other signals*:

Ergonomics

No ergonomic risk. This API would be used at the intersection of WebGPU and
WebCodec. It is designed to keep performance as high as possible by
allowing o-copy sampling of YUV frame data.


Security

The lifetime management of VideoFrame was taken into account of this
feature. No other security considerations.


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?



Goals for experimentation



Reason this experiment is being extended



Ongoing technical constraints



Debuggability

No support.


Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?Yes

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?Yes

DevTrial instructionshttps://github.com/gpuweb/gpuweb/issues/1380

Flag name

Requires code in //chrome?False

Estimated milestones

No milestones specified


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5078348864159744

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGdfWNPH6Jk-g%2B3Nkx0F_rmn05kWcWU%3Dd3cOJNpjfZ3nAWjXcQ%40mail.gmail.com.

Reply via email to