Closed Bug 1585240 Opened 5 years ago Closed 5 years ago

Add a composite code path for picture cache tiles.

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox71 --- fixed

People

(Reporter: gw, Assigned: gw)

References

(Blocks 1 open bug)

Details

(Whiteboard: [wr-q41])

Attachments

(1 file)

No description provided.
Assignee: nobody → gwatson

Previously, picture cache tiles were added to normal batches, and drawn
via the brush_image shader. Since all content is now in picture cache
tiles, we can instead draw the tiles via a separate code path. The tiles
for all picture caches are collected into a single composite config, that
is stored in the Frame structure. These two changes provide a number of
advantages:

  • The composite shader is very simple - it doesn't need to deal with
    transforms, anti-aliasing, repetition etc.
  • Since we create the tile batches in render(), rather than in the
    backend, we can take advantage of information not available until
    the render() call. For example, Gecko will provide information here
    when the partial presentation rects need to be reset. This will be
    used to enable partial presentation parameters on Windows.
  • In future, we can access this list of tiles to be composited, and use
    them to configure the OS compositor integration, and hand the tiles
    directly to the OS compositor.
  • In future, we can apply global optimizations to the set of picture
    cache tiles (e.g. occlude background tiles on CPU to skip paying
    the z-reject cost of drawing them).
  • In future, we can take advantage of the simpler composite path
    for software rasterizer implementations.
Blocks: 1536360
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/845c92fd34a6
Add a composite code path for picture cache tiles. r=kvark
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla71
Regressions: 1586062
Regressions: 1586121

== Change summary for alert #23347 (as of Fri, 04 Oct 2019 06:17:17 GMT) ==

Improvements:

3% tp5o_scroll linux64-shippable-qr opt e10s stylo 2.32 -> 2.24
3% tp5o_scroll linux64-shippable-qr opt e10s stylo 2.32 -> 2.25
3% tscrollx linux64-shippable-qr opt e10s stylo 1.23 -> 1.20

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=23347

Regressions: 1586257
Whiteboard: [wr-q41]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: