Make NativeLayerCA::IsVideo able to detect video in more cases
Categories
(Core :: Graphics, enhancement, P2)
Tracking
()
People
(Reporter: bradwerth, Assigned: bradwerth)
References
(Blocks 1 open bug)
Details
Attachments
(1 external file)
NativeLayerCA::IsVideo only knows the layer has been given video if it has an mTextureHost. That only happens if the video has been delivered to WebRender as an "external" image. Some video decoders deliver video frames in ways that don't trigger this path in WebRender. But by the time the layer displays the frame, the frame surfaces are more or less the same.
Instead of trying to make each decoder hit the "external" frame path in WebRender, let's make NativeLayerCA::IsVideo smarter at detecting when its surfaces are video frames. This will ensure we hit all of our video layer optimizations, including HDR and low-power mode.
| Assignee | ||
Comment 1•4 years ago
|
||
| Assignee | ||
Comment 2•4 years ago
|
||
Specifically, fixing this issue will allow the pref gfx.core-animation.specialize-video.log to give us logging of video surfaces even when the video doesn't qualify for the specialized video layer, and that will be very useful in debugging problems reported to us by users.
Comment 3•4 years ago
|
||
The severity field is not set for this bug.
:bhood, could you have a look please?
For more information, please visit auto_nag documentation.
| Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
| Assignee | ||
Comment 4•3 years ago
|
||
This has become more urgent now with motivating Bug 1850118.
| Assignee | ||
Comment 5•3 years ago
|
||
This is really, really hard to do without cooperation from WebRender. When WebRender decides that a texture is not "external", or can't be kept that way, it composites those pixels down onto the same tiles it uses for all other rendering. So by the time the texture arrives at NativeLayerCA it has lost all of its source information and is possibly spread out across several tiles. This Bug is unsolvable in NativeLayerCA because it is completely dependent on WebRender internals.
I think the right approach is to close this Bug as invalid.
Description
•