Closed Bug 1635472 Opened 3 months ago Closed 2 months ago

Move the display port in larger increments when webrender is enabled

Categories

(Core :: Graphics: WebRender, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla79
Tracking Status
firefox78 --- wontfix
firefox79 --- fixed

People

(Reporter: nical, Assigned: nical)

References

(Blocks 1 open bug)

Details

Attachments

(2 files, 1 obsolete file)

With WebRender the displayport is updated every 128px which causes very frequent scene builds.

Attachment #9145899 - Attachment description: Bug 1635472 - move the displayport by 512 increments with WebRender. r=jrmuizel → Bug 1635472 - Move the displayport by 512 increments with WebRender. r=Kats
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e9afce8fbf79
Move the displayport by 512 increments with WebRender. r=kats
Attachment #9145900 - Attachment is obsolete: true
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a2e7394fa811
Move the displayport by 512 increments with WebRender. r=kats
Flags: needinfo?(nical.bugzilla)
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78
Status: RESOLVED → REOPENED
Resolution: FIXED → ---

tscrollx is very sensible to the size of the displayport. I am trying a few approaches:

  • (A) reduce the displayport for 3.5 screenfulls to 2.5 screenfulls of content
  • (B) align the position and size separately (keep aligning the size to 128) to avoid enlarging the displayport

(A) alone isn't enough because large alignment still round up to large display ports. There is also more risk of checkerboarding. On the other hand it considerably reduces the CPU time spent on displaylist building scene building and frame building.
(B) in addition to (A) results in nice tp5o_scroll improvements while avoiding the tscrollx regression https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=d2e4ea0d39f7edf3bb30f39649d8110f0ef7ce49&newProject=try&newRevision=f3a554158ca6510e0752361c50b75d5ff1db88bc&framework=1

The tp5o_scroll improvements come from the smaller displayport, this is the result of smaller displayport without the alignment changes: https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=d2e4ea0d39f7edf3bb30f39649d8110f0ef7ce49&newProject=try&newRevision=af536c4a53122ca183d1d738a07aff26021e8bfe&framework=1

The extra checkerboarding form (A) isn't noticeable on pages like youtube's front page, but it is very noticeable on pages where the content process's main thread is very busy with layout, style or js like https://github.com/n64decomp/ido/blob/master/src/uopt/uoptemit.c
It would be great to be able to mitigate that by dynamically growing the display port when we detect that we are checkerboarding.

Waiting for results of doing (B) without (A): https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=d2e4ea0d39f7edf3bb30f39649d8110f0ef7ce49&newProject=try&newRevision=74e5b18e7cdd26122bb1a48d190e292c2bbfc771&framework=1

All of these are with an alignment of 1024 for the displayport (position or position+size) instead of 128.

This allows moving the displayport in much larger increments (1024) without increasing the displayport size which regresses tscrollx.

Attachment #9153522 - Attachment description: Bug 1635472 - Separate size and position alignement of the displayport with WebRender. r=kats → Bug 1635472 - Move the displayport in largerer increments with WebRender. r=kats
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ab8da9fe39fe
Move the displayport in largerer increments with WebRender. r=kats
Attachment #9153522 - Attachment description: Bug 1635472 - Move the displayport in largerer increments with WebRender. r=kats → Bug 1635472 - Move the displayport in larger increments with WebRender. r=kats
Flags: needinfo?(nical.bugzilla)
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7d080876c7e2
Move the displayport in larger increments with WebRender. r=kats
Status: REOPENED → RESOLVED
Closed: 3 months ago2 months ago
Resolution: --- → FIXED
Regressions: 1647156
Target Milestone: mozilla78 → mozilla79
You need to log in before you can comment on or make changes to this bug.