[ImageBitmap](https://searchfox.org/mozilla-central/source/dom/canvas/ImageBitmap.cpp) implementation always handles local data and the data is handled by cpu. Then when original data exists in GPU, transfers to ImageBitmap always cause readback. If we want to avoid the readback, we need to add fast path like Bug 1891675, Bug 1889275 and Bug 1887818. And ImageBitmap is used by WebCodec. If WebCodec with ImageBitmap needs good performance, it also needs fast path for WebCodec. It might be easier to support a fast path for ImageBitmap with video like [ImageBitmap::CreateInternal()](https://searchfox.org/mozilla-central/rev/94c62970ba2f9c40efd5a4f83a538595425820d9/dom/canvas/ImageBitmap.cpp#1196) at first.
Bug 1788206 Comment 38 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
[ImageBitmap](https://searchfox.org/mozilla-central/source/dom/canvas/ImageBitmap.cpp) implementation always handles local data and the data is handled by cpu. Then when original data exists in GPU, transfers to ImageBitmap always cause readback. If we want to avoid the readback, we need to add fast path like Bug 1891675, Bug 1889275 and Bug 1887818. And ImageBitmap is used by WebCodec. If WebCodec with ImageBitmap needs good performance, it also needs fast path for WebCodec. To add fast path for remote Canvas rendering, RemoteTextureMap also needs to be modified. Since RemoteTextureMap works as a queue. It does not have a capability to use individual remote texture out of the queue. Then it might be easier to support a fast path for ImageBitmap with video like [ImageBitmap::CreateInternal()](https://searchfox.org/mozilla-central/rev/94c62970ba2f9c40efd5a4f83a538595425820d9/dom/canvas/ImageBitmap.cpp#1196) at first.