| Summary: | ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Bri Harris <bharris9> |
| Component: | Compositing | Assignee: | Jer Noble <jer.noble> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | ap, jenner, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer, zalan |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Other | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
|
Description
Bri Harris
2023-06-12 11:38:07 PDT
I confirmed that this happens when the answer to `canAccelerateVideoRendering()` changes without `RenderLayerBacking::contentChanged(VideoChanged)` being called. Here's some logging showing the issue: 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:1 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ad8d0 supportsAcceleratedRendering 1 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ad8d0 supportsAcceleratedRendering 1 18:22:34.834 93261 HTMLMediaElement::prepareForLoad(B188CAA22C26631F) gesture = false 18:22:34.834 93261 HTMLMediaElement::createMediaPlayer(B188CAA22C26631F) 18:22:34.834 93261 VideoLayerManagerObjC::didDestroyVideoLayer(B188CAA22C26631F) 18:22:34.834 93261 VideoLayerManagerObjC::setTextTrackRepresentationLayer(B188CAA22C26631F) 18:22:34.834 93261 HTMLMediaElement::setPlaybackRate(B188CAA22C26631F) 1 18:22:34.834 93261 MediaElementSession::clientWillBeginAutoplaying(B188CAA22C26631F) state = Autoplaying 18:22:34.834 93261 HTMLMediaElement::setShouldDelayLoadEvent(B188CAA22C26631F) true 18:22:34.834 93261 RenderLayerCompositor 0x1103584e0 [LocalFrameView 0x1120000b0 Frame 0x1100ac220 (main frame) file:///Volumes/Data/Development/system/webkit/OpenSource/LayoutTests/platform/mac/media/unmute-after-loading.html] updateCompositingLayers after layout contentLayersCount 6 18:22:34.834 93261 RenderLayerCompositor 0x1103584e0 [LocalFrameView 0x1120000b0 Frame 0x1100ac220 (main frame) file:///Volumes/Data/Development/system/webkit/OpenSource/LayoutTests/platform/mac/media/unmute-after-loading.html] updateCompositingLayers after layout contentLayersCount 6 18:22:34.834 93261 RenderLayerCompositor::computeCompositingRequirements when no change - layer 0x112001b70 video will composite: 1 because is already composited 1 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::computeCompositingRequirements - layer 0x112001b70 video will composite later: 0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 willBeComposited (1) != needsToBeComposited(layer, queryData) (0 for layer 0x112001b70 So HTMLMediaElement::createMediaPlayer creates a new MediaPlayer object, which does not support accelerated rendering, but RenderLayerBacking::contentChanged(VideoChanged) was never called. *** Bug 258095 has been marked as a duplicate of this bug. *** *** Bug 258097 has been marked as a duplicate of this bug. *** Marked bugs 258095 and 258097 as duplicates of this bug because the tests mentioned in those are hitting the same assertion, and appear to have a similar regression point. The tests that are hitting the same assertion at: media/track/video-track-add-remove.html media/track/video-track-alternate-groups.html media/modern-media-controls/pip-support/pip-support-enabled.html Pull request: https://github.com/WebKit/WebKit/pull/15435 Committed 265656@main (05ca73cb5029): <https://commits.webkit.org/265656@main> Reviewed commits have been landed. Closing PR #15435 and removing active labels. |