mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 10:00:54 +00:00
0b06ae83bf
The change disables video overlay only for the slow present video, instead of disabling overlay in system wide. Disabling the overlay is decided by DCSurfaceVideo. And controlling overlay usage is done by AsyncImagePipelineManager. To deliver the decision, RenderTextureHostUsageInfo is used. RenderTextureHostUsageInfo is shared among, DCSurfaceVideo, RenderTextureHost, AsyncImagePipelineManager and WebRenderImageHost. Then if RenderTextureHostUsageInfo::DisableVideoOverlay() is called by DCSurfaceVideo, AsyncImagePipelineManager could know if overlay is disabled for TextureHost by RenderTextureHostUsageInfo::DisableVideoOverlay(). WebRenderImageHost retains the RenderTextureHostUsageInfo returned by RenderTextureHost and reuses the returned RenderTextureHostUsageInfo. And if the video overlay is disabled, the disabled overlay is retained for the lifetime of WebRenderImageHost. There is a case that RenderTextureHost::GetOrMergeUsageInfo() needs to merge 2 RenderTextureHostUsageInfos to one RenderTextureHostUsageInfo. It happens when one TextureHost is used by multiple WebRenderImageHosts. Differential Revision: https://phabricator.services.mozilla.com/D217355 |
||
---|---|---|
.. | ||
2d | ||
angle | ||
cairo | ||
config | ||
docs | ||
gl | ||
graphite2 | ||
harfbuzz | ||
ipc | ||
layers | ||
ots | ||
qcms | ||
skia | ||
src | ||
tests | ||
thebes | ||
vr | ||
webrender_bindings | ||
wgpu_bindings | ||
wr | ||
ycbcr | ||
metrics.yaml | ||
moz.build |