Closed Bug 1456555 Opened 2 years ago Closed Last year

Always tile blob images larger than a certain size

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox62 --- wontfix
firefox63 --- wontfix
firefox64 --- wontfix
firefox65 --- fixed

People

(Reporter: jrmuizel, Assigned: mattwoodrow)

References

(Depends on 1 open bug, Blocks 3 open bugs, )

Details

Attachments

(6 files, 3 obsolete files)

Scrolling around large svg images runs into this problem.
Blocks: 1454810
Blocks: 1450375
Based on related issues like bug 1477727 and 1448868 marking this wontfix for 62. We could still get a patch in for 63 though.
We don't plan on uplifting anything WebRender related to 63.
We'll probably want this so that we get decent texture upload performance
Blocks: stage-wr-trains
No longer blocks: stage-wr-next
I tried this and we get rendering errors on digitalocean and the performance actually gets worse. This needs to be debugged.
We can't release this to the field, but we can let this ride to beta.
Priority: P1 → P2
Attached patch Make more tiles (obsolete) — Splinter Review
Assignee: nobody → jmuizelaar
Comment on attachment 9007891 [details] [diff] [review]
Make more tiles

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

::: gfx/webrender_bindings/src/bindings.rs
@@ +1255,5 @@
>      txn.add_image(
>          image_key,
>          descriptor.into(),
>          ImageData::new_blob_image(bytes.flush_into_vec()),
> +        if descriptor.format == ImageFormat::BGRA8 { Some(256, 256) } else { None }

Some(256)
Attachment #9007891 - Flags: feedback+
> descriptor.format == ImageFormat::BGRA8

Is this check to exclude masks? I think that deserves a comment, maybe with a pointer to bug 1435896.
(In reply to Markus Stange [:mstange] from comment #8)
> maybe with a pointer to bug 1435896.

Er oops, that bug is fixed. Huh.
Without the format check I was getting crashes. I didn't have a chance to investigate. However, I too thought tiled masks weren't implemented.
Attachment #9007891 - Attachment is obsolete: true
Assignee: jmuizelaar → matt.woodrow
MozReview-Commit-ID: D71C1DaJIeV
MozReview-Commit-ID: AfA6dfFdgsQ

Depends on D10031
MozReview-Commit-ID: I4XFoTp1szZ

Depends on D10033
This just makes the existing hack available to all DataSourceSurface implementations by default, since we use different ones with WR.

MozReview-Commit-ID: GVR0rIx8wtD

Depends on D10036
This got added in bug 1429508 and then removed in bug 1451845. Tiled blobs adds tests for this, so it shouldn't break again.

MozReview-Commit-ID: 3azL7SoWlr2

Depends on D10038
MozReview-Commit-ID: JRpQ5nVFx0r

Depends on D10043
Attachment #9020679 - Attachment is obsolete: true
Attachment #9020681 - Attachment is obsolete: true
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4261b7dc70f7
Fix bugs in DrawTargetOffset. r=mstange
https://hg.mozilla.org/integration/autoland/rev/d46e2737134f
Support Map on multiple threads. r=rhunt
https://hg.mozilla.org/integration/autoland/rev/afb19dd18556
Fix SourceSurface offset handling in DTSkia::PushLayer. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/1f269ed43301
Deal with clipped containers being smaller than their contents during blob building. r=Gankro
https://hg.mozilla.org/integration/autoland/rev/ca90391329b7
Enable tiled blobs. r=Gankro
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c4df6309a5be
Fix bugs in DrawTargetOffset. r=mstange
https://hg.mozilla.org/integration/autoland/rev/595abbb5bf3e
Support Map on multiple threads. r=rhunt
https://hg.mozilla.org/integration/autoland/rev/6cc965ecc095
Fix SourceSurface offset handling in DTSkia::PushLayer. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/5e3b20a19162
Deal with clipped containers being smaller than their contents during blob building. r=Gankro
https://hg.mozilla.org/integration/autoland/rev/0f2854553c21
Enable tiled blobs. r=Gankro
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c6c46594d92a
Fix bugs in DrawTargetOffset. r=mstange
https://hg.mozilla.org/integration/autoland/rev/d92ef360413c
Support Map on multiple threads. r=rhunt
https://hg.mozilla.org/integration/autoland/rev/0fb0a03bae20
Fix SourceSurface offset handling in DTSkia::PushLayer. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/69a424edfb4d
Deal with clipped containers being smaller than their contents during blob building. r=Gankro
https://hg.mozilla.org/integration/autoland/rev/7a308f25794f
Enable tiled blobs. r=Gankro
For posterity:

== Change summary for alert #17389 (as of Tue, 06 Nov 2018 15:40:09 GMT) ==

Regressions:

 42%  tsvgx linux64-qr opt e10s stylo     245.27 -> 347.63

Improvements:

 45%  tsvg_static windows10-64-qr opt e10s stylo       90.13 -> 49.27
 31%  tsvgr_opacity windows10-64-qr opt e10s stylo     159.57 -> 109.79
 23%  tsvgr_opacity linux64-qr opt e10s stylo          155.84 -> 120.12
  7%  tsvg_static linux64-qr opt e10s stylo            68.62 -> 64.14
  6%  tsvgx windows10-64-qr opt e10s stylo             259.88 -> 243.24

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=17389
Blocks: 1489830
Depends on: 1506109
Flags: needinfo?(matt.woodrow)
You need to log in before you can comment on or make changes to this bug.