Commit Graph

1615 Commits

Author SHA1 Message Date
Lee Salzman
ac1f8c5496 Bug 1612941 - WR shader changes to support SWGL instance attribs. r=jrmuizel,gw
Add annotations to vertex shaders so that SWGL can detect when a vertex attribute
is generated by per-instance data rather than per-vertex data.

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

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:16 +00:00
Lee Salzman
1d46e2d87f Bug 1612941 - force immediate upload method for SWGL since PBOs are slower there. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65613

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:18 +00:00
Lee Salzman
dbeeeea309 Bug 1612941 - support variable depth buffer size in WR. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D65602

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:21 +00:00
Lee Salzman
dc05f2690c Bug 1612941 - only upload partial GPU cache rows in WR when possible to minimize memory churn. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D65598

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:23 +00:00
Lee Salzman
306289e41f Bug 1612941 - properly detect GL_ARB_texture_swizzle extension in WR. r=gw,kvark
Differential Revision: https://phabricator.services.mozilla.com/D65596

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:28 +00:00
Lee Salzman
d407780622 Bug 1612941 - make WR report shader name and features in output for interop with SWGL. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65595

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:25 +00:00
Lee Salzman
7b092892fc Bug 1612941 - add SWGL glue to wrench. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65593

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:30 +00:00
Lee Salzman
41602b16e1 Bug 1612941 - add deinit hook to WR Compositor trait. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D65591

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:09 +00:00
shindli
0830b5e7f8 Backed out 12 changesets (bug 1612941) for causing bustages CLOSED TREE
Backed out changeset 29f9f745ff65 (bug 1612941)
Backed out changeset d92e03315f8d (bug 1612941)
Backed out changeset 9b1360daa75a (bug 1612941)
Backed out changeset ad7f43d72b08 (bug 1612941)
Backed out changeset 30b28118362a (bug 1612941)
Backed out changeset 76f80dce8875 (bug 1612941)
Backed out changeset 375896f494ae (bug 1612941)
Backed out changeset bd8ba66dc2ac (bug 1612941)
Backed out changeset 54ec5a6e8e45 (bug 1612941)
Backed out changeset 419105739e53 (bug 1612941)
Backed out changeset c198dedeaa1b (bug 1612941)
Backed out changeset 87ddcdfc5fcf (bug 1612941)
2020-03-11 14:01:26 +02:00
Lee Salzman
2b34a82b49 Bug 1612941 - import glsl-to-cxx and swgl into Gecko tree. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65616

--HG--
extra : moz-landing-system : lando
2020-03-11 11:32:32 +00:00
Lee Salzman
a7cc74fee1 Bug 1612941 - update gleam version to allow implementation of Gl trait. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65615

--HG--
extra : moz-landing-system : lando
2020-03-11 11:32:40 +00:00
Lee Salzman
7805919fc5 Bug 1612941 - WR shader changes to support SWGL instance attribs. r=jrmuizel,gw
Add annotations to vertex shaders so that SWGL can detect when a vertex attribute
is generated by per-instance data rather than per-vertex data.

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

--HG--
extra : moz-landing-system : lando
2020-03-11 11:32:22 +00:00
Lee Salzman
4f9e9c3750 Bug 1612941 - force immediate upload method for SWGL since PBOs are slower there. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65613

--HG--
extra : moz-landing-system : lando
2020-03-11 11:32:30 +00:00
Lee Salzman
dae44fbfc2 Bug 1612941 - support variable depth buffer size in WR. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D65602

--HG--
extra : moz-landing-system : lando
2020-03-11 11:34:35 +00:00
Lee Salzman
02f870d8a8 Bug 1612941 - only upload partial GPU cache rows in WR when possible to minimize memory churn. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D65598

--HG--
extra : moz-landing-system : lando
2020-03-11 11:28:38 +00:00
Lee Salzman
cb4d56df80 Bug 1612941 - properly detect GL_ARB_texture_swizzle extension in WR. r=gw,kvark
Differential Revision: https://phabricator.services.mozilla.com/D65596

--HG--
extra : moz-landing-system : lando
2020-03-11 11:29:24 +00:00
Lee Salzman
9b5568ef68 Bug 1612941 - make WR report shader name and features in output for interop with SWGL. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65595

--HG--
extra : moz-landing-system : lando
2020-03-11 11:24:53 +00:00
Lee Salzman
40944f2575 Bug 1612941 - add SWGL glue to wrench. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65593

--HG--
extra : moz-landing-system : lando
2020-03-11 11:25:16 +00:00
Lee Salzman
463470c4be Bug 1612941 - add deinit hook to WR Compositor trait. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D65591

--HG--
extra : moz-landing-system : lando
2020-03-11 11:46:32 +00:00
shindli
0b1a68a2ad Backed out 2 changesets (bug 1618000) for causing reftest failures in feGaussianBlur-5-ref.svg CLOSED TREE
Backed out changeset a561435c24cf (bug 1618000)
Backed out changeset e720691ccf17 (bug 1618000)
2020-03-11 10:36:47 +02:00
cbrewster
6fb3b6bfc8 Bug 1618000: Part 2: Clamp blur radius based on scale factors r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D65805

--HG--
extra : moz-landing-system : lando
2020-03-10 19:23:58 +00:00
Jeff Muizelaar
712f029470 Bug 1621371 - Update servo-fontconfig-sys to avoid intermittent build errors. r=kvark
The lack of https://github.com/servo/libfontconfig/pull/42 in 4.0.4
broke rust CI

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

--HG--
extra : moz-landing-system : lando
2020-03-10 18:18:29 +00:00
Nicolas Silva
361a30963f Bug 1621212 - Don't default to square texture cache pages when the smallest extent is 32 pixels or less. r=gw
The code that picks the texture cache slab size does not consider snapped extents under 64 pixels for rectangular pages, causing for example a 16x500 request to go into a 512x512 page.
This commit allows very thin requests to get a 64x512 page.

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

--HG--
extra : moz-landing-system : lando
2020-03-10 10:14:27 +00:00
Nicolas Silva
d1c50b456a Bug 1618132 - Avoid redundant hit test tree builds. r=gw
build_frame is called by update_document which calls rebuild_hit_tester if the hit test tree is invalidated. The advantage of doing it there is that it is after the frame has been submitted to the renderer so we are out of the critical path and the work can overlap with draw call submission.

So we don't need to do the work in build_frame, and since we don't currently set the validity flag there we are often re-building the hit test tree a second time after frame building.

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

--HG--
extra : moz-landing-system : lando
2020-03-10 11:03:58 +00:00
Bogdan Tara
db7bc1a140 Backed out changeset a2ddfcc2a7d4 (bug 1618132) for mochitests failures complaining about hittest tests CLOSED TREE 2020-03-10 11:40:43 +02:00
Nicolas Silva
7f63167138 Bug 1618132 - Avoid redundant hit test tree builds. r=gw
build_frame is called by update_document which calls rebuild_hit_tester if the hit test tree is invalidated. The advantage of doing it there is that it is after the frame has been submitted to the renderer so we are out of the critical path and the work can overlap with draw call submission.

So we don't need to do the work in build_frame, and since we don't currently set the validity flag there we are often re-building the hit test tree a second time after frame building.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 02:28:41 +00:00
Glenn Watson
8efc792cc9 Bug 1620147 - Fix virtual surface coords being outside bounds. r=Bert,sotaro
This adds support for tracking and invalidating tiles based on a
movable virtual offset.

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

--HG--
extra : moz-landing-system : lando
2020-03-10 02:17:35 +00:00
Bert Peers
d0ccb302eb Bug 1620642 - reftest-analyzer improvements for analyzing test failures r=jgilbert
Turn the difference checkbox into a radio that adds "heatmap"; it uses
WebGL to show both images, their absolute difference, and a color-coded
max difference.  The quadrants split following the mouse.
This helps to separate large variations (red) from small variations
(green) and helps to compare the images without losing track of where
they are.

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

--HG--
extra : moz-landing-system : lando
2020-03-09 19:45:11 +00:00
Dzmitry Malyshau
0c4b15a728 Bug 1617879 - Rewrite the check for transformed clip intersection with the primitive in WR r=gw
Instead of trying to extract an inner rectangle from a transformed inner rectange,
which by itself doesn't have an obviously "best" solution, we are going to test if the
visibility rect is within the polygon of the projected inner rect.

The test is more precise, could be slightly more heavy, but most importantly - it's correct.

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

--HG--
extra : moz-landing-system : lando
2020-03-09 19:46:35 +00:00
Glenn Watson
35249a411d Bug 1620904 - Restrict picture cache debug rects to tile valid rect. r=nical
This makes the picture cache debug view more represent the amount
of pixels that are being rasterized and composited. It's also a
bit clearer where picture cache boundaries are on some pages.

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

--HG--
extra : moz-landing-system : lando
2020-03-09 15:37:48 +00:00
Nicolas Silva
3c022bc4bb Bug 1580178 - Allow hit-testing without synchronous messaging. r=botond,kats
This patch adds an asynchronous hit tester that can perform hit testing queries without blocking on a synchronous message to the render backend thread, which is often busy building frames. This is done by having a shared immutable hit tester readable by any thread, atomically swapped each time the render backend processes a new scene or frame.
In order to asynchronously hit test without causing race conditions with APZ intenral state, the hit tester has to be built while the APZ lock is held.

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

--HG--
extra : moz-landing-system : lando
2020-03-02 10:27:17 +00:00
Bert Peers
180c84a40e Bug 1618939 - Hit MOZ_CRASH(explicit panic) at gfx/wr/webrender/src/render_task.rs:37 r=gw
Adding a repro-case reftest that asks for a 19996x5000 RenderTask (at
-p1), then fix it in analogy with the clamping to reasonable values that
happens for `NormalBorder`.

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

--HG--
extra : moz-landing-system : lando
2020-03-06 03:48:40 +00:00
Glenn Watson
814194b463 Bug 1579235 - Part 12 - Support native compositor surfaces. r=Bert,sotaro
This patch adds support for external compositor surfaces when
using native compositor mode.

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

--HG--
extra : moz-landing-system : lando
2020-03-05 20:45:17 +00:00
Glenn Watson
36a99a2cba Bug 1579235 - Part 11 - Refactor how external surfaces are composited. r=Bert,sotaro
This patch refactors how external surfaces are stored in the
CompositeState structure. This is primarily to simplify integration
with native compositor mode, but also simplifies the Draw compositor
path.

Previously, the ResolvedExternalSurface struct contained information
that was used to rasterize the external surface (YUV planes etc) and
also the information to composite it (device rect, clip rect, z_id).

Now, ResolvedExternalSurface contains just the information required
to rasterize the external surface, while the compositing information
is handled by adding the external surface as a regular tile. This
makes it possible to unify how external surfaces are drawn, via the
common draw_tile_list method.

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

--HG--
extra : moz-landing-system : lando
2020-03-05 20:45:15 +00:00
Kartikaya Gupta
8ffc35b01e Bug 1619393 - Increase fuzz by one to allow reftest to pass on AppVeyor. r=Bert
Differential Revision: https://phabricator.services.mozilla.com/D65513

--HG--
extra : moz-landing-system : lando
2020-03-05 18:23:38 +00:00
Tim Nguyen
ef0ca57a42 Bug 1616255 - Handle start and end offsets in conic-gradient WR shader. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D65391

--HG--
extra : moz-landing-system : lando
2020-03-05 00:03:05 +00:00
Bert Peers
5f77fad7a4 Bug 1619393 - Reftest improvements for fuzzy tests r=gw
Add support for a `fuzzy-range` keyword in reftest.list.
It is similar to `fuzzy` but it allows multiple pairs of
`max_difference, num_differences` numbers that introduce
multiple buckets of allowed differences.

For example, `fuzzy-range(5,100,20,10)` allows at most
100 pixels with a difference of at most 5, _plus_ an extra
10 pixels at most that have a difference more than 5 but
less than or equal to 20.
The total number of differing pixels allowed is thus 110,
but only if 100 of those differ by <= 5 and the remaining
10 by <= 20.
110 pixels with a difference <= 5 will still fail.
This is intentional to encourage tighter bounds in tests
where many pixels are slightly off and a few outliers are
off by a lot.

The number of parameters is arbitrary; longer lists can
get confusing so this change also introduces optional
support for writing `<=` in front of the max difference
and `*` in front of the max pixel count, eg.
`fuzzy-range(<=5,*100,<=20,*10)` (no spaces).

Any pixels that exceed the highest maximum will fail the
test, similar to `fuzzy`.

Steps tested:
1. the same tests fail in exactly the same way before and after;
2. reordered the `fuzzy` statements for raster_root_A/B/C to no longer
   be sorted by max difference, and verified that the tests pass/fail
   the same way;
   (then sort them again which is easier to understand);
3. tests using the new feature still fail when the ref no longer matches
   (deliberately broke the _ref version and verified test failed);

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

--HG--
extra : moz-landing-system : lando
2020-03-04 23:07:29 +00:00
Glenn Watson
cf6ebbb053 Bug 1579235 - Part 10 - Fix incorrect skipping of composites. r=Bert
Ensure that the image keys and image generations for external
compositor surfaces are included in the composite descriptor,
which is used to determine if a composite is required or can
be skipped.

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

--HG--
extra : moz-landing-system : lando
2020-03-03 23:32:51 +00:00
Jim Blandy
7db1aac145 Bug 1618319: Segregate intern::UpdateList insertions and removals. r=gw
Rather than treating webrender::intern::UpdateList as a sequence of operations,
each of which might be an insertion or a removal, and using a side table to
supply extra data for insertions, it's simpler to segregate insertions and
removals into two separate vectors. This avoids the need for an enum whose
discriminant needs to be checked within the loop, and allows a few loops that
are only looking for one kind of operation to skip over the others entirely.

Ultimately, there should be no change in the order in which operations occur. In
practice, the old UpdateList always held a contiguous run of insertions,
followed by a run of removals (removals are consumed by apply_updates directly
after being generated by end_frame_and_get_pending_updates).

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

--HG--
extra : moz-landing-system : lando
2020-02-27 02:26:09 +00:00
Kartikaya Gupta
691e4ca68d Bug 1613260 - Increase allowed fuzz on new tests so they pass in AppVeyor CI. r=Bert
Differential Revision: https://phabricator.services.mozilla.com/D65164

--HG--
extra : moz-landing-system : lando
2020-03-03 18:03:22 +00:00
Kartikaya Gupta
41606ddbd6 Bug 1619293 - Re-enable rust flags in github CI. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65007

--HG--
extra : moz-landing-system : lando
2020-03-02 23:56:27 +00:00
Bert Peers
447713c3c6 Bug 1613260 - Support per-task scale for local space rasterization r=gw,aosmond
Differential Revision: https://phabricator.services.mozilla.com/D63434

--HG--
extra : moz-landing-system : lando
2020-03-03 00:31:09 +00:00
Glenn Watson
a81677d49e Bug 1579235 - Part 9 - Optimize compositor surface overlays. r=Bert
This patch improves the performance of compositor surfaces in
two ways:

(1) Ignore primitives behind the first compositor surface when
    determining whether a tile needs to be moved to the overlay
    (alpha) pass. This means WR only moves a tile to the alpha
    pass when it has primitives that overlap with the compositor
    surface bounding rect, and are ordered after that compositor
    surface. In practice, this means most tiles are able to
    remain in the fast (opaque) path. Typically, a small number
    of tiles that contain overlay video controls are moved to the
    alpha pass.

(2) Register the opaque compositor surfaces as potential occluders.
    This allows tiles that are completely covered by a compositor
    surface to be removed from the compositor visual tree, which
    helps both the simple and native compositor modes.

Between them, these optimizations typically mean that when watching
video in full-screen, nothing is composited except the video surface
itself, and some small region(s) where video overlay controls are
currently active.

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

--HG--
extra : moz-landing-system : lando
2020-03-02 21:50:25 +00:00
Kartikaya Gupta
c28403de9f Bug 1619265 - Bump rust versions for github CI. r=jrmuizel
The appveyor.yml change bumps it for windows. The macOS worker has the
rust version bumped out-of-band and the change to .taskcluster.yml just
updates the documentation.

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

--HG--
extra : moz-landing-system : lando
2020-03-02 14:57:16 +00:00
Glenn Watson
a3ebba13e7 Bug 1579235 - Part 8 - Remove overlay tiles, they can be alpha tiles instead. r=nical
A previous patch in this series introduced overlay tiles. However,
now that native surfaces exist for for the opaque and alpha tiles
within a slice, we can remove the overlay tiles array and add
these special tiles to the alpha surface.

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

--HG--
extra : moz-landing-system : lando
2020-03-02 10:07:23 +00:00
Glenn Watson
f0a3f65d68 Bug 1579235 - Part 7 - Fix UV rect calculation for external textures. r=Bert
This patch fixes an oversight in part 5 of this patch series that
could result in an incorrect UV rect being used for an external
texture that uses a custom UV rect.

When the texture is an external texture, the UV rect is not known when
the external surface descriptor is created, because external textures
are not resolved until the lock() callback is invoked at the start of
the frame render. To handle this, query the texture resolver for the
UV rect if it's an external texture, otherwise use the default UV rect.

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

--HG--
extra : moz-landing-system : lando
2020-03-01 03:56:02 +00:00
Glenn Watson
b82a921002 Bug 1579235 - Part 6 - Support an opaque/alpha native surface per slice. r=Bert
Previously, a native compositor surface was considered to be
completely opaque, or completely translucent. This is due to
a limitation in how alpha is handled in the DirectComposition
API level.

With this patch, each picture cache slice maintains both an
opaque and translucent native surface handle. Tiles are assigned
to one of those surfaces based on their current opacity.

This is a performance optimization in some cases, since:
 - Even if part of a cache is translucent, opaque tiles can
   still participate in occlusion at the compositor level.
 - If a tile is changing from opaque to translucent, it now
   invalidates only that tile, rather than the entire surface.

The primary benefit of this patch is that it allows compositor
surfaces to be drawn sliced in between the opaque surface and
any overlay / alpha tiles.

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

--HG--
extra : moz-landing-system : lando
2020-03-01 03:55:54 +00:00
cbrewster
eeba610e4b Bug 1596513: Part 3: Ensure drop shadow blur radius does not exceed MAX_BLUR after scale factors are applied r=gfx-reviewers,nical
This was causing one of the large drop-shadow wrench reftests to timeout.
This is only a partial fix, as we should be checking the scale factors earlier on when sanitizing the
filter input. This will ensure we match what the non-WR backend is doing and will prevent overinflation.

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

--HG--
extra : moz-landing-system : lando
2020-02-28 17:39:05 +00:00
cbrewster
eed2534a96 Bug 1596513: Part 1: Take scale factors into account when rendering drop shadows in WebRender r=gfx-reviewers,kvark
Differential Revision: https://phabricator.services.mozilla.com/D63441

--HG--
extra : moz-landing-system : lando
2020-02-28 17:09:44 +00:00
Jonathan Kew
f7cf3de506 Bug 1616995 - patch 2 - Support vertical skew for upright-vertical fonts in webrender. r=lsalzman
Depends on D63893

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

--HG--
extra : moz-landing-system : lando
2020-02-28 15:36:19 +00:00
Hiroyuki Ikezoe
1f0f5d6c7d Bug 1510030 - Implement WebRender backend to run background color animations on the compositor. r=gw,boris
Differential Revision: https://phabricator.services.mozilla.com/D63604

--HG--
extra : moz-landing-system : lando
2020-02-27 08:43:06 +00:00
Hiroyuki Ikezoe
46d186c5a9 Bug 1510030 - Make prepare_prim_for_render private. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63603

--HG--
extra : moz-landing-system : lando
2020-02-27 08:41:41 +00:00
Hiroyuki Ikezoe
e613c8db33 Bug 1510030 - Fix the comment for OpacityBinding::update(). r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63601

--HG--
extra : moz-landing-system : lando
2020-02-27 08:41:28 +00:00
Hiroyuki Ikezoe
945e7ee0c9 Bug 1510030 - Don't return the current opacity value from update_opacity_binding. r=gw
The return value is not used at all.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 08:41:13 +00:00
Bogdan Tara
0ed6b9ff60 Backed out 6 changesets (bug 1510030) for test_running_on_compositor.html failures CLOSED TREE
Backed out changeset a14a131ca731 (bug 1510030)
Backed out changeset a75359516fec (bug 1510030)
Backed out changeset a2be11cbe3f2 (bug 1510030)
Backed out changeset b37ce2b87ac7 (bug 1510030)
Backed out changeset 781cd96dd9a2 (bug 1510030)
Backed out changeset b3dfa17c6305 (bug 1510030)
2020-02-27 06:28:31 +02:00
Hiroyuki Ikezoe
28f8909e89 Bug 1510030 - Implement WebRender backend to run background color animations on the compositor. r=gw,boris
Differential Revision: https://phabricator.services.mozilla.com/D63604

--HG--
extra : moz-landing-system : lando
2020-02-27 03:47:21 +00:00
Hiroyuki Ikezoe
cb65216c78 Bug 1510030 - Make prepare_prim_for_render private. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63603

--HG--
extra : moz-landing-system : lando
2020-02-27 03:47:08 +00:00
Hiroyuki Ikezoe
b04993947c Bug 1510030 - Fix the comment for OpacityBinding::update(). r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63601

--HG--
extra : moz-landing-system : lando
2020-02-27 03:46:50 +00:00
Hiroyuki Ikezoe
cf5b8449b8 Bug 1510030 - Don't return the current opacity value from update_opacity_binding. r=gw
The return value is not used at all.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 03:46:38 +00:00
Bogdan Tara
a6ca41945c Backed out 6 changesets (bug 1510030) for webrender bustages CLOSED TREE
Backed out changeset 28a2fba71977 (bug 1510030)
Backed out changeset 1700b3a416cd (bug 1510030)
Backed out changeset 087518046b0c (bug 1510030)
Backed out changeset 6b3af91a7ce6 (bug 1510030)
Backed out changeset 737f4bc3afd3 (bug 1510030)
Backed out changeset 921116ca67a5 (bug 1510030)
2020-02-27 04:45:04 +02:00
Hiroyuki Ikezoe
16884039b4 Bug 1510030 - Implement WebRender backend to run background color animations on the compositor. r=gw,boris
Differential Revision: https://phabricator.services.mozilla.com/D63604

--HG--
extra : moz-landing-system : lando
2020-02-27 02:05:10 +00:00
Hiroyuki Ikezoe
e82e30903f Bug 1510030 - Make prepare_prim_for_render private. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63603

--HG--
extra : moz-landing-system : lando
2020-02-27 02:04:52 +00:00
Hiroyuki Ikezoe
eaecfc15ba Bug 1510030 - Fix the comment for OpacityBinding::update(). r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63601

--HG--
extra : moz-landing-system : lando
2020-02-27 02:04:39 +00:00
Hiroyuki Ikezoe
b63099423f Bug 1510030 - Don't return the current opacity value from update_opacity_binding. r=gw
The return value is not used at all.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 02:04:21 +00:00
Cosmin Sabou
074eb7c67b Backed out 6 changesets (bug 1510030) for causing build bustages. CLOSED TREE
Backed out changeset 1bf2a082ca62 (bug 1510030)
Backed out changeset 8b0fd12a063b (bug 1510030)
Backed out changeset ec9c6b79ea42 (bug 1510030)
Backed out changeset cd729f8b0220 (bug 1510030)
Backed out changeset c3e6c17ba7b0 (bug 1510030)
Backed out changeset edc3c212be1f (bug 1510030)
2020-02-27 02:50:40 +02:00
Hiroyuki Ikezoe
36b296aee4 Bug 1510030 - Implement WebRender backend to run background color animations on the compositor. r=gw,boris
Differential Revision: https://phabricator.services.mozilla.com/D63604

--HG--
extra : moz-landing-system : lando
2020-02-26 09:51:25 +00:00
Hiroyuki Ikezoe
4dc0f32fb9 Bug 1510030 - Make prepare_prim_for_render private. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63603

--HG--
extra : moz-landing-system : lando
2020-02-26 09:25:43 +00:00
Hiroyuki Ikezoe
2f103360b0 Bug 1510030 - Fix the comment for OpacityBinding::update(). r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63601

--HG--
extra : moz-landing-system : lando
2020-02-26 09:25:31 +00:00
Hiroyuki Ikezoe
1257dfdd43 Bug 1510030 - Don't return the current opacity value from update_opacity_binding. r=gw
The return value is not used at all.

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

--HG--
extra : moz-landing-system : lando
2020-02-26 09:25:13 +00:00
Glenn Watson
b41469cef3 Bug 1579235 - Part 5 - Support compositor surfaces for draw compositor mode. r=Bert
This patch adds support for YUV images to be promoted to compositor
surfaces when using the simple (draw) compositor mode. A follow up
to this will extend support to native compositor implementations.

We rely on only promoting compositor surfaces that are opaque
primitives. With this assumption, the tile(s) that intersect the
compositor surface get a 'cutout' in the location where the
compositor surface exists, allowing that tile to be drawn as
an overlay after the compositor surface.

Tiles are only drawn in overlay mode if there is content that
exists on top of the compositor surface. Otherwise, we can draw
the tiles in the normal fast path before the compositor surface
is drawn.

The patch also introduces a new subpixel AA mode, which allows
subpixel rendering to be enabled conditionally as long as the
text run does not intersect some number of excluded rectangle
regions. In this way, subpixel text remains on most of the page,
but is disabled for elements that are drawn into transparent
regions of the tile where the compositor surface exists.

This allows video playback to be composited directly into the
framebuffer, without invalidation of content tiles, which can
save a significant amount of battery power and improve performance.

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

--HG--
extra : moz-landing-system : lando
2020-02-26 20:41:25 +00:00
Andreea Pavel
1f0dedc29d Backed out 2 changesets (bug 1596513) for webrender wrench bustages on a CLOSED TREE
Backed out changeset 49e61b566da1 (bug 1596513)
Backed out changeset 889cee140af8 (bug 1596513)
2020-02-25 09:37:45 +02:00
cbrewster
049a3f19c3 Bug 1596513: Part 1: Take scale factors into account when rendering drop shadows in WebRender r=gfx-reviewers,kvark
Differential Revision: https://phabricator.services.mozilla.com/D63441

--HG--
extra : moz-landing-system : lando
2020-02-25 06:02:59 +00:00
Miko Mynttinen
5a00de3d66 Bug 1616422 - Part 2: Update display item cache state after call to CreateWebRenderCommands() r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D63276

--HG--
extra : moz-landing-system : lando
2020-02-25 00:08:19 +00:00
Miko Mynttinen
69f1544841 Bug 1616422 - Part 1: Refactor WR display item caching and add additional checks r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D63275

--HG--
extra : moz-landing-system : lando
2020-02-25 00:07:07 +00:00
Daniel Varga
b8dccd6369 Backed out 2 changesets (bug 1616422) for causing webrender-lint-tidy failures
CLOSED TREE

Backed out changeset 3d44ebc7aed0 (bug 1616422)
Backed out changeset d17dbf82cdd0 (bug 1616422)
2020-02-25 01:33:21 +02:00
Miko Mynttinen
2d36bc960e Bug 1616422 - Part 2: Update display item cache state after call to CreateWebRenderCommands() r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D63276

--HG--
extra : moz-landing-system : lando
2020-02-24 23:01:12 +00:00
Miko Mynttinen
e8234095c0 Bug 1616422 - Part 1: Refactor WR display item caching and add additional checks r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D63275

--HG--
extra : moz-landing-system : lando
2020-02-24 23:00:34 +00:00
Jim Blandy
5ea7b962f8 Bug 1617747: Fix doc comments for LinearGradientKey and RadialGradientKey. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63965

--HG--
extra : moz-landing-system : lando
2020-02-24 23:02:55 +00:00
Jamie Nicol
a72934e6f3 Bug 1614679 - Cache compiled shaders to disk even after startup. r=jrmuizel
Previously we only saved shaders to disk on the tenth frame, meaning
shaders compiled afterwards would not be cached and would need to be
recompiled in future runs of the application. This change makes it so
that we cache shaders to disk regardless of which frame they are
compiled in.

We continue to treat only the shaders used within the first ten frames
as the "startup shaders", meaning only those ones will be loaded on
next startup. Caching as many other shaders as possible is still
beneficial, however, as they are loaded on-demand.

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

--HG--
extra : moz-landing-system : lando
2020-02-24 16:38:25 +00:00
Nicolas Silva
6d4a857a53 Bug 1616804 - Update image to 0.23 in WebRender. r=jrmuizel
Original patch by Josh Mattews in https://github.com/servo/webrender/pull/3854

Also run mach vendor rust.

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

--HG--
extra : moz-landing-system : lando
2020-02-24 15:56:22 +00:00
Andrew Osmond
aca7b9ae9c Bug 1617160 - Fold the raster scale and device pixel scale into font transform. r=lsalzman
This patch folds the raster scale and device pixel scale effects into
the font transform, instead of the font size itself. This helps minimize
the quantization effect given the font size is stored as an Au
(resolution of 1/60) instead of an f32, and the shader does not
replicate that effect.

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

--HG--
extra : moz-landing-system : lando
2020-02-24 12:18:45 +00:00
Bogdan Tara
3053d61c49 Backed out changeset 8665af6e62a6 (bug 1600793) on jcristau's request CLOSED TREE 2020-02-24 15:49:47 +02:00
Glenn Watson
6428cbe4fc Bug 1579235 - Part 4 - Refactor more parts of brush yuv shader. r=nical
Move the UV writing function into the shared yuv.glsl include so
that the YUV compositing shader will be able to access it.

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

--HG--
extra : moz-landing-system : lando
2020-02-24 09:10:32 +00:00
Glenn Watson
a78be32d9e Bug 1616657 - Add a workaround for too many segments being generated. r=nical
If only a single segment is produced, there is no benefit to writing
a segment instance array. Instead, just use the main primitive rect
written into the GPU cache.

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

--HG--
extra : moz-landing-system : lando
2020-02-24 09:05:47 +00:00
Sean Feng
9b2bb978fc Bug 1600793 - Make the scrolling input telemetry work for WebRender r=botond,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60046

--HG--
extra : moz-landing-system : lando
2020-02-21 19:41:46 +00:00
Cosmin Sabou
1524391048 Backed out changeset 3b8e7a5e093d (bug 1617160) for webrender build bustages.
CLOSED TREE
2020-02-21 21:23:06 +02:00
Andrew Osmond
6f253ab552 Bug 1617160 - Fold the raster scale and device pixel scale into font transform. r=lsalzman
This patch folds the raster scale and device pixel scale effects into
the font transform, instead of the font size itself. This helps minimize
the quantization effect given the font size is stored as an Au
(resolution of 1/60) instead of an f32, and the shader does not
replicate that effect.

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

--HG--
extra : moz-landing-system : lando
2020-02-21 19:10:58 +00:00
Mihai Alexandru Michis
1cc40c264d Backed out changeset ed0609ec00ba (bug 1616326) for causing wrench bustages.
CLOSED TREE
2020-02-21 18:10:34 +02:00
Alexis Beingessner
b479dedc2a Bug 1616326 - Don't discard mask pixels. r=kvark
It's unclear what this was accomplishing, but it
prevents us from correctly processing the pixels
on the edge of the mask, causing masked content to
peek through. No tests seem to rely on this
discarding behaviour.

Also added a reftest that's fairly fuzzy but should
suffice as a canary for a regression here.

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

--HG--
extra : moz-landing-system : lando
2020-02-21 14:54:38 +00:00
Andrew Osmond
bcfc221e2a Bug 1617156 - Store snapped reference frame offset in prim rect for text to avoid quantization effects. r=lsalzman
Currently we quantize the snapped reference frame relative offset used
in the shader in order to stuff it in our extra integer parameter fields
in the prim header. Since we don't use the prim rect size for anything
in the text shader, this patch just puts it there instead, and avoids
quantizing that.

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

--HG--
extra : moz-landing-system : lando
2020-02-21 14:39:05 +00:00
Glenn Watson
21d016d7a3 Bug 1617083 - Fix race condition with memory pressure events. r=nical
If a memory pressure event arrives _after_ a new scene has
been published that writes persistent targets (i.e. cached
render tasks to the texture cache, or picture cache tiles)
but _before_ the next update/render loop, those targets
will not be updated due to the active_documents list being
cleared at the end of this message. To work around that,
if any of the existing documents have not rendered yet, and
have picture/texture cache targets, force a render so that
those targets are updated.

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

--HG--
extra : moz-landing-system : lando
2020-02-21 08:03:33 +00:00
Miko Mynttinen
3e660d9274 Bug 1616335 - Add a pref to dump the serialized WebRender display list r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D63227

--HG--
extra : moz-landing-system : lando
2020-02-21 01:08:10 +00:00
Csoregi Natalia
a15f9174ec Backed out changeset 3a8d5795c985 (bug 1616335) for tidy bustage on display_list.rs. CLOSED TREE 2020-02-21 01:31:33 +02:00
Miko Mynttinen
94dc6ffded Bug 1616335 - Add a pref to dump the serialized WebRender display list r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D63227

--HG--
extra : moz-landing-system : lando
2020-02-20 23:13:13 +00:00
Miko Mynttinen
17685a756d Bug 1614652 - Wrap BuiltDisplayList and DisplayItemCache in DisplayListWithCache, and unify serialization/deserialization with BuiltDisplayList r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D63229

--HG--
extra : moz-landing-system : lando
2020-02-20 17:19:07 +00:00
Razvan Maries
0f94fbf52d Backed out changeset e177c04d03e0 (bug 1614652) for build bustages. CLOSED TREE 2020-02-20 18:50:03 +02:00
Miko Mynttinen
cf256a1958 Bug 1614652 - Wrap BuiltDisplayList and DisplayItemCache in DisplayListWithCache, and unify serialization/deserialization with BuiltDisplayList r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D63229

--HG--
extra : moz-landing-system : lando
2020-02-20 16:36:55 +00:00
Nicolas Silva
e4cabee633 Bug 1615613 - Make the text fragment shader compatible with the brush infrastructure. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63093

--HG--
extra : moz-landing-system : lando
2020-02-18 13:32:24 +00:00
Nicolas Silva
dddad2c070 Bug 1616594 - Use the scene's frame builder config during frame building. r=gw
The render backend's frame builder config is kept only in order to send updates to the scene builder's frame builder config which will update the scene's in the next transaction. If need be the scene configs can be updated right away by looping over the documents. This avoids confusing bugs where only updating the backend's config affects the visibility pass but not the rest.

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

--HG--
extra : moz-landing-system : lando
2020-02-20 09:06:47 +00:00
Nicolas Silva
8d2152543a Bug 1616592 - Control the batching lookback count via a pref. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63336

--HG--
extra : moz-landing-system : lando
2020-02-20 03:45:17 +00:00
sotaro
35d7986d92 Bug 1595014 - Make dirty rects are invalid when all tiles of retained_tiles are not re-used r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63315

--HG--
extra : moz-landing-system : lando
2020-02-19 22:01:00 +00:00
Pavel Sergeev
81d3bc78a1 Bug 1616364 - initailize thread profiler on Compositor thread only once r=gw
[import_pr] From https://github.com/servo/webrender/pull/3864

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

--HG--
extra : moz-landing-system : lando
2020-02-18 20:22:47 +00:00
Nicolas Silva
86c7dccc83 Bug 1615613 - Encode glyph instance attributes in gpu_types.rs. r=gw
Continuing on the trend of having all of the gpu data encoding in gpu_types.rs so that it is easy to find and to avoid repeating it in batch.rs.

Depends on D62928

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

--HG--
extra : moz-landing-system : lando
2020-02-18 20:24:12 +00:00
Nicolas Silva
d131835edf Bug 1615613 - Wrap image brush user data in a struct. r=gw
A quality-of-life improvement that will make it easier to change the encoding of the user data without having to repeat the correct casting, bit shifting and masking in many places. It also makes it harder to encode the data incorrectly by mistake or forget information.

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

--HG--
extra : moz-landing-system : lando
2020-02-19 12:58:11 +00:00
Nicolas Silva
4942c75d01 Bug 1615613 - Move text snap bias in its own function. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D62926

--HG--
extra : moz-landing-system : lando
2020-02-19 12:58:11 +00:00
Nicolas Silva
2d252c6548 Bug 1615613 - Use write_vertex in the text run shader. r=gw
Baby step towards making text and brush shaders more similar.

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

--HG--
extra : moz-landing-system : lando
2020-02-18 13:23:57 +00:00
Tim Nguyen
8ba933913f Bug 1616106 - Add more tests and reference images for conic-gradient wrench test suite. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D63213

--HG--
rename : gfx/wr/wrench/reftests/gradient/conic-start-angle.yaml => gfx/wr/wrench/reftests/gradient/conic-angle.yaml
extra : moz-landing-system : lando
2020-02-19 11:26:19 +00:00
Jeff Muizelaar
efa59f1e9f Bug 1615694. Declare our render targets up front to ANGLE. r=kvark
This should remove the allocation and copy in
TextureD3D::ensureRenderTarget() in some situations.

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

--HG--
extra : moz-landing-system : lando
2020-02-18 18:33:48 +00:00
Kris Taeleman
45d52aa2d7 Bug 1612620 - Fixing dashed/dotted border issue Android devices with Adreno. r=jnicol
On GLES, the default shader behaviour is to use highp(32bit) integers
in the vertex shader and mediump(16bit) integers in the fragment shader. This
causes issues in the border shader due to bitshifting with 16 bits. The
fix here is to only shift by 8 bits as the data can be represented in a
16bit integer and forcing mediump in the vertex shader as well.

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

--HG--
extra : moz-landing-system : lando
2020-02-18 18:17:27 +00:00
Arthur Iakab
e352a29c70 Backed out changeset 106776ac6c20 (bug 1615694) for tidy build bustages.
CLOSED TREE
2020-02-18 18:27:23 +02:00
Jeff Muizelaar
260a5680ee Bug 1615694. Declare our render targets up front to ANGLE. r=kvark
This should remove the allocation and copy in
TextureD3D::ensureRenderTarget() in some situations.

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

--HG--
extra : moz-landing-system : lando
2020-02-18 14:59:03 +00:00
Glenn Watson
ef367b4472 Bug 1579235 - Part 3 - Abstract some parts of yuv shader logic. r=nical
Factor some parts of the YUV brush shader out into a shared
yuv.glsl shader include.

In future, this shader code will also be referenced by the
composite.glsl shader when using the simple (Draw) compositing
mode, to composite video surfaces directly into the framebuffer
where possible.

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

--HG--
extra : moz-landing-system : lando
2020-02-18 08:21:16 +00:00
Tim Nguyen
f4e89947b9 Bug 1615614 - Make brush_conic_gradient.glsl compile on GLES. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D63118

--HG--
extra : moz-landing-system : lando
2020-02-18 02:55:46 +00:00
Hiroyuki Ikezoe
9af75ef401 Bug 1616140 - Rename append_dynamic_properties to append_dynamic_transform_properties. r=gw
It's only for transforms by APZC.

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

--HG--
extra : moz-landing-system : lando
2020-02-17 23:41:52 +00:00
Glenn Watson
10c752a7ab Bug 1615091 - Fix panic in resolve_split_planes with invalid transform. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D63033

--HG--
extra : moz-landing-system : lando
2020-02-17 14:37:34 +00:00
Bogdan Tara
fa8d9b047d Backed out changeset 80c254f460f5 (bug 1600793) for bustages complaining about webrender_ffi.h CLOSED TREE 2020-02-14 17:54:44 +02:00
Sean Feng
3564b8e803 Bug 1600793 - Make the scrolling input telemetry work for WebRender r=botond,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60046

--HG--
extra : moz-landing-system : lando
2020-02-14 15:26:35 +00:00
Glenn Watson
1b40eb8660 Bug 1615141 - Fix panic in picture cache dependency building. r=Bert
Differential Revision: https://phabricator.services.mozilla.com/D62851

--HG--
extra : moz-landing-system : lando
2020-02-14 00:30:02 +00:00
Andrew Osmond
6e53ff1703 Bug 1529260 - Match shader and CPU glyph rasterization logic for glyphs in local space. r=lsalzman
This patch makes the CPU side incorporate the raster scale when
calculating the subpixel position of a glyph. It also makes the shader
side not include the glyph scale factor when recalculating the glyph
position (since it was not known/used when determining the subpixel
position in the first place). This makes the subpixel position stable
when we transition between Screen and Local(raster_scale) spaces.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 20:40:11 +00:00
Glenn Watson
bc6823edf8 Bug 1579235 - Part 2 - Refactor some of the tile map handling code. r=nical,Bert
Simplify some of the logic related to handling multiple
compositor surfaces in future, specifically:

* Only rebuild the tiles map when the tile rect changes.
* Remove need for tiles_to_draw array.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 18:08:16 +00:00
Glenn Watson
27c1daea33 Bug 1579235 - Part 1 - Support prefer compositor flag in wrench. r=nical
Add support to the yaml reader and writer to be able to specify
that a primitive should set the PREFER_COMPOSITOR_SURFACE flag.

This flag is not currently used, but in future will signal the
picture caching code to promote a primitive to draw on a native
compositor surface where possible.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 10:12:41 +00:00
Tim Nguyen
d0a5c12f8e Bug 1614890 - Implement conic-gradient for WebRender graphics backend. r=gw,nical,emilio
Differential Revision: https://phabricator.services.mozilla.com/D61599

--HG--
extra : moz-landing-system : lando
2020-02-12 18:08:32 +00:00
Mihai Alexandru Michis
2edd3953d8 Backed out changeset 8f55490fb539 (bug 1614890) for causing awsy failures. 2020-02-12 16:40:22 +02:00
Tim Nguyen
91f7b5200e Bug 1614890 - Implement conic-gradient for WebRender graphics backend. r=gw,nical
Differential Revision: https://phabricator.services.mozilla.com/D61599

--HG--
extra : moz-landing-system : lando
2020-02-12 10:21:51 +00:00
Mihai Alexandru Michis
9e905bd7db Backed out changeset 53650b8686a6 (bug 1614890) for causing webrender failures.
CLOSED TREE
2020-02-12 11:24:25 +02:00
Tim Nguyen
02ff3004d9 Bug 1614890 - Implement conic-gradient for WebRender graphics backend. r=gw,nical
Differential Revision: https://phabricator.services.mozilla.com/D61599

--HG--
extra : moz-landing-system : lando
2020-02-12 08:50:06 +00:00
sotaro
f91887c794 Bug 1595014 - Make dirty rects are invalid when old tiles were dropped r=gw
composite_simple() calculates combined dirty rect from all tile's dirty rect. But the combined dirty rect becomes invalid when there is an old tile that was dropped. The dropped tile's dirty rect is not counted in composite_simple().

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

--HG--
extra : moz-landing-system : lando
2020-02-12 05:27:12 +00:00
Glenn Watson
cba3133d84 Bug 1608280 - Part 2 - Use valid rect to reduce pixel costs. r=kvark
With this patch, a minimal valid rect is calculated for each
picture cache tile. This is used to reduce the scissor rect
during tile rasterization, and the draw rect during tile
compositing, whenever there is a partial tile.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 03:21:12 +00:00
Glenn Watson
31585fc1e6 Bug 1608717 - Support per-tile clip (valid) region for native compositor implementations. r=sotaro,mstange
For Draw (non-native) and CA modes, we include the per-tile
valid rect in the clip rect from the surface.

For DC (non-virtual) mode, a per-tile clip rect is set on the
visual for each tile, separate from the overall clip rect that
is set on the surface visual.

For DC (virtual) mode, the Trim API is used to remove pixels
in the virtual tile area that are outside the valid / clipped
region.

Note: Although the valid rect is now applied in the native
compositors, it's currently only based on the overall picture
cache bounding rect. Thus, with this patch there isn't any
noticeable performance improvement. Once this lands and is
working correctly, the follow up patch to calculate a smaller
valid region per-tile is a small amount of work.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 04:27:15 +00:00
Mihai Alexandru Michis
0044ed8301 Backed out changeset 85ffb2302070 (bug 1600793) for causing crashes regarding DeadlockDetector
CLOSED TREE
2020-02-10 22:41:38 +02:00
Sean Feng
7c81402e17 Bug 1600793 - Make the scrolling input telemetry work for WebRender r=botond,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60046

--HG--
extra : moz-landing-system : lando
2020-02-10 17:41:45 +00:00
Bert Peers
0c4b6be182 Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Fourth iteration: improve the detail in reported tile invalidations.

The invalidation enum stores the old and new values for lightweight
types.  For a change in PrimCount, the old and new list of ItemUids is
stored (if logging is enabled); the tool can then diff the two to see
what was added and removed.  To convert that back into friendly strings,
the interning activity is used to build up a map of ItemUid to a string.

A similar special-casing of Content Descriptor will print the item
that's invalidating the tile, plus the origin and/or rectangle.

Also adding zoom and pan command line options both to fix high-DPI
issues and also to allow zooming out far enough to see out-of-viewport
cache lifetime and prefetching due to scrolling.

Also fix a bug where interning updates get lost if more than one update
happens without building a frame: switch to a vector of serialized
updatelists (one per type) instead of allowing just one string (per
type).

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

--HG--
extra : moz-landing-system : lando
2020-02-10 17:35:05 +00:00
Nicolas Silva
21cc009300 Bug 1612988 - Fix warning in a peek_poke test. r=jrmuizel
The test is meant to check that tupes work and a tuple of a single element needs a comma to differentiate it from just being the element.

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

--HG--
extra : moz-landing-system : lando
2020-02-10 14:10:26 +00:00
Glenn Watson
256e1fae96 Bug 1613316 - Fix panic in TileCache::pre_update. r=Bert
Differential Revision: https://phabricator.services.mozilla.com/D61922

--HG--
extra : moz-landing-system : lando
2020-02-06 21:44:44 +00:00
shindli
0c932bb6d4 Backed out changeset f020ddf90621 (bug 1612988) for causing webrender bustage CLOSED TREE 2020-02-05 18:09:15 +02:00
Andrew Osmond
94bd8af992 Bug 1613375 - Always use reference frame origin offset in snapping transforms. r=nical
We incorporate the reference frame origin offset for non-animated
transforms, but forgot for animated transforms. Since the offset itself
is not animated, we should still incorporate it into the snapping
transform.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 15:42:20 +00:00
Nicolas Silva
e584e41b84 Bug 1612988 - Fix warning in a peek_poke test. r=jrmuizel
The test is meant to check that tupes work and a tuple of a single element needs a comma to differentiate it from just being the element.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 15:10:16 +00:00
Nicolas Silva
2c4937a4cf Bug 1612437 - Remove ipc-channel from WebRender. r=gw
Original patch from Josh Mattews

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

--HG--
extra : moz-landing-system : lando
2020-02-05 11:09:43 +00:00
Nicolas Silva
4269e36963 Bug 1613167 - Enable/Disable rayon in WebRender via pref. r=gw
We need a way to switch it on and off to compare the performance and power usage of various test cases.
The new pref is "webrender.enable-multithreading" and does not require a restart.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 09:51:14 +00:00
Bert Peers
b2596b3344 Bug 1599327 - Use cluster scrollbar flags to select picture cache tile size. r=gw
(cherry picked from commit 348b45266ac2c2c65dcc26705dc7cf144f5e0051)

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

--HG--
extra : moz-landing-system : lando
2020-02-05 07:39:42 +00:00
Andrew Osmond
c3d9e31934 Bug 1611601 - Stop snapping when calculating uv rects on the CPU side. r=gw
In bug 1574493, we moved most snapping to scene building and a minority
to frame building. No snapping is done in the shader. However there was
some left over code that still tried to replicate the past behaviour and
this caused wobbling during the rendering. This patch removes the extra
snapping on the CPU side and trusts scene/frame building to do the job.

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

--HG--
extra : moz-landing-system : lando
2020-02-04 19:06:01 +00:00
Lee Salzman
5b627ad6ad Bug 1612973 - allow opaque images to use the fast image shader. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D61508

--HG--
extra : moz-landing-system : lando
2020-02-04 09:14:52 +00:00
Glenn Watson
adbb5ec13d Bug 1601865 - Fix scrollbar cache slices having extra primitives. r=nical
There's two potential cases handled by this patch:

(1) A scrollbar container followed by another scrollbar container.
    In this case, we need to ensure these are placed into separate
    clusters, even though the cluster flags otherwise match, to
    ensure that slice creation will see the two clusters.

(2) If a fixed position scroll root trails a scrollbar container.
    In this case, ensure that a scrollbar contains marks the
    cluster flags to create a slice straight after the scrollbar,
    to avoid other primitives with the same scroll root sneaking
    into the scrollbar container.

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

--HG--
extra : moz-landing-system : lando
2020-02-04 09:21:16 +00:00
Glenn Watson
9b0c2f7a0e Bug 1608280 - Part 1 - Add a valid_rect to picture cache and composite tiles. r=mstange
This patch introduces a per-tile valid rect. In the initial implementation,
this only uses the bounds of the overall picture cache bounding rect. The
next part of this patch will make use of true per-tile valid regions, to
improve performance where there are holes in a single cache slice.

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

--HG--
extra : moz-landing-system : lando
2020-02-03 23:16:54 +00:00
Jim Blandy
2436afd008 Bug 1571974: Simplify orientation handling in line decoration shaders. r=kvark
We want to use the same line decoration (dashed, dotted, wavy) shader code for
both horizontal and vertical lines, so it makes sense for them to use a
coordinate system that has been rotated (transposed, actually) so that .x always
runs parallel to the line being decorated, and .y is always perpendicular.

Before this patch, we passed the orientation enum as a vertex attribute, used a
switch to swap coordinates in the vertex shader, and then swapped them again in
the fragment shader.

This patch trades the orientation for a f32 'axis select' vertex attribute, and
uses `mix` to swap them in the vertex shader. Then no consideration is necessary
in the fragment shader: the vLocalPos varying is already in the appropriate form.

Since get_line_decoration_sizes is already thinking in terms of line-parallel
coordinates, it might seem like a good idea for decoration jobs to simply use
line-parallel coordinates throughout. However, this actually results in more
swapping and opportunities for confusion: much of the CPU work is concerned with
the rectangle the decoration's mask occupies in the texture cache, which is
axis-aligned.

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

--HG--
extra : rebase_source : 8dcd8455c664067dd25f583c944d611a35c25e79
extra : source : dfb21632ea198c1acdc6a34ee08113d516f666d5
2020-01-24 21:46:56 +00:00
Jim Blandy
3e1f7b939b Bug 1571974: Make prim_store::get_line_decoration_sizes return an oriented LayoutSize. r=kvark
Without this change, get_line_decoration_sizes returns an (inline_size,
block_size) pair, where inline_size is parallel to the line being decorated, and
block_size perpendicular. However, these values are generally used as the
dimensions of an axis-aligned bounding box for the line, not as specific
parameters to the rendering process, so it makes sense to arrange them into a
LayoutSize value in this function, since it is already taking the orientation
into account anyway.

The caller, SceneBuilder::add_line, then doesn't need to swap the components,
and the adjustment of the clipping rectangle to avoid partial dots looks a bit
more natural: widths with widths, heights with heights.

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

--HG--
extra : rebase_source : 093d572a7a35bddc6e070fc08d511f7f164a4d89
extra : source : 3549dd471446c291864822736f4587c81741cd56
2020-02-03 09:31:22 +00:00
Oana Pop Rus
96b8905f87 Backed out 2 changesets (bug 1571974) for turning bug 1518179 into perma bc failures. on a CLOSED TREE
Backed out changeset dfb21632ea19 (bug 1571974)
Backed out changeset 3549dd471446 (bug 1571974)
2020-02-03 22:00:29 +02:00
Jim Blandy
279cadb72a Bug 1571974: Simplify orientation handling in line decoration shaders. r=kvark
We want to use the same line decoration (dashed, dotted, wavy) shader code for
both horizontal and vertical lines, so it makes sense for them to use a
coordinate system that has been rotated (transposed, actually) so that .x always
runs parallel to the line being decorated, and .y is always perpendicular.

Before this patch, we passed the orientation enum as a vertex attribute, used a
switch to swap coordinates in the vertex shader, and then swapped them again in
the fragment shader.

This patch trades the orientation for a f32 'axis select' vertex attribute, and
uses `mix` to swap them in the vertex shader. Then no consideration is necessary
in the fragment shader: the vLocalPos varying is already in the appropriate form.

Since get_line_decoration_sizes is already thinking in terms of line-parallel
coordinates, it might seem like a good idea for decoration jobs to simply use
line-parallel coordinates throughout. However, this actually results in more
swapping and opportunities for confusion: much of the CPU work is concerned with
the rectangle the decoration's mask occupies in the texture cache, which is
axis-aligned.

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

--HG--
extra : moz-landing-system : lando
2020-01-24 21:46:56 +00:00
Jim Blandy
b524ca8410 Bug 1571974: Make prim_store::get_line_decoration_sizes return an oriented LayoutSize. r=kvark
Without this change, get_line_decoration_sizes returns an (inline_size,
block_size) pair, where inline_size is parallel to the line being decorated, and
block_size perpendicular. However, these values are generally used as the
dimensions of an axis-aligned bounding box for the line, not as specific
parameters to the rendering process, so it makes sense to arrange them into a
LayoutSize value in this function, since it is already taking the orientation
into account anyway.

The caller, SceneBuilder::add_line, then doesn't need to swap the components,
and the adjustment of the clipping rectangle to avoid partial dots looks a bit
more natural: widths with widths, heights with heights.

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

--HG--
extra : moz-landing-system : lando
2020-02-03 09:31:22 +00:00
Glenn Watson
05a7f239ed Bug 1606251 - Fix invalidation for elements with inflation factors. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D61261

--HG--
extra : moz-landing-system : lando
2020-01-30 09:44:45 +00:00
Nicolas Silva
2a19b8ea5d Bug 1611948 - Rename ClipScrollTree into SpatialTree. r=gw
There is nothing clipping related in there anymore.

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

--HG--
rename : gfx/wr/webrender/src/clip_scroll_tree.rs => gfx/wr/webrender/src/spatial_tree.rs
extra : moz-landing-system : lando
2020-01-29 10:43:20 +00:00
Bert Peers
123e2ce473 Bug 1605283 - Improve support for invalidation debugging and testing r=nataliaCs
Differential Revision: https://phabricator.services.mozilla.com/D61207

--HG--
extra : moz-landing-system : lando
2020-01-29 05:21:52 +00:00
Bert Peers
05e00eed63 Bug 1605283 - Improve support for invalidation debugging and testing r=gw a=reland CLOSED TREE
Third iteration:

Fix broken scrolling (and incorrect positioning of quad tree lines) by
serializing the SpaceMapper(-transform) from take_context, and using it
to transform the primitive rects (instead of the previous translation
based on unclipped.origin);
Note: this is done at visualization time and not at export time to
distinguish actually moving elements from merely-scrolling ones.

Serialize the entire UpdateList, so we get the data (Keys) that's being
added; add it to the overview;

Move the static CSS code into tilecache_base.css; add this and the .js
file to the binary, write them as part of output (instead of manual
copy); clean up CSS a bit;

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

--HG--
extra : source : 535ae1d4818a3f0af64d61846035135751352bd1
extra : histedit_source : bf9a8f830ec7db4c2d1fcb6deaaf72949d6b69ed
2020-01-28 20:05:38 +00:00
Csoregi Natalia
25b1fb82cf Backed out changeset 535ae1d4818a (bug 1605283) for cargo related bustage. CLOSED TREE 2020-01-28 22:56:27 +02:00
Bert Peers
cd0e366e52 Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Third iteration:

Fix broken scrolling (and incorrect positioning of quad tree lines) by
serializing the SpaceMapper(-transform) from take_context, and using it
to transform the primitive rects (instead of the previous translation
based on unclipped.origin);
Note: this is done at visualization time and not at export time to
distinguish actually moving elements from merely-scrolling ones.

Serialize the entire UpdateList, so we get the data (Keys) that's being
added; add it to the overview;

Move the static CSS code into tilecache_base.css; add this and the .js
file to the binary, write them as part of output (instead of manual
copy); clean up CSS a bit;

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

--HG--
extra : moz-landing-system : lando
2020-01-28 20:05:38 +00:00
Miko Mynttinen
99dc805fb4 Bug 1558926 - Part 5: Store a reference to cached display item data in DisplayItemRef
Differential Revision: https://phabricator.services.mozilla.com/D60761

--HG--
extra : moz-landing-system : lando
2020-01-27 14:19:50 +00:00
Miko Mynttinen
f2d9974935 Bug 1558926 - Part 4: Avoid display list updates for removed pipelines
Differential Revision: https://phabricator.services.mozilla.com/D60760

--HG--
extra : moz-landing-system : lando
2020-01-27 14:19:17 +00:00
Miko Mynttinen
d889583615 Bug 1558926 - Part 3: Add support for additional WebRender display list data
Differential Revision: https://phabricator.services.mozilla.com/D60759

--HG--
extra : moz-landing-system : lando
2020-01-27 14:18:49 +00:00
Miko Mynttinen
5c231763e7 Bug 1558926 - Part 1: Add data structures and pref for display item caching r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D50221

--HG--
extra : moz-landing-system : lando
2020-01-27 14:17:43 +00:00
Jim Blandy
c86b4ea822 Bug 1571974: Implement Debug for render_target::LineDecorationJob. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60924

--HG--
extra : moz-landing-system : lando
2020-01-24 15:42:04 +00:00
Brindusan Cristian
5ca7181fab Backed out 5 changesets (bug 1558926) for WebRender build bustages. CLOSED TREE
Backed out changeset 974bcab6b1bf (bug 1558926)
Backed out changeset 1865e6d29dcf (bug 1558926)
Backed out changeset 92b415dac733 (bug 1558926)
Backed out changeset 30481c41873a (bug 1558926)
Backed out changeset a4d9a1af297a (bug 1558926)
2020-01-24 20:42:16 +02:00
Miko Mynttinen
c210c95ca3 Bug 1558926 - Part 5: Store a reference to cached display item data in DisplayItemRef
Depends on D60760

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

--HG--
extra : moz-landing-system : lando
2020-01-22 22:19:49 +00:00
Miko Mynttinen
64997c1922 Bug 1558926 - Part 4: Avoid display list updates for removed pipelines
Depends on D60759

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

--HG--
extra : moz-landing-system : lando
2020-01-22 22:19:08 +00:00
Miko Mynttinen
b16cae3e0b Bug 1558926 - Part 3: Add support for additional WebRender display list data
Depends on D60756

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

--HG--
extra : moz-landing-system : lando
2020-01-22 22:43:59 +00:00
Miko Mynttinen
e9f5497f95 Bug 1558926 - Part 1: Add data structures and pref for display item caching r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D50221

--HG--
extra : moz-landing-system : lando
2020-01-22 22:17:18 +00:00
Bert Peers
6ac6d71555 Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-24 07:26:32 +00:00
Glenn Watson
a688008906 Bug 1611331 - Tidy up rect field naming in picture cache code. r=Bert
Differential Revision: https://phabricator.services.mozilla.com/D60921

--HG--
extra : moz-landing-system : lando
2020-01-24 03:24:35 +00:00
sotaro
56b30bd8c4 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 23:52:05 +00:00
Andreea Pavel
f0fa29abdf Backed out changeset 77d7f22c81c4 (bug 1605283) for wrench build bustages on a CLOSED TREE 2020-01-24 01:19:22 +02:00
Nicolas Silva
ea36628e1e Bug 1611176 - Avoid expensive memmoves when adding render tasks. r=gw
On pages with many render tasks (typically a lot of text shadows), we spend a lot of time moving RenderTask which is a fairly large struct into the render graph's buffer. This patch avoids it by using the VecHelper trick of allocaitng space before initializing the value. Some RenderTask::new_* methods which take the render task graph in parameter were modified to add the task and return the task ID to work around borrow-checking restriction.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 19:26:13 +00:00
Bert Peers
2d5981811a Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 22:20:47 +00:00
Nicolas Silva
cca4fcdf86 Bug 1606771 - Add a reftest. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D59901

--HG--
extra : moz-landing-system : lando
2020-01-23 14:20:27 +00:00
Nicolas Silva
0f0223fc9b Bug 1606771 - Fix border image repetition computation. r=gw
The computation of the repetition depends on the aspect ratio of the segment's uv rectangle, which was previously represented by the dx/dy variables in the shader. These were mistakenly computing the ratio of the normalized uvs within the primitive's total uv rect, which was incorrect since the normalization introduces a non-uniform scale.
This patch fixes it by taking the uv size in device pixels instead of the the normalized textel rect. dx and dy are also renamed into segment_uv_size which is a more informative name.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 14:24:57 +00:00
Nicolas Silva
512f63684e Bug 1606771 - Fix the middle area of border-image nine-patches. r=gw
Unlike the border areas that only nead their own dimensions, the middle area of a border-image determines its repetition parameter based on the size of the borders. A new flag is provided for the brush_image shader to know whether to use the segment's own rect or look at the borders when computing the pattern's size.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 14:26:32 +00:00
Nicolas Silva
725d18b7cb Bug 1606771 - Implement border-image-repeat: round in WebRender. r=jrmuizel,kvark
border-image-repeat: Round is equivalent to Repeat with the pattern size adjusted to fill the area with a whole number of repetitions. This is done by adjusting the segment's stretch_size in the shader so that it fits a whole number of times in the segment's size.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 14:24:11 +00:00
Nicolas Silva
7c24851526 Bug 1608156 - Fix border-image-repeat: repeat in WebRender. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59356

--HG--
extra : moz-landing-system : lando
2020-01-23 14:24:11 +00:00
Mihai Alexandru Michis
d8a8849254 Backed out changeset f3b490c076d6 (bug 1602643) for causing bustages regarding CompositorKindChanged
CLOSED TREE
2020-01-23 16:27:33 +02:00
sotaro
7afb826ef9 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 04:37:28 +00:00
Daniel Varga
c9be72d45a Backed out changeset 7ed018d13880 (bug 1605283) for causing build bustage with could not compile webrender error.
CLOSED TREE
2020-01-23 08:46:54 +02:00
Bert Peers
66117dbb5f Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 06:22:26 +00:00
Ciure Andrei
6ee379ce4c Backed out changeset 2e04c320ad23 (bug 1605283) for causing build bustages CLOSED TREE 2020-01-23 04:28:44 +02:00
Bert Peers
583661abdb Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 00:12:13 +00:00
Jeff Muizelaar
cce8fe4d25 Bug 1610949 - Only use WS_EX_NOREDIRECTIONBITMAP when using DirectComposition. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D60744

--HG--
extra : moz-landing-system : lando
2020-01-22 21:23:35 +00:00
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
Miko Mynttinen
94be71f287 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-20 15:41:06 +00:00
dev
7e10ffb9c9 Bug 1604827 - Workaround for stale tile content in native compositor mode. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D57711

--HG--
extra : moz-landing-system : lando
2019-12-19 01:38:34 +00:00
Dzmitry Malyshau
606961d7d0 Bug 1604664 - WR force program rebinding after blend changes r=gw
Differential Revision: https://phabricator.services.mozilla.com/D57633

--HG--
extra : moz-landing-system : lando
2019-12-18 23:26:39 +00:00
Andrew McCreight
d1d5f1b27f Bug 1604689 - Fix 'identfiers' typos. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D57595

--HG--
extra : moz-landing-system : lando
2019-12-18 04:35:04 +00:00
Glenn Watson
3aeeba2db2 Bug 1604383 - Refactor the Compositor trait to allow support for DC virtual surface API. r=mstange,sotaro
Differential Revision: https://phabricator.services.mozilla.com/D57415

--HG--
extra : moz-landing-system : lando
2019-12-17 21:44:03 +00:00
Glenn Watson
2299ed8e69 Bug 1604625 - Add nightly config value to enable GL error checking. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D57549

--HG--
extra : moz-landing-system : lando
2019-12-17 21:51:30 +00:00
Jamie Nicol
b426c415ce Bug 1598380 - Use single PBO per texture for uploads. r=kvark
Uploading texture data is showing up frequently in profiles on Adreno devices,
especially when zooming on a text-heavy page. Specifically, the time is spent in
glMapBufferRange and glBufferSubData, most likely when internally allocating the
buffer before transferring data in to it.

Currently, we are creating a new PBO, by calling glBufferData(), for each
individual upload region. This change makes it so that we calculate the required
size for all upload regions to a texture, then create single a PBO of the
required size. The entire buffer is then mapped only once, and each individual
upload chunk is written to it. This can require the driver to allocate a large
buffer, sometimes multiple megabytes in size. However, it handles this case much
better than allocating tens or even hundreds of smaller buffers.

An upload chunk may require more space in a PBO than the original CPU-side
buffer, so that the data is aligned correctly for performance or correctness
reasons. Therefore it is the caller of Device.upload_texture()'s responsibility
to call a new function, Device.required_upload_size(), to calculate the required
size beforehand.

On AMD Macs, there is a bug where PBO uploads from a non-zero offset can
fail. See bug 1603783. Therefore this patch preserves the current behaviour on
AMD Mac, reallocating a new PBO for each upload, therefore ensuring the offset
is always zero.

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

--HG--
extra : moz-landing-system : lando
2019-12-17 19:07:12 +00:00
Jonathan Kew
283ad921b7 Bug 1600470 - Reduce the emboldening strength used for synthetic-bold faces with FreeType. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D57246

--HG--
extra : moz-landing-system : lando
2019-12-17 15:51:57 +00:00
Oana Pop Rus
c875c00ad0 Backed out changeset bf28a7e8a8a4 (bug 1600470) for wrench bustages on a CLOSED TREE 2019-12-16 22:52:07 +02:00
Jonathan Kew
863bbe2172 Bug 1600470 - Reduce the emboldening strength used for synthetic-bold faces with FreeType. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D57246

--HG--
extra : moz-landing-system : lando
2019-12-16 14:40:21 +00:00
Nicolas Silva
6b583d1f5e Bug 1595768 - Keep empty items in the texture cache. r=gw
Adds a notion of empty cache items in the texture cache, that are not uploaded into textures but have a cache entry and expire like other types of entries. The motivation for this is to avoid continuously requesting invalid glyphs to be re-rasterized. Currently if a page contains invalid glyphs we gracefully fail to reasterize it but since we don't keep a trace of it in the cache it appears new each frame which cause us to schedule work on the rayon thread pool every frame at great costs.

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

--HG--
extra : moz-landing-system : lando
2019-12-13 04:55:38 +00:00
Cosmin Sabou
74d455b647 Backed out changeset 3f9482614123 (bug 1598380) as requested by jnicol for causing a regression.
--HG--
extra : rebase_source : 6771fa1e244d477db2d0f20bd353ec9fac9f7650
2019-12-12 20:37:30 +02:00
Nicolas Silva
a89eabb985 Bug 1602458 - Prevent recycled hash maps from growing indefinitely. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D56560

--HG--
extra : moz-landing-system : lando
2019-12-12 09:10:20 +00:00
Nicolas Silva
de112b02f1 Bug 1602520 - Reduce the amount of vector allocations associated with ClipChainStack. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D56426

--HG--
extra : moz-landing-system : lando
2019-12-12 09:14:22 +00:00
Nicolas Silva
0d845f32b4 Bug 1602458 - Avoid unnecessary vector allocations when splitting the tile cache. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D56417

--HG--
extra : moz-landing-system : lando
2019-12-12 09:15:02 +00:00
Nicolas Silva
d5dd1cf42e Bug 1602458 - Recycle some hash map allocations after scene swap. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D56409

--HG--
extra : moz-landing-system : lando
2019-12-12 09:15:02 +00:00
Nicolas Silva
fabe68ee99 Bug 1602458 - Avoid reallocating the tile compare cache each rame. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D56408

--HG--
extra : moz-landing-system : lando
2019-12-12 09:10:11 +00:00