Closed Bug 1766343 Opened 4 years ago Closed 3 years ago

Make NativeLayerCA::IsVideo able to detect video in more cases

Categories

(Core :: Graphics, enhancement, P2)

Unspecified
macOS
enhancement

Tracking

()

RESOLVED INVALID

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.

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.

Blocks: 1766879

The severity field is not set for this bug.
:bhood, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(bhood)
Severity: -- → S4
Type: defect → enhancement
Priority: -- → P4
Flags: needinfo?(bhood)
See Also: → 1850118

This has become more urgent now with motivating Bug 1850118.

Severity: S4 → S3
Priority: P4 → P2

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.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INVALID
See Also: 1850118 →
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: