Closed Bug 1630733 Opened 5 years ago Closed 4 years ago

Intermittent Assertion failure: EnsureWrappedTextureHost(), at /builds/worker/checkouts/gecko/gfx/layers/composite/GPUVideoTextureHost.cpp:139

Categories

(Core :: Graphics: Layers, defect, P5)

defect

Tracking

()

RESOLVED FIXED
83 Branch
Tracking Status
firefox83 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: jya)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

Filed by: btara [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=297965642&repo=mozilla-release
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/TFx8pjDjRIiOhEtSGS0w7A/runs/0/artifacts/public/logs/live_backing.log


[task 2020-04-16T17:58:48.263Z] 17:58:48     INFO - TEST-START | toolkit/components/pictureinpicture/tests/browser_togglePointerEventsNone.js
[task 2020-04-16T17:58:48.268Z] 17:58:48     INFO - GECKO(7724) | [Child 9908: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 000001686BE46800 == 2 [pid = 9908] [id = {fb8bde51-6f6d-4b97-95f6-eca556dff6b0}]
[task 2020-04-16T17:58:48.268Z] 17:58:48     INFO - GECKO(7724) | [Child 9908: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 17 (0000016872336600) [pid = 9908] [serial = 79] [outer = 0000000000000000]
[task 2020-04-16T17:58:48.268Z] 17:58:48     INFO - GECKO(7724) | [Child 9908: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 18 (0000016871F81800) [pid = 9908] [serial = 80] [outer = 0000016872336600]
[task 2020-04-16T17:58:48.351Z] 17:58:48     INFO - GECKO(7724) | [Child 9908: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 19 (0000016873A0DC00) [pid = 9908] [serial = 81] [outer = 0000016872336600]
[task 2020-04-16T17:58:48.502Z] 17:58:48     INFO - GECKO(7724) | Assertion failure: EnsureWrappedTextureHost(), at /builds/worker/checkouts/gecko/gfx/layers/composite/GPUVideoTextureHost.cpp:139
[task 2020-04-16T17:58:48.605Z] 17:58:48     INFO - GECKO(7724) | #01: static mozilla::layers::TextureHost::Create(mozilla::layers::SurfaceDescriptor const&, mozilla::layers::ReadLockDescriptor const&, mozilla::layers::ISurfaceAllocator*, mozilla::layers::LayersBackend, mozilla::layers::TextureFlags, mozilla::Maybe<mozilla::wr::ExternalImageId>&) [gfx/layers/composite/TextureHost.cpp:245]
[task 2020-04-16T17:58:48.606Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.606Z] 17:58:48     INFO - GECKO(7724) | #02: static mozilla::layers::TextureHost::CreateIPDLActor(mozilla::layers::HostIPCAllocator*, mozilla::layers::SurfaceDescriptor const&, mozilla::layers::ReadLockDescriptor const&, mozilla::layers::LayersBackend, mozilla::layers::TextureFlags, unsigned long long, mozilla::Maybe<mozilla::wr::ExternalImageId> const&) [gfx/layers/composite/TextureHost.cpp:125]
[task 2020-04-16T17:58:48.606Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.607Z] 17:58:48     INFO - GECKO(7724) | #03: mozilla::layers::ImageBridgeParent::AllocPTextureParent(mozilla::layers::SurfaceDescriptor const&, mozilla::layers::ReadLockDescriptor const&, mozilla::layers::LayersBackend const&, mozilla::layers::TextureFlags const&, unsigned long long const&, mozilla::Maybe<mozilla::wr::ExternalImageId> const&) [gfx/layers/ipc/ImageBridgeParent.cpp:300]
[task 2020-04-16T17:58:48.607Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.608Z] 17:58:48     INFO - GECKO(7724) | #04: mozilla::layers::PImageBridgeParent::OnMessageReceived(IPC::Message const&) [s3:gecko-generated-sources:1358c90879e24d85f9e31c218c8f80fd00549b3a8b4d98cd0518250023bdaaa88a1d7efa030e7ed5fd54b736d5407a421a0a421c4bf602bef78ec5b3b7211ab2/ipc/ipdl/PImageBridgeParent.cpp::471]
[task 2020-04-16T17:58:48.608Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - GECKO(7724) | #05: mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) [ipc/glue/MessageChannel.cpp:2188]
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - GECKO(7724) | #06: mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) [ipc/glue/MessageChannel.cpp:2111]
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - GECKO(7724) | #07: mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) [ipc/glue/MessageChannel.cpp:1960]
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - GECKO(7724) | #08: mozilla::ipc::MessageChannel::MessageTask::Run() [ipc/glue/MessageChannel.cpp:1992]
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - GECKO(7724) | #09: MessageLoop::RunTask(already_AddRefed<nsIRunnable>) [ipc/chromium/src/base/message_loop.cc:443]
[task 2020-04-16T17:58:48.609Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - GECKO(7724) | #10: MessageLoop::DoWork() [ipc/chromium/src/base/message_loop.cc:525]
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - GECKO(7724) | #11: base::MessagePumpForUI::DoRunLoop() [ipc/chromium/src/base/message_pump_win.cc:204]
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - GECKO(7724) | #12: base::MessagePumpWin::Run(base::MessagePump::Delegate*) [ipc/chromium/src/base/message_pump_win.h:79]
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - GECKO(7724) | #13: MessageLoop::RunHandler() [ipc/chromium/src/base/message_loop.cc:309]
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - GECKO(7724) | #14: base::Thread::ThreadMain() [ipc/chromium/src/base/thread.cc:192]
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - GECKO(7724) | #15: `anonymous namespace'::ThreadFunc(void*) [ipc/chromium/src/base/platform_thread_win.cc:20]
[task 2020-04-16T17:58:48.610Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.611Z] 17:58:48     INFO - GECKO(7724) | #16: KERNEL32.DLL + 0x13034
[task 2020-04-16T17:58:48.611Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.677Z] 17:58:48     INFO - GECKO(7724) | #17: patched_BaseThreadInitThunk(int, void*, void*) [mozglue/dllservices/WindowsDllBlocklist.cpp:588]
[task 2020-04-16T17:58:48.677Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.677Z] 17:58:48     INFO - GECKO(7724) | #18: ntdll.dll + 0x71461
[task 2020-04-16T17:58:48.677Z] 17:58:48     INFO - 
[task 2020-04-16T17:58:48.838Z] 17:58:48     INFO - GECKO(7724) | [GF[[GFX1-]: [RecGeGivFX1-]: Rece Ieive IPC close with reaFX1-]PC soc:ln=o sAe wbnorith rReceeamson=AbnaoivrmalShutdowne
[task 2020-04-16T17:58:48.838Z] 17:58:48     INFO - GECKO(7724) | lShutdown
[task 2020-04-16T17:58:48.839Z] 17:58:48     INFO - GECKO(7724) | IPC close with reason=AbnormalShutdown
[task 2020-04-16T17:58:48.839Z] 17:58:48     INFO - GECKO(7724) | X1-]: Receive IPC close with re[[GGFXFaXs11--]:]o:n R =AbeReceivenorc IPC emalSihcvloeuste dIo PwCn cw
[task 2020-04-16T17:58:48.839Z] 17:58:48     INFO - GECKO(7724) | lose with r[eGFa[GFX1-]:i[t sGX1-o]R:ehc eni=FRveceive IPC cel Io sreason=XAPAbne Cwith rea 1obrno-r]:mmason=AabnormalSclose with reason lS=AbnorhutdRecmhlShouetdoiwvuwne
[task 2020-04-16T17:58:48.839Z] 17:58:48     INFO - GECKO(7724) |  nIPC closalShet utdownwi
[task 2020-04-16T17:58:48.839Z] 17:58:48     INFO - GECKO(7724) | th reason=AbnormalShutdown
[task 2020-04-16T17:58:48.839Z] 17:58:48     INFO - GECKO(7724) | down
[task 2020-04-16T17:58:48.864Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xB40022,name=PWebRenderBridge::Msg_Shutdown) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.865Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xA00003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.866Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xA00003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.866Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xA00003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.866Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xD,name=PAPZ::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.866Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel::SendAndWait] Error: (msgtype=0x34001A,name=PCompositorBridge::Msg_WillClose) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.867Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0x610015,name=PLayerTransaction::Msg_ClearCachedResources) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.867Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0x61001E,name=PLayerTransaction::Msg_Shutdown) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.867Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel::SendAndWait] Error: (msgtype=0x34001A,name=PCompositorBridge::Msg_WillClose) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.867Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xB40022,name=PWebRenderBridge::Msg_Shutdown) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.867Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xA00003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.867Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xA00003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.868Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xA00003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.868Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel] Error: (msgtype=0xD,name=PAPZ::Msg_Destroy) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.868Z] 17:58:48     INFO - GECKO(7724) | ###!!! [Child][MessageChannel::SendAndWait] Error: (msgtype=0x34001A,name=PCompositorBridge::Msg_WillClose) Channel error: cannot send/recv
[task 2020-04-16T17:58:48.886Z] 17:58:48     INFO - GECKO(7724) | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to c:\users\task_1587058514\appdata\local\temp\tmphdez4m.mozrunner\runtests_leaks_gpu_pid13212.log
[task 2020-04-16T17:58:48.924Z] 17:58:48     INFO - GECKO(7724) | Initializing context 000002289FA80000 surface 000002289B3B9160 on display 000002289B39D800
[task 2020-04-16T17:58:48.924Z] 17:58:48     INFO - GECKO(7724) | [GFX1-]: Receive IPC close with reason=AbnormalShutdown
[task 2020-04-16T17:58:48.924Z] 17:58:48     INFO - GECKO(7724) | [GFX1-]: Receive IPC close with reason=AbnormalShutdown
[task 2020-04-16T17:58:48.925Z] 17:58:48     INFO - GECKO(7724) | [GFX1-]: Receive IPC close with reason=AbnormalShutdown
[task 2020-04-16T17:58:48.925Z] 17:58:48     INFO - GECKO(7724) | [GPU 13212, Renderer] WARNING: framebuffer_multisample marked as unsupported: file /builds/worker/checkouts/gecko/gfx/gl/GLContextFeatures.cpp, line 623
[task 2020-04-16T17:58:48.935Z] 17:58:48     INFO - GECKO(7724) | [GPU 13212, Compositor] WARNING: Created child without a matching parent?: file /builds/worker/checkouts/gecko/gfx/layers/ipc/ContentCompositorBridgeParent.cpp, line 110
[task 2020-04-16T17:58:48.935Z] 17:58:48     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to allocate layer transaction: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 2767
[task 2020-04-16T17:58:48.935Z] 17:58:48     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to recreate layer manager: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 3171
[task 2020-04-16T17:58:48.945Z] 17:58:48     INFO - GECKO(7724) | [2020-04-16T17:58:48Z WARN  webrender_bindings::bindings] Could not find symbol "glBlendBarrierKHR" by glcontext
...
...
[task 2020-04-16T17:58:48.990Z] 17:58:48     INFO - GECKO(7724) | [2020-04-16T17:58:48Z WARN  webrender_bindings::bindings] Could not find symbol "glTextureStorage3DEXT" by glcontext
[task 2020-04-16T17:58:49.008Z] 17:58:49     INFO - GECKO(7724) | [GPU 13212, Compositor] WARNING: Created child without a matching parent?: file /builds/worker/checkouts/gecko/gfx/layers/ipc/ContentCompositorBridgeParent.cpp, line 110
[task 2020-04-16T17:58:49.008Z] 17:58:49     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to allocate layer transaction: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 2767
[task 2020-04-16T17:58:49.008Z] 17:58:49     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to recreate layer manager: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 3171
[task 2020-04-16T17:58:49.013Z] 17:58:49     INFO - GECKO(7724) | [GPU 13212, Compositor] WARNING: Created child without a matching parent?: file /builds/worker/checkouts/gecko/gfx/layers/ipc/ContentCompositorBridgeParent.cpp, line 110
[task 2020-04-16T17:58:49.013Z] 17:58:49     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to allocate layer transaction: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 2767
[task 2020-04-16T17:58:49.013Z] 17:58:49     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to recreate layer manager: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 3171
[task 2020-04-16T17:58:49.015Z] 17:58:49     INFO - GECKO(7724) | [GPU 13212, Compositor] WARNING: Created child without a matching parent?: file /builds/worker/checkouts/gecko/gfx/layers/ipc/ContentCompositorBridgeParent.cpp, line 110
[task 2020-04-16T17:58:49.017Z] 17:58:49     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to allocate layer transaction: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 2767
[task 2020-04-16T17:58:49.017Z] 17:58:49     INFO - GECKO(7724) | [Child 2728, Main Thread] WARNING: failed to recreate layer manager: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 3171
[task 2020-04-16T17:58:49.928Z] 17:58:49     INFO - GECKO(7724) | [Child 9908: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 18 (0000016877BBA800) [pid = 9908] [serial = 66] [outer = 0000000000000000] [url = about:blank]
...
...
[task 2020-04-16T17:58:59.968Z] 17:58:59     INFO - GECKO(7724) | [Child 14032: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 0 (000001819776FC00) [pid = 14032] [serial = 64] [outer = 0000000000000000] [url = about:blank]
[task 2020-04-16T18:00:14.082Z] 18:00:14     INFO - GECKO(7724) | [Parent 7088, Jump List] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /builds/worker/checkouts/gecko/widget/windows/WinUtils.cpp, line 1347
[task 2020-04-16T18:00:18.316Z] 18:00:18     INFO - TEST-INFO | started process screenshot
[task 2020-04-16T18:00:18.395Z] 18:00:18     INFO - TEST-INFO | screenshot: exit 0
[task 2020-04-16T18:00:18.395Z] 18:00:18     INFO - Buffered messages logged at 17:58:48
[task 2020-04-16T18:00:18.395Z] 18:00:18     INFO - Entering test bound 
[task 2020-04-16T18:00:18.395Z] 18:00:18     INFO - Buffered messages finished
[task 2020-04-16T18:00:18.395Z] 18:00:18     INFO - TEST-UNEXPECTED-FAIL | toolkit/components/pictureinpicture/tests/browser_togglePointerEventsNone.js | Test timed out - 
[task 2020-04-16T18:00:18.395Z] 18:00:18     INFO - GECKO(7724) | MEMORY STAT | vsize 2104272MB | vsizeMaxContiguous 66111689MB | residentFast 288MB | heapAllocated 89MB
[task 2020-04-16T18:00:18.396Z] 18:00:18     INFO - TEST-OK | toolkit/components/pictureinpicture/tests/browser_togglePointerEventsNone.js | took 90083ms
[task 2020-04-16T18:00:18.396Z] 18:00:18     INFO - Not taking screenshot here: see the one that was previously logged
[task 2020-04-16T18:00:18.396Z] 18:00:18     INFO - TEST-UNEXPECTED-FAIL | toolkit/components/pictureinpicture/tests/browser_togglePointerEventsNone.js | Found a tab after previous test timed out: http://example.com/browser/toolkit/components/pictureinpicture/tests/test-pointer-events-none.html - 
[task 2020-04-16T18:00:18.396Z] 18:00:18     INFO - GECKO(7724) | [Child 14032: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 0000018191342000 == 1 [pid = 14032] [id = {d126d634-b13c-42f8-a83d-b961b9339d23}]
[task 2020-04-16T18:00:18.396Z] 18:00:18     INFO - GECKO(7724) | [Child 14032: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 1 (0000018197710090) [pid = 14032] [serial = 65] [outer = 0000000000000000]
[task 2020-04-16T18:00:18.396Z] 18:00:18     INFO - GECKO(7724) | [Child 14032: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (00000181913ADC00) [pid = 14032] [serial = 66] [outer = 0000018197710090]
[task 2020-04-16T18:00:18.414Z] 18:00:18     INFO - checking window state
...
Summary: Intermittent GECKO(7724) | Assertion failure: EnsureWrappedTextureHost(), at /builds/worker/checkouts/gecko/gfx/layers/composite/GPUVideoTextureHost.cpp:139 → Intermittent Assertion failure: EnsureWrappedTextureHost(), at /builds/worker/checkouts/gecko/gfx/layers/composite/GPUVideoTextureHost.cpp:139
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---

An explanation on why we have this bug, which is now blocking bug 1595994 where it became a permafailure.

This error occurs when we have an image created by the decoder and registered with the GPU process via the PVideoBridge. This image is then returned to the content process and finally uploaded to the compositor via the PImageBridge.

We have a race between the ImageBridge for Content->GPU and the VideoBridge between RDD and GPU; where the image submitted via PImageBridge arrives before the RDD->GPU completed its registration via PVideoBridge. It's a surprising race because there's quite a bit of stuff happening between the time the decoder has submitted an image via the VideoBridge, return it to the content process, which added it to its queue of stuff to render, and only then upload it to the compositor.

This can be verified with the following change to PVideoBridge

diff --git a/gfx/layers/ipc/PVideoBridge.ipdl b/gfx/layers/ipc/PVideoBridge.ipdl
--- a/gfx/layers/ipc/PVideoBridge.ipdl
+++ b/gfx/layers/ipc/PVideoBridge.ipdl
@@ -19,15 +19,15 @@ namespace layers {
  * The PVideoBridge protocol is used to share textures from the video decoders
  * to the compositor.
  */
 sync protocol PVideoBridge
 {
   manages PTexture;
 
 parent:
-  async PTexture(SurfaceDescriptor aSharedData, ReadLockDescriptor aReadLock, LayersBackend aBackend,
+  sync PTexture(SurfaceDescriptor aSharedData, ReadLockDescriptor aReadLock, LayersBackend aBackend,
                  TextureFlags aTextureFlags, uint64_t aSerial);
 };
 
 } // namespace
 } // namespace

By making the PTexture constructor a sync API, we guarantee that the image has been registered with the GPU process before continuing.

It's probably not something we want as a solution.

I've discussed with Matt a few ways we could resolve this problem. None of them very elegant at this stage.
I'll have a go at it.

Assignee: nobody → jyavenard
Blocks: 1595994

It is possible that when the ImageBridge received a new image to composite, that image hasn't yet been registered via the VideoBridge.

This can happen if the decoding occurs in the different process than the content process. Even though the VideoBridge registration message was sent earlier by the RDD process, the ImageBridge message sent by the content process reached the compositor earlier.

So we only attempt to use the TextureHost if it is valid and the underlying image has been properly registered. Otherwise we will continue to use the previous image.

Some methods are modified to lazily perform their action only once the image has been registered from the PVideoBridge.

Pushed by jyavenard@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4db8dee962ce Only attempt to use TextureHost if it's valid. r=mattwoodrow,nical
Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 83 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: