Closed Bug 1536021 Opened 6 years ago Closed 5 years ago

Huge memory usage when open the demo due to lots of text-shadow

Categories

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

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: nayinain, Assigned: nical)

References

Details

Attachments

(6 files, 5 obsolete files)

Attached file demo.html (deleted) β€”

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0

Steps to reproduce:

  1. Enable WebRender
  2. Open the demo.html

Actual results:

Huge memory usage.

Expected results:

Sorry for my bad English.

Attached file about:support (deleted) β€”
Summary: Huge memory usage when open the demo → Huge memory usage when open the demo due to lots of text-shadow
Blocks: wr-67
Priority: -- → P3

This page has a single character with nearly 200 text shadow that are spread all over the place. I suspect we're allocating lots of really large render targets.

Nical, can you take a look at this?

Flags: needinfo?(nical.bugzilla)
Assignee: nobody → nical.bugzilla
Flags: needinfo?(nical.bugzilla)
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Blocks: wr-68
No longer blocks: wr-67
Attached image render tasks for the test case (deleted) β€”

The shiny new render task dump in wr captures show that we do indeed create a huge amount of very large render tasks.

This was fixed by bug 1545768

Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Attached file Bug 1536021 - Gecko side changes. r=kvark (deleted) β€”
Attached file Bug 1536021 - Stub DropShadowStack filter op. r=kvark. (obsolete) (deleted) β€”

Here is the first wave of shadow stack patches. Rebasing was quite brutal and I didn't manage to keep all commits from https://github.com/servo/webrender/pull/3636 building independently so the bulk of the shadow stack implementation ended up in the same commit.

The next patch to come after this lands will remove the non-stack shadow code paths and to use the shadow stack path for all picture composite filter ops.

After that the remaining work is to detect shadow stacks in built from push/pop shadow display items and express them in terms of picture composite ops instead of using the shadow items code, and eventually remove the shadow item code entirely.

Once all of this is done, this test case should be able to de-duplicate a lot of render tasks and consume a lot less memory, although there is quite a bit of render task memory associated to other things like masks that needs to be investigated.

Keywords: leave-open
Attachment #9063989 - Attachment is obsolete: true
Attachment #9063988 - Attachment is obsolete: true
Attachment #9063987 - Attachment is obsolete: true
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/d8bd0fd80579
Shadow stack implementation. r=kvark
https://hg.mozilla.org/integration/mozilla-inbound/rev/82e5affb98af
Sanitize filters in place. r=kvark
https://hg.mozilla.org/integration/mozilla-inbound/rev/bcbaf50dca28
Gecko side changes. r=kvark
Status: RESOLVED → REOPENED
Resolution: FIXED → ---

sed -i 's/RenderTaskTree/RenderTaskGraph/g' gfx/wr/webrender//*.rs
sed -i 's/task tree/task graph/g' gfx/wr/webrender/
/*.rs

Comment on attachment 9064427 [details]
Bug 1536021 - Remove the single-shadow picture composite code. r=kvark

Revision D30896 was moved to bug 1551187. Setting attachment 9064427 [details] to obsolete.

Attachment #9064427 - Attachment is obsolete: true

Comment on attachment 9064432 [details]
Bug 1536021 - Rename render task tree into render task graph. r=kvark

Revision D30897 was moved to bug 1551187. Setting attachment 9064432 [details] to obsolete.

Attachment #9064432 - Attachment is obsolete: true
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: