Closed Bug 1415326 Opened 2 years ago Closed 2 years ago

MotionMark CSS bouncing clipped rectanges runs very poorly

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox57 --- unaffected
firefox58 --- unaffected

People

(Reporter: jrmuizel, Assigned: jrmuizel)

References

(Depends on 1 open bug)

Details

(Whiteboard: [wr-mvp])

Attachments

(1 file)

I think we might be painting the blob images for the clip masks more than necessary.
Whiteboard: [wr-mvp] [triage]
So we're definitely painting new items every frame, but the new items don't obviously show up.
Also, all of the squares share a single clip path, so if webrender could share them we would go much much faster.
(In reply to Jeff Muizelaar [:jrmuizel] from comment #3)
> Also, all of the squares share a single clip path, so if webrender could
> share them we would go much much faster.

Should we open a separate bug for this part?
(In reply to Milan Sreckovic [:milan] from comment #4)
> (In reply to Jeff Muizelaar [:jrmuizel] from comment #3)
> > Also, all of the squares share a single clip path, so if webrender could
> > share them we would go much much faster.
> 
> Should we open a separate bug for this part?

Yes please. Depending on how the display list is structured this might be pretty simple to do.
Whiteboard: [wr-mvp] [triage] → [wr-mvp]
Depends on: 1415987
This helps us avoid rerasterizing the blob images every frame. This makes a huge difference in performance. Our score goes from approx 75 to 380. Current Firefox gets about 200.
Assignee: nobody → jmuizelaar
Attachment #8927021 - Flags: review?(ethlin)
Comment on attachment 8927021 [details] [diff] [review]
Tolerate slight changes in scale

Review of attachment 8927021 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/layers/wr/WebRenderCommandBuilder.cpp
@@ +507,5 @@
>    // region is unknown until we traverse the displaylist contained by it.
>    if (geometry && !fallbackData->IsInvalid() &&
>        aItem->GetType() != DisplayItemType::TYPE_FILTER &&
> +      aItem->GetType() != DisplayItemType::TYPE_SVG_WRAPPER
> +      differentScale) {

you're missing an operator here
Status: NEW → ASSIGNED
Priority: P2 → P1
Attachment #8927021 - Flags: review?(ethlin) → review+
Of course you will fix the compilation errors before landing.
Pushed by jmuizelaar@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/5bee2596ae4d
Tolerate slight changes in scale for fallback items. r=ethlin
https://hg.mozilla.org/mozilla-central/rev/5bee2596ae4d
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in before you can comment on or make changes to this bug.