Commit Graph

1232 Commits

Author SHA1 Message Date
Glenn Watson
e449f34a4a Bug 1610738 - Add primitive flag to specify a compositor surface is preferred r=sotaro
This allows calling code to specify whether a primitive would prefer
to be promoted to a compositor surface and/or picture cache slice.

This is a performance hint that can be used for large external
primitives, such as videos and canvas elements.

Differential Revision: https://phabricator.services.mozilla.com/D60637

--HG--
extra : moz-landing-system : lando
2020-01-22 08:31:19 +00:00
Glenn Watson
90a55d388c Bug 1608741 - Part 2 - Disable dithering on gradient primitives. r=sotaro,nical
There are a number of issues with the current gradient dithering
implementation, that cause many test failures and also fuzziness
rendering when enabling DirectComposition virtual surfaces. In
particular, the dither result is dependent on the offset of the
update rect within a render target.

For now, this patch disables gradient dithering by default. This
gives us:

 - A heap of new test PASS results (or reduced fuzziness).
 - Fixes a number of non-deterministic fuzziness bugs with DC.
 - Improves performance of gradient rendering by a reasonable amount.

We can fix gradient dithering as a follow up, and re-enable if/when
we find content that would benefit from it significantly (we may
be able to improve gradients in other ways than dithering too).

Differential Revision: https://phabricator.services.mozilla.com/D60460

--HG--
extra : moz-landing-system : lando
2020-01-22 01:24:14 +00:00
Glenn Watson
4c7cd7138b Bug 1610626 - Fix wrench reftest mode incorrectly printing unexpected in some cases. r=Bert
The semantics of the inaccuracy reftest mode are that the overall
test succeeds as long as one of the multiple test images mismatches
the reference image.

However, the previous implementation would print an unexpected result
if any of the comparisons were equal (even though the overall test
result would be reported correctly).

This patch changes wrench so that it only reports an unexpected
failure for the overall test, not each individual reference.

Differential Revision: https://phabricator.services.mozilla.com/D60564

--HG--
extra : moz-landing-system : lando
2020-01-22 02:22:42 +00:00
Nicolas Silva
b44b6af7d4 Bug 1607836 - Preallocate picture task dependency vectors. r=gw
Unlike other types of render tasks, pictures can have hundreds of dependencies. The dependency vector is re-built every frame, leading to a lot of vector re-allocations in some pages.

Depends on D60151

Differential Revision: https://phabricator.services.mozilla.com/D60182

--HG--
extra : moz-landing-system : lando
2020-01-19 19:32:11 +00:00
Nicolas Silva
3a99301ecf Bug 1607836 - use SmallVec for render task dependencies. r=gw
The majority of render tasks have 0, 1 or 2 dependencies, except for pictures that typically have dozens to hundreds of dependencies. SmallVec with 2 inline elements avoids many tiny heap allocations in pages with a lot of text shadows and other types of render tasks.

Differential Revision: https://phabricator.services.mozilla.com/D60151

--HG--
extra : moz-landing-system : lando
2020-01-16 21:18:32 +00:00
Glenn Watson
3bf8ad7884 Bug 1609805 - Support a new reftest kind, for verifying rasterizer accuracy. r=nical,Bert
This patch introduces a new reftest (syntax ** or !* in reftest files).

This type of test renders a single input file multiple times, at a range
of different picture cache tile sizes. It then verifies that each of the
images matches (or doesn't).

This can be used to verify rasterizer accuracy when drawing primitives
with different tile sizes and/or dirty rect update strategies.

One of the included tests in this patch fails the accuracy test - the
intent is to fix this inaccuracy in a follow up patch and then be able to
mark it pixel exact.

Differential Revision: https://phabricator.services.mozilla.com/D60185

--HG--
extra : moz-landing-system : lando
2020-01-19 19:45:37 +00:00
Bert Peers
242db56cbf Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.

The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;

Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).

Interning info is not used yet.

Differential Revision: https://phabricator.services.mozilla.com/D59975

--HG--
extra : moz-landing-system : lando
2020-01-18 08:22:51 +00:00
Ciure Andrei
df04a415d6 Backed out changeset 05c1456103ea (bug 1605283) for webrender bustages CLOSED TREE 2020-01-17 20:55:02 +02:00
Bert Peers
52377ec04a Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.

The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;

Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).

Interning info is not used yet.

Differential Revision: https://phabricator.services.mozilla.com/D59975

--HG--
extra : moz-landing-system : lando
2020-01-17 18:41:50 +00:00
Csoregi Natalia
d55e0a5916 Backed out changeset 53cce741bb46 (bug 1605283) for bustage related to cargo-lock. CLOSED TREE 2020-01-17 02:42:35 +02:00
Bert Peers
b6fdcb621c Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.

The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;

Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).

Interning info is not used yet.

Differential Revision: https://phabricator.services.mozilla.com/D59975

--HG--
extra : moz-landing-system : lando
2020-01-17 00:21:17 +00:00
Dzmitry Malyshau
69b270f2c6 Bug 1605171 - Replace wrupdater with github-sync r=tomprince
this is an evolution of wrupdater

Differential Revision: https://phabricator.services.mozilla.com/D58972

--HG--
extra : moz-landing-system : lando
2020-01-14 18:37:28 +00:00
Dzmitry Malyshau
86ec958d3b Bug 1609136 - Fix cs_border_solid attribute names r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D59876

--HG--
extra : moz-landing-system : lando
2020-01-14 17:54:56 +00:00
Nicolas Silva
40e5306b23 Bug 1609049 - Add required fileds in peek-poke Cargo.toml. r=jrmuizel
Depends on D59840

Differential Revision: https://phabricator.services.mozilla.com/D59841

--HG--
extra : moz-landing-system : lando
2020-01-14 13:07:28 +00:00
Nicolas Silva
33d2c54400 Bug 1609049 - WebRender version bump. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D59840

--HG--
extra : moz-landing-system : lando
2020-01-14 13:07:05 +00:00
Andreea Pavel
0028348eab Merge mozilla-central to autoland on a CLOSED TREE 2020-01-13 23:49:50 +02:00
Andreea Pavel
9716decf81 Backed out changeset 7295ca89e880 (bug 1608280) for causing bug 1608912 and bug 1608871 a=backout 2020-01-13 22:40:49 +02:00
Glenn Watson
9e45d74b95 Bug 1608280 - Support a per-tile clip (valid) region for compositor tiles r=nical
Differential Revision: https://phabricator.services.mozilla.com/D59437

--HG--
extra : moz-landing-system : lando
2020-01-13 02:51:32 +00:00
Nicolas Silva
82cd051b29 Bug 1607697 - Address servo-tidy complaint.
Differential Revision: https://phabricator.services.mozilla.com/D59482

--HG--
extra : moz-landing-system : lando
2020-01-10 10:59:46 +00:00
Nicolas Silva
b86fbf8144 Bug 1607697 - Miscellaneous clippy lint fixes. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59118

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:53 +00:00
Nicolas Silva
7a338ae4f3 Bug 1607697 - Box the memory reports in enums. r=Gankro
Clippy warns against it being much larger than the other enum variants.

Differential Revision: https://phabricator.services.mozilla.com/D59117

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:41 +00:00
Nicolas Silva
dae942943d Bug 1607697 - Pass-by-value clippy lints for some small structures. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59116

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:33 +00:00
Nicolas Silva
9a61098486 Bug 1607697 - Address clippy lints about nested branches. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59115

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:16 +00:00
Nicolas Silva
a5e19cec49 Bug 1607697 - Address unwrap_or_else(callback) and functions in callback clippy lints. r=Gankro
I don't think it makes much of a difference but clippy is quite vocal about it.

Differential Revision: https://phabricator.services.mozilla.com/D59114

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:08 +00:00
Nicolas Silva
8dffbee87f Bug 1607697 - Allow excessive precision in debug color constants. r=Gankro
Addresses a clippy lint.

Differential Revision: https://phabricator.services.mozilla.com/D59113

--HG--
extra : moz-landing-system : lando
2020-01-10 10:11:56 +00:00
Nicolas Silva
b80f316e1c Bug 1607697 - Remove leading zeros in dither matrix litterals. r=Gankro
Addresses a clippy lint.

Differential Revision: https://phabricator.services.mozilla.com/D59112

--HG--
extra : moz-landing-system : lando
2020-01-10 10:11:43 +00:00
Nicolas Silva
fd305ea9ca Bug 1607697 - Address some clippy lints in WebRender API. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59101

--HG--
extra : moz-landing-system : lando
2020-01-10 10:11:36 +00:00
Connor Brewster
865f8216ac Bug 1607746 - Part 2: Clean up passing filter mode to shader r=nical
I removed the old opacity filter path in the brush_blend shader and cleaned up the filter mode
constants in the shader so there are less magic numbers. This should help if/when we move more
filters to their own shaders.

Depends on D59610

Differential Revision: https://phabricator.services.mozilla.com/D59611

--HG--
extra : moz-landing-system : lando
2020-01-13 16:05:59 +00:00
Connor Brewster
b4a3943712 Bug 1607746 - Part 1: Move opacity to its own shader in WebRender r=nical
Opacity is a common effect that is used and the opacit filter path is also used when a stacking
context has an opacity of < 1. The brush_blend shader is slow since it has support for a large
portion of CSS filters; however, opacity is used much more often than the rest of the filters.
This patch adds a simple shader for opacity effects which bypasses the extra overhead in the
brush_blend shader.

Differential Revision: https://phabricator.services.mozilla.com/D59610

--HG--
extra : moz-landing-system : lando
2020-01-13 16:05:57 +00:00
Dorel Luca
156007d527 Backed out 8 changesets (bug 1607697) for Build bustages. CLOSED TREE
Backed out changeset a3942fa2644c (bug 1607697)
Backed out changeset 6bf3305bb689 (bug 1607697)
Backed out changeset 3af5a9700d47 (bug 1607697)
Backed out changeset 6101f5e31e46 (bug 1607697)
Backed out changeset d70cc2bb33f6 (bug 1607697)
Backed out changeset 8490fa04e0ee (bug 1607697)
Backed out changeset 6c1778a36720 (bug 1607697)
Backed out changeset 9e830c9157ae (bug 1607697)
2020-01-08 18:04:19 +02:00
Nicolas Silva
9e26acd416 Bug 1607697 - Miscellaneous clippy lint fixes. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59118

--HG--
extra : moz-landing-system : lando
2020-01-08 15:41:42 +00:00
Nicolas Silva
bfa259e505 Bug 1607697 - Box the memory reports in enums. r=Gankro
Clippy warns against it being much larger than the other enum variants.

Differential Revision: https://phabricator.services.mozilla.com/D59117

--HG--
extra : moz-landing-system : lando
2020-01-08 15:41:24 +00:00
Nicolas Silva
00a1d72d5c Bug 1607697 - Pass-by-value clippy lints for some small structures. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59116

--HG--
extra : moz-landing-system : lando
2020-01-08 15:41:12 +00:00
Nicolas Silva
e78fd8f034 Bug 1607697 - Address clippy lints about nested branches. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59115

--HG--
extra : moz-landing-system : lando
2020-01-08 15:40:57 +00:00
Nicolas Silva
889e5a96f2 Bug 1607697 - Address unwrap_or_else(callback) and functions in callback clippy lints. r=Gankro
I don't think it makes much of a difference but clippy is quite vocal about it.

Differential Revision: https://phabricator.services.mozilla.com/D59114

--HG--
extra : moz-landing-system : lando
2020-01-08 15:40:47 +00:00
Nicolas Silva
e766dafdba Bug 1607697 - Allow excessive precision in debug color constants. r=Gankro
Addresses a clippy lint.

Differential Revision: https://phabricator.services.mozilla.com/D59113

--HG--
extra : moz-landing-system : lando
2020-01-08 15:40:35 +00:00
Nicolas Silva
e150242967 Bug 1607697 - Remove leading zeros in dither matrix litterals. r=Gankro
Addresses a clippy lint.

Differential Revision: https://phabricator.services.mozilla.com/D59112

--HG--
extra : moz-landing-system : lando
2020-01-08 15:44:49 +00:00
Nicolas Silva
677406e7b7 Bug 1607697 - Address some clippy lints in WebRender API. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59101

--HG--
extra : moz-landing-system : lando
2020-01-08 15:40:15 +00:00
Nicolas Silva
522199c048 Bug 1607419 - Avoid option.expect(&format in hot code. r=jrmuizel
Easy to miss that the slow formatting code is run unconditionally.
The remaining instances are in recording and startup code.

Differential Revision: https://phabricator.services.mozilla.com/D58920

--HG--
extra : moz-landing-system : lando
2020-01-08 02:53:49 +00:00
Glenn Watson
a93aae0a62 Bug 1606685 - Support empty tiles within compositor surfaces. r=sotaro
This adds support for holes within virtual surfaces. On platforms
that don't use virtual surfaces, this just works by destroying
the tile that is empty so it never gets composited.

Differential Revision: https://phabricator.services.mozilla.com/D59059

--HG--
extra : moz-landing-system : lando
2020-01-08 04:57:31 +00:00
Glenn Watson
74722337a2 Bug 1607352 - Support DirectComposition virtual surface API. r=sotaro
Adds an #ifdef to the DCLayerTree implementation that allows
selecting whether to use the virtual surface API (enabled by
default) or the regular DC surface API.

For now, this is a compile-time switch. As a follow up to this,
we will support both options at runtime (for example, using the
regular surface API for surfaces that have holes or translucency).

Differential Revision: https://phabricator.services.mozilla.com/D58870

--HG--
extra : moz-landing-system : lando
2020-01-07 20:42:58 +00:00
Bert Peers
44e618b772 Bug 1595767 - Don't use rayon for glyph rasterization unless there is a lot of glyphs to rasterize r=nical
Differential Revision: https://phabricator.services.mozilla.com/D57005

--HG--
extra : moz-landing-system : lando
2020-01-07 17:30:14 +00:00
Simon Sapin
bec9b6c938 Bug 1606827 - A corner is not rounded when the radius is zero in either dimension (not necessarily both) r=nical
Differential Revision: https://phabricator.services.mozilla.com/D58615

--HG--
extra : moz-landing-system : lando
2020-01-06 10:23:49 +00:00
Glenn Watson
3aa1137e6f Bug 1604684 - Make opacity a compositor surface property rather than a tile property. r=sotaro
This will allow use of the DirectComposition virtual surface API. If
it turns out that some pages recreate surfaces a lot due to opacity
changing, we can add some extra logic to avoid recreating surfaces
as often, and making use of per-tile opacity in some cases.

Differential Revision: https://phabricator.services.mozilla.com/D57592

--HG--
extra : moz-landing-system : lando
2020-01-06 20:11:21 +00:00
Connor Brewster
7df8b34d1a Bug 1606742 - Support alpha component on svg color matrix filter in WebRender r=nical
Differential Revision: https://phabricator.services.mozilla.com/D58587

--HG--
extra : moz-landing-system : lando
2020-01-06 18:41:55 +00:00
Miko Mynttinen
97c590ed55 Bug 1605380 - Avoid calculating snapped bounds for some display items twice r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D57976

--HG--
extra : moz-landing-system : lando
2019-12-26 13:24:28 +00:00
Kris Taeleman
a49a561af8 Bug 1589669 - Fix snapping and rounding errors causing picture caching invalidation when zoomed in. r=aosmond,botond
* Fix crash due to shift left causing overflow (debug only)
* Remove rounding of scrolling offsets and snap to view space instead of
world space

Differential Revision: https://phabricator.services.mozilla.com/D57017

--HG--
extra : moz-landing-system : lando
2019-12-23 19:23:43 +00:00
Gurzau Raul
5f548f331e Backed out changeset 6493da33ecac (bug 1589669) for failing at test_bug1277814.html on a CLOSED TREE. 2019-12-23 20:27:51 +02:00
Kris Taeleman
c52ca82a75 Bug 1589669 - Fix snapping and rounding errors causing picture caching invalidation when zoomed in. r=aosmond,botond
* Fix crash due to shift left causing overflow (debug only)
* Remove rounding of scrolling offsets and snap to view space instead of
world space

Differential Revision: https://phabricator.services.mozilla.com/D57017

--HG--
extra : moz-landing-system : lando
2019-12-20 17:03:24 +00:00
Narcis Beleuzu
3c49663b7c Backed out changeset c9cbe7b9ad94 (bug 1605380) for WR failures on background-border-collapsed-gradient.html . CLOSED TREE 2019-12-20 20:53:21 +02:00