Intermittent test_streams_capture_origin.html | Assertion count 3 is greater than expected (ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file gfx/layers/composite/TextureHost.cpp, line 696)

RESOLVED FIXED in Firefox 47

Status

()

defect
RESOLVED FIXED
4 years ago
3 years ago

People

(Reporter: KWierso, Assigned: nical)

Tracking

({assertion, intermittent-failure})

45 Branch
mozilla48
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox47 fixed, firefox48 fixed)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 attachment)

https://treeherder.mozilla.org/logviewer.html#?job_id=22404744&repo=mozilla-inbound


 09:38:37     INFO -  46268 INFO TEST-START | dom/media/test/test_streams_capture_origin.html
 09:38:37     INFO -  [2208] ###!!! ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file /builds/slave/m-in-m64-d-0000000000000000000/build/src/gfx/layers/composite/TextureHost.cpp, line 696
 09:39:11     INFO -  #01: mozilla::layers::BufferTextureHost::MaybeUpload(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits>*) [gfx/layers/composite/TextureHost.cpp:602]
 09:39:11     INFO -  #02: mozilla::layers::BufferTextureHost::Lock() [gfx/layers/composite/TextureHost.cpp:482]
 09:39:11     INFO -  #03: mozilla::layers::ImageHost::Lock() [gfx/layers/composite/ImageHost.cpp:552]
 09:39:11     INFO -  #04: mozilla::layers::ImageHost::Composite(mozilla::layers::LayerComposite*, mozilla::layers::EffectChain&, float, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits> const&, mozilla::gfx::Filter const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const*) [gfx/layers/composite/ImageHost.cpp:342]
 09:39:11     INFO -  #05: mozilla::layers::ImageLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&)::$_2::operator()(mozilla::layers::EffectChain&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&) const [gfx/layers/composite/ImageLayerComposite.cpp:105]
 09:39:11     INFO -  #06: mozilla::layers::ImageLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/LayerManagerComposite.cpp:1495]
 09:39:11     INFO -  #07: void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:591]
 09:39:11     INFO -  #08: void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:752]
 09:39:11     INFO -  #09: void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:591]
 09:39:11     INFO -  #10: void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:752]
 09:39:11     INFO -  #11: mozilla::layers::LayerManagerComposite::Render(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/LayerManagerComposite.cpp:939]
 09:39:11     INFO -  #12: mozilla::layers::LayerManagerComposite::UpdateAndRender() [gfx/layers/composite/LayerManagerComposite.cpp:496]
 09:39:11     INFO -  #13: mozilla::layers::LayerManagerComposite::EndTransaction(mozilla::TimeStamp const&, mozilla::layers::LayerManager::EndTransactionFlags) [gfx/layers/composite/LayerManagerComposite.cpp:414]
 09:39:11     INFO -  #14: mozilla::layers::CompositorParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) [gfx/layers/ipc/CompositorParent.cpp:1280]
 09:39:11     INFO -  #15: mozilla::layers::CompositorVsyncScheduler::Composite(mozilla::TimeStamp) [gfx/layers/ipc/CompositorParent.cpp:532]
 09:39:11     INFO -  ++DOMWINDOW == 52 (0x128d08400) [pid = 2208] [serial = 622] [outer = 0x12dd9b000]
 09:39:11     INFO -  #16: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) [ipc/chromium/src/base/message_loop.cc:365]
 09:39:11     INFO -  #17: MessageLoop::DoWork() [ipc/chromium/src/base/message_loop.cc:459]
 09:39:11     INFO -  #18: base::MessagePumpDefault::Run(base::MessagePump::Delegate*) [ipc/chromium/src/base/message_pump_default.cc:34]
 09:39:11     INFO -  #19: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:520]
 09:39:11     INFO -  #20: base::Thread::ThreadMain() [ipc/chromium/src/base/thread.cc:175]
 09:39:11     INFO -  #21: ThreadFunc [ipc/chromium/src/base/platform_thread_posix.cc:36]
 09:39:11     INFO -  #22: libsystem_pthread.dylib + 0x405a
 09:39:11     INFO -  #23: libsystem_pthread.dylib + 0x3fd7
 09:39:11     INFO -  ++DOCSHELL 0x124713800 == 19 [pid = 2208] [id = 155]
 09:39:11     INFO -  ++DOMWINDOW == 53 (0x129ff9000) [pid = 2208] [serial = 623] [outer = 0x0]
 09:39:11     INFO -  ++DOMWINDOW == 54 (0x12c470800) [pid = 2208] [serial = 624] [outer = 0x129ff9000]
 09:39:11     INFO -  [2208] ###!!! ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file /builds/slave/m-in-m64-d-0000000000000000000/build/src/gfx/layers/composite/TextureHost.cpp, line 696
 09:39:11     INFO -  #01: mozilla::layers::BufferTextureHost::MaybeUpload(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits>*) [gfx/layers/composite/TextureHost.cpp:602]
 09:39:11     INFO -  #02: mozilla::layers::BufferTextureHost::Lock() [gfx/layers/composite/TextureHost.cpp:482]
 09:39:11     INFO -  #03: mozilla::layers::ImageHost::Lock() [gfx/layers/composite/ImageHost.cpp:552]
 09:39:11     INFO -  #04: mozilla::layers::ImageHost::Composite(mozilla::layers::LayerComposite*, mozilla::layers::EffectChain&, float, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits> const&, mozilla::gfx::Filter const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const*) [gfx/layers/composite/ImageHost.cpp:342]
 09:39:11     INFO -  #05: mozilla::layers::ImageLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&)::$_2::operator()(mozilla::layers::EffectChain&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&) const [gfx/layers/composite/ImageLayerComposite.cpp:105]
 09:39:11     INFO -  #06: mozilla::layers::ImageLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/LayerManagerComposite.cpp:1495]
 09:39:11     INFO -  #07: void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:591]
 09:39:11     INFO -  #08: void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:752]
 09:39:11     INFO -  #09: void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:591]
 09:39:11     INFO -  #10: void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:752]
 09:39:11     INFO -  #11: mozilla::layers::LayerManagerComposite::Render(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/LayerManagerComposite.cpp:939]
 09:39:11     INFO -  #12: mozilla::layers::LayerManagerComposite::UpdateAndRender() [gfx/layers/composite/LayerManagerComposite.cpp:496]
 09:39:11     INFO -  #13: mozilla::layers::LayerManagerComposite::EndTransaction(mozilla::TimeStamp const&, mozilla::layers::LayerManager::EndTransactionFlags) [gfx/layers/composite/LayerManagerComposite.cpp:414]
 09:39:11     INFO -  #14: mozilla::layers::CompositorParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) [gfx/layers/ipc/CompositorParent.cpp:1280]
 09:39:11     INFO -  #15: mozilla::layers::CompositorVsyncScheduler::Composite(mozilla::TimeStamp) [gfx/layers/ipc/CompositorParent.cpp:532]
 09:39:11     INFO -  #16: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) [ipc/chromium/src/base/message_loop.cc:365]
 09:39:11     INFO -  #17: MessageLoop::DoWork() [ipc/chromium/src/base/message_loop.cc:459]
 09:39:11     INFO -  #18: base::MessagePumpDefault::Run(base::MessagePump::Delegate*) [ipc/chromium/src/base/message_pump_default.cc:34]
 09:39:11     INFO -  #19: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:520]
 09:39:11     INFO -  #20: base::Thread::ThreadMain() [ipc/chromium/src/base/thread.cc:175]
 09:39:11     INFO -  #21: ThreadFunc [ipc/chromium/src/base/platform_thread_posix.cc:36]
 09:39:11     INFO -  #22: libsystem_pthread.dylib + 0x405a
 09:39:11     INFO -  #23: libsystem_pthread.dylib + 0x3fd7
 09:39:11     INFO -  [2208] ###!!! ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file /builds/slave/m-in-m64-d-0000000000000000000/build/src/gfx/layers/composite/TextureHost.cpp, line 696
 09:39:11     INFO -  #01: mozilla::layers::BufferTextureHost::MaybeUpload(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits>*) [gfx/layers/composite/TextureHost.cpp:602]
 09:39:11     INFO -  #02: mozilla::layers::BufferTextureHost::Lock() [gfx/layers/composite/TextureHost.cpp:482]
 09:39:11     INFO -  #03: mozilla::layers::ImageHost::Lock() [gfx/layers/composite/ImageHost.cpp:552]
 09:39:11     INFO -  #04: mozilla::layers::ImageHost::Composite(mozilla::layers::LayerComposite*, mozilla::layers::EffectChain&, float, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits> const&, mozilla::gfx::Filter const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const*) [gfx/layers/composite/ImageHost.cpp:342]
 09:39:11     INFO -  #05: mozilla::layers::ImageLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&)::$_2::operator()(mozilla::layers::EffectChain&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&) const [gfx/layers/composite/ImageLayerComposite.cpp:105]
 09:39:11     INFO -  #06: mozilla::layers::ImageLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/LayerManagerComposite.cpp:1495]
 09:39:11     INFO -  #07: void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:591]
 09:39:11     INFO -  #08: void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:752]
 09:39:11     INFO -  #09: void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:591]
 09:39:11     INFO -  #10: void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/ContainerLayerComposite.cpp:752]
 09:39:11     INFO -  #11: mozilla::layers::LayerManagerComposite::Render(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&) [gfx/layers/composite/LayerManagerComposite.cpp:939]
 09:39:11     INFO -  #12: mozilla::layers::LayerManagerComposite::UpdateAndRender() [gfx/layers/composite/LayerManagerComposite.cpp:496]
 09:39:11     INFO -  #13: mozilla::layers::LayerManagerComposite::EndTransaction(mozilla::TimeStamp const&, mozilla::layers::LayerManager::EndTransactionFlags) [gfx/layers/composite/LayerManagerComposite.cpp:414]
 09:39:11     INFO -  #14: mozilla::layers::CompositorParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) [gfx/layers/ipc/CompositorParent.cpp:1280]
 09:39:11     INFO -  #15: mozilla::layers::CompositorVsyncScheduler::Composite(mozilla::TimeStamp) [gfx/layers/ipc/CompositorParent.cpp:532]
 09:39:11     INFO -  #16: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) [ipc/chromium/src/base/message_loop.cc:365]
 09:39:11     INFO -  #17: MessageLoop::DoWork() [ipc/chromium/src/base/message_loop.cc:459]
 09:39:11     INFO -  #18: base::MessagePumpDefault::Run(base::MessagePump::Delegate*) [ipc/chromium/src/base/message_pump_default.cc:34]
 09:39:11     INFO -  #19: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:520]
 09:39:11     INFO -  #20: base::Thread::ThreadMain() [ipc/chromium/src/base/thread.cc:175]
 09:39:11     INFO -  #21: ThreadFunc [ipc/chromium/src/base/platform_thread_posix.cc:36]
 09:39:11     INFO -  #22: libsystem_pthread.dylib + 0x405a
 09:39:11     INFO -  #23: libsystem_pthread.dylib + 0x3fd7
 09:39:11     INFO -  [2208] WARNING: A new track was detected on the input stream; creating a corresponding MediaStreamTrack. Initial tracks should be added manually to immediately and synchronously be available to JS.: '!mStream->mTracks.IsEmpty()', file /builds/slave/m-in-m64-d-0000000000000000000/build/src/dom/media/DOMMediaStream.cpp, line 131
 09:39:11     INFO -  MEMORY STAT | vsize 3427MB | residentFast 420MB | heapAllocated 112MB
 09:39:11     INFO -  46269 INFO TEST-OK | dom/media/test/test_streams_capture_origin.html | took 541ms
 09:39:11     INFO -  [2208] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0xC1F30001: file /builds/slave/m-in-m64-d-0000000000000000000/build/src/netwerk/cache2/CacheFileMetadata.cpp, line 308
 09:39:11     INFO -  [2208] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0xC1F30001: file /builds/slave/m-in-m64-d-0000000000000000000/build/src/netwerk/cache2/CacheFileMetadata.cpp, line 308
 09:39:11     INFO -  [2208] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0xC1F30001: file /builds/slave/m-in-m64-d-0000000000000000000/build/src/netwerk/cache2/CacheFileMetadata.cpp, line 308
 09:39:11     INFO -  [2208] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0xC1F30001: file /builds/slave/m-in-m64-d-0000000000000000000/build/src/netwerk/cache2/CacheFileMetadata.cpp, line 308
 09:39:11     INFO -  [2208] WARNING: Releasing screensaver: file /builds/slave/m-in-m64-d-0000000000000000000/build/src/widget/cocoa/nsAppShell.mm, line 83
 09:39:11     INFO -  ++DOMWINDOW == 55 (0x12f211800) [pid = 2208] [serial = 625] [outer = 0x12dd9b000]
 09:39:11     INFO -  46270 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_streams_capture_origin.html | Assertion count 3 is greater than expected range 0-0 assertions.
09:39:11 INFO - {u'max_asserts': 0, u'assertions': 3, u'min_asserts': 0}
Component: Audio/Video: MediaStreamGraph → Graphics: Layers
Keywords: assertion
Summary: Intermittent test_streams_capture_origin.html | Assertion count 3 is greater than expected range 0-0 assertions. → Intermittent test_streams_capture_origin.html | Assertion count 3 is greater than expected (ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file gfx/layers/composite/TextureHost.cpp, line 696)
Nical, is this related to bug 1249273 and/or bug 1251726?
Flags: needinfo?(nical.bugzilla)
See Also: → 1251726, 1249273
Whiteboard: [gfx-noted]
This should do.
Assignee: nobody → nical.bugzilla
Flags: needinfo?(nical.bugzilla)
Attachment #8727491 - Flags: review?(sotaro.ikeda.g)
I thought I'd explained the issue on the bug but I forgot, so here is what I think is happening: mNeedsFullUpdate is false when we lock the ycbcr texture which makes us call Upload with a non-null region as parameter, but we don't support partial updates of ycbcr textures hence the assertion. basically it boils down to finding what caused us to set mNeedsFullUpdate to false (it happens in MaybeUpload) and do another upload later.
This was probably introduced by the patch in bug 1249273 which lets a BufferTextureHost recycle an existing TextureSource. In this case we should set mNeedsFullUpdate to true because the content of the adopted TextureSource doesn't correspond to what's in the TextureHost, so we need to upload everything, but the patch in bug 1249273 is missing that.
Comment on attachment 8727491 [details] [diff] [review]
BufferTextureHost must set mNeedsFullUpdate to true when adopting a new TextureSource

Make sense :)
Attachment #8727491 - Flags: review?(sotaro.ikeda.g) → review+
Comment on attachment 8727491 [details] [diff] [review]
BufferTextureHost must set mNeedsFullUpdate to true when adopting a new TextureSource

Approval Request Comment
[Feature/regressing bug #]: bug 1249273
[User impact if declined]: none. It's a benign assertion, but it causes some tests to fail intermittently.
[Describe test coverage new/current, TreeHerder]:
[Risks and why]: very very low. Extremely simple fix.
[String/UUID change made/needed]:
Attachment #8727491 - Flags: approval-mozilla-aurora?
Comment on attachment 8727491 [details] [diff] [review]
BufferTextureHost must set mNeedsFullUpdate to true when adopting a new TextureSource

Fixes an intermittent test failure, taking it.
Attachment #8727491 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
https://hg.mozilla.org/mozilla-central/rev/e04e7d92d4eb
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Blocks: 1285757
Summary: Intermittent test_streams_capture_origin.html | Assertion count 3 is greater than expected (ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file gfx/layers/composite/TextureHost.cpp, line 696) → Intermittent test_getUserMedia_mediaElementCapture_tracks.html,test_streams_capture_origin.html | Assertion count 3 is greater than expected (ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file TextureHost.cpp, line 696)
Wrong bug, sorry for the noise.
Summary: Intermittent test_getUserMedia_mediaElementCapture_tracks.html,test_streams_capture_origin.html | Assertion count 3 is greater than expected (ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file TextureHost.cpp, line 696) → Intermittent test_streams_capture_origin.html | Assertion count 3 is greater than expected (ASSERTION: Unsupported partial updates for YCbCr textures: '!aRegion', file gfx/layers/composite/TextureHost.cpp, line 696)
You need to log in before you can comment on or make changes to this bug.