Closed Bug 1536021 Opened 6 months ago Closed 4 months 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

(Blocks 1 open bug)

Details

Attachments

(6 files, 5 obsolete files)

Attached file demo.html

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
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

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

Duplicate of this bug: 1548872

This was fixed by bug 1545768

Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED

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
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 months ago4 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.