Closed Bug 1609913 Opened 5 years ago Closed 5 years ago

Rendering is broken with native compositor on Windows

Categories

(Core :: Graphics: WebRender, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla74
Tracking Status
firefox74 --- fixed

People

(Reporter: sotaro, Assigned: gw)

References

Details

Attachments

(4 files)

By enabling WR native compositor on Windows, there was a case that rendering was broken.

STR

  • [1] Enable WR native compositor with pref.
  • gfx.webrender.all : true
  • gfx.webrender.compositor: true

Keep video playback until the problem happens. I confirmed the problem on 3 Win10 PCs. It took long time even when the problem happened.

Blocks: 1592509
Attached video video when problem happened (deleted) —

When the problem happened, I could not see about:support, sine all rendering updates were broken.

I saw the a lot of following error log out.

[GFX1-]: DCompositionSurface::BeginDraw failed: 0x887c0003
[GFX1-]: DCompositionSurface::BeginDraw failed: 0x887c0003
[GFX1-]: DCompositionSurface::BeginDraw failed: 0x887c0003
[GFX1-]: DCompositionSurface::BeginDraw failed: 0x887c0003

0x887c0003 might mean too many objects.


Debug build printed the following error message when the problem happened.

WARN: insertMessage(180): GL error: HIGH: Internal D3D11 error: HRESULT: 0x887C0003: Error allocating RenderTargetView
Caught GL error 502 at clear
Hit MOZ_CRASH(Caught GL error 502 at clear) at gfx\wr\webrender\src\device\gl.rs:1304
Assertion failure: EnsureWrappedTextureHost(), at d:/firefox_bld_dsk/mozilla-central/gfx/layers/composite/GPUVideoTextureHost.cpp:122
[Child 13828, Chrome_ChildThread] WARNING: pipe error: 232: file d:/firefox_bld_dsk/mozilla-central/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 507
Crash Annotation GraphicsCriticalError: |[C0][GFX1-]: Receive IPC close with reason=AbnormalShutdown (t=137996)

Blocks: wr-74
Priority: -- → P1

It seems that EGLSurface is leaked. DCLayerTree::DestroyEGLSurface() is called only in DCLayerTree::~DCLayerTree(). Call DestroyEGLSurface() for fixing the leak address the problem for me.

Assignee: nobody → gwatson

I confirmed in task manager that I could see memory growing when hovering over items before this patch. After the patch, memory usage was stable.

Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/bf297c03f0b7 Fix memory leak of native compositor surfaces. r=sotaro
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla74
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: