Граф коммитов

1460 Коммитов

Автор SHA1 Сообщение Дата
Kartikaya Gupta cd40821489 Bug 1511042 - Back out some commits from bug 1503447 for introducing correctness and perf regressions. r=backout
This backs out hg commits 1e214baf8fc1, 7d4adeee5236, and f5ffebdcc014.
2018-11-29 14:24:25 -05:00
Nicolas Silva 9f96be2f26 bug 1510447 - Fix a blob image key leak. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D13262

--HG--
extra : source : a58f38fb47f3f436584a816ccbbc192ae9684d02
extra : intermediate-source : 6cca1b66a9dd1951abd51f6c3bf588a2ae46934c
2018-11-28 16:55:10 +01:00
Bogdan Tara fd7ba25ff9 Backed out changeset 848f4907fb07 (bug 1510447) for failures on 136/289480.html CLOSED TREE 2018-11-28 23:21:16 +02:00
Nicolas Silva 36ee7b97d0 bug 1510447 - Fix a blob image key leak. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D13262

--HG--
extra : moz-landing-system : lando
2018-11-28 16:16:29 +00:00
Dzmitry Malyshau 54ba2010c1 Bug 1503447 - Always use zero origin for WR reference frames and stacking contexts r=kats
Previously, WebRender was getting a rectangle for reference frames
and stacking contexts, and it had to carefully treat the origin of this rectange:
  - by offseting all the items in a stacking context
  - by negatively compensating the sticky frame scroll port according to the
parent reference frame origin

With this change, we stop providing any non-zero origins. Instead we accomplish
the same behavior using existing API primitives, such as reference frames:
  1. when a stacking context has an origin, we push another reference frame for it
  2. when computing the sticky frame scroll port, we take this origin into account

This slightly simplifies Gecko-WR API, but more importantly it would allow WR to
get rid of this logic (of handling origins), which in turn would allow to switch
the reference frames from push()/pop() model to just define(), like we do for
scroll/sticky frames already.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 15:32:41 +00:00
Ehsan Akhgari ca162bee20 Bug 1508472 - Part 4: Fourth batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal.  I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 09:16:55 +00:00
Jonathan Watt 4c1b207664 Bug 1510116. Fix some unified build issues in layout code. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D13039

--HG--
extra : rebase_source : f0b6516484ed97ed52b92e04617f89e4ee8189ff
2018-11-12 22:20:52 +00:00
Matt Woodrow 2b373f4019 Bug 1510899 - Try catch up composites with WR. r=jrmuizel,sotaro
MozReview-Commit-ID: LXIpsvZZ96U

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

--HG--
extra : moz-landing-system : lando
2018-11-29 18:30:06 +00:00
Csoregi Natalia d35199ef15 Merge inbound to mozilla-central. a=merge 2018-11-26 11:47:15 +02:00
sotaro 8fb8522b22 Bug 1490117 - Rollback WrEpoch if TransactionBuilder does not have ResourceUpdates in RecvEmptyTransaction() r=mattwoodrow 2018-11-26 16:08:49 +09:00
Matt Woodrow 43bc692c89 Bug 1509226 - Avoid allocations to serialize clips. r=jrmuizel
MozReview-Commit-ID: CetmS5cZCMP

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

--HG--
extra : moz-landing-system : lando
2018-11-26 02:32:15 +00:00
Nicolas Silva 2fa6078f12 Bug 1494403 - Separate the Blob related apis. r=jrmuizel
This commit contains the Gecko-side changes from WebRender PR#3277:
 - Dedicated DirtyRect type.
 - Separate the blob image APIs from regular image ones.

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

--HG--
extra : moz-landing-system : lando
2018-11-23 23:33:49 +00:00
Jeff Muizelaar b376bd0e9c Bug 1509554. Define WrClipId in bindings.rs. r=kats
This lets us avoid having to put usize in the exported signatures from bindings.rs
It also avoids a heap allocation when defining a clip chain.

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

--HG--
extra : moz-landing-system : lando
2018-11-23 19:49:56 +00:00
sotaro 8b972d1dc6 Bug 1508526 - Remove unnecessary ScheduleGenerateFrame() call in WebRenderBridgeParent::RecvUpdateResources() r=aosmond 2018-11-22 17:24:50 +09:00
Coroiu Cristina b27585482c Merge inbound to mozilla-central a=merge 2018-11-21 23:43:13 +02:00
Jeff Muizelaar c80ead4e70 Bug 1508908. Remove mEventRegions from WebRenderLayerScrollData. r=kats
It's unused.

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

--HG--
extra : moz-landing-system : lando
2018-11-21 11:55:46 +00:00
Matt Woodrow 3e879986fc Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
MozReview-Commit-ID: 84SjN1RvvAA

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

--HG--
extra : rebase_source : 80e3342280723a2404c6aad7d26b1327906c9e4a
2018-11-16 15:13:56 +13:00
Jeff Muizelaar 3654ccade6 Bug 1507686 - Record LayerManager URL for each paint so that we can correlate it with slow paints. r=mattwoodrow
MozReview-Commit-ID: 2RUWkboAOJz

--HG--
extra : rebase_source : 397fd432b4e9cba37a1ebca9dcc5a949f290c9d0
2018-11-19 20:55:28 +13:00
Andrew Osmond 25360a73c4 Bug 1504699 - Part 6. Add lifetime management for recycled frames with WebRender. r=nical
Here we make use of the parts added in parts 1 and 2 to hold onto
recycled surfaces for as long as necessary to prevent the animated image
decoder from reusing them until WebRender is done with them.

Differential Revision: https://phabricator.services.mozilla.com/D10902
2018-11-21 06:47:24 -05:00
Andrew Osmond 8c7a309965 Bug 1504699 - Part 2. Add plumbing to WebRenderLayerManager to pass on frame released messages. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D10898
2018-11-21 06:47:06 -05:00
Andrew Osmond c15ceec38e Bug 1504699 - Part 1. Add signalling for WebRender to let owning process that surface may be recycled. r=nical
When we replace the external image ID an image key points to, the
previous external image ID may still be used by WebRender. We currently
wait until the frame has been rendered to release our hold on said
surface. With this patch, we will communicate the image key and previous
external image ID pairing to the owning process when releasing to let it
know that it can reuse it (e.g. for an animated image). Additionally we
now use the new textures updated checkpoint which should happen sooner
than the frame rendered checkpoint, but guarantee that WebRender is no
longer using the old external image ID.

Differential Revision: https://phabricator.services.mozilla.com/D10897
2018-11-21 06:47:06 -05:00
sotaro a06eae528e Bug 1508117 - Fix mAsyncImageManager->AddPipeline() calls in WebRenderBridgeParent::UpdateWebRender() r=mattwoodrow 2018-11-19 12:15:55 +09:00
Dzmitry Malyshau f076ce43c0 Bug 1503447 - Remove the clip->ASR == item->ASR hacky code path r=kats
Previously, WebRender ignored clip_node_id on the clip/scroll stack
when pushing clips or reference frames. This got fixed to be more consistent in:
https://github.com/servo/webrender/pull/3315

Now Gecko can use the clip chains generated for display items naturally,
instead of smuggling the last clip through the scroll_node_id, which is what
was happening in this hacky code branch being removed.

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

--HG--
extra : moz-landing-system : lando
2018-11-17 15:44:40 +00:00
Andreea Pavel 72b0594cb8 Merge mozilla-inbound to mozilla-central. a=merge 2018-11-17 13:27:24 +02:00
sotaro e339c43bdb Bug 1506767 - Remove redundant iteration in CompositorBridgeParent::NotifyPipelineRendered() r=mattwoodrow 2018-11-17 12:27:54 +09:00
Gurzau Raul 6d17917258 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-11-16 19:54:35 +02:00
Nicolas Silva eef47a1b87 Bug 1507140 - Gecko changes for WebRender PR #3291. r=kats
Move wr::DeviceUint* to wr::DeviceInt*.

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

--HG--
extra : moz-landing-system : lando
2018-11-16 17:13:26 +00:00
Gurzau Raul 0e822b012b Merge inbound to mozilla-central. a=merge 2018-11-16 19:08:39 +02:00
sotaro 068f2dd418 Bug 1506762 - Store wr::WebRenderPipelineInfo directly in AsyncImagePipelineManager::PipelineUpdates r=mattwoodrow 2018-11-16 22:01:01 +09:00
Jeff Muizelaar 702974b3d8 Bug 1505858. Record full paint time before waiting for composite in telemetry. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D11953

--HG--
extra : moz-landing-system : lando
2018-11-16 05:26:10 +00:00
Matt Woodrow f1ac2eb3c8 Bug 1503405 - Add telemetry for CONTENT_FRAME_WITH with texture upload excluded. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D11971

--HG--
extra : moz-landing-system : lando
2018-11-15 23:09:05 +00:00
Narcis Beleuzu 944d8914d9 Backed out changeset 17d1440b76b1 (bug 1505858) for bustages on WebRenderBridgeParent.cpp 2018-11-16 01:29:00 +02:00
Jeff Muizelaar 7a069dd660 Bug 1505858. Record full paint time before waiting for composite in telemetry. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D11953

--HG--
extra : moz-landing-system : lando
2018-11-15 16:43:55 +00:00
Matt Woodrow 2ce22ca25d Bug 1506748 - Record profiler markers for scene building and blob rasterization. r=mstange
MozReview-Commit-ID: IA2ooFX5jtA

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

--HG--
extra : moz-landing-system : lando
2018-11-14 23:21:23 +00:00
Dzmitry Malyshau aa76de2aae Bug 1503447 - Remove Nothing() semantic from ASR overrides r=kats
Previously, the ASR overrides contained Maybe<ClipId>, where Nothing() corresponded to taking the top of the clip/scroll stack instead of overriding. This change removes the associated complexity by ensuring that we always provide the ClipId.

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

--HG--
extra : moz-landing-system : lando
2018-11-14 14:15:16 +00:00
sotaro f4472684a5 Bug 1503498 - Simplify ForwardingExternalImage handling in AsyncImagePipelineManager r=aosmond 2018-11-14 11:40:31 +09:00
Hiroyuki Ikezoe c592937db4 Bug 1504929 - Further optimizations for RestyleManager::AddLayerChangesForAnimations.. r=birtles,sotaro
This change eliminates
 - nsLayoutUtils::LastContinuationOrIBSplitSibling calls for each CSS
   properties on WebRender
 - iterating over each display item for each compositor runnable CSS properties
 - a bunch of stuff in the case where the layer manager has not yet created,
   i.e. the compositor thread is not ready to receive animations

Depends on D11425

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

--HG--
extra : moz-landing-system : lando
2018-11-13 10:23:20 +00:00
Jeff Muizelaar fd702be66b Bug 1506676. blob-inval: handle the parent item being removed. r=mattwoodrow
If the parent item is removed our assertions will be wrong because
the parent item's bounds will not be added to the invalid rect until
after we've traversed all of the items. Further, the new unbounded rect
for the child item won't be added to the invalid rect unless we do it
ourselves. This makes sure we add the old and new rects to the invalid
rect.

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

--HG--
extra : moz-landing-system : lando
2018-11-13 02:23:41 +00:00
Razvan Maries 7f7c353e96 Merge mozilla-inbound to mozilla-central a=merge 2018-11-12 11:58:52 +02:00
Jeff Muizelaar 8aa00debf2 Bug 1496843. Make sure we update mRect when mImageBounds changes. r=mattwoodrow
This makes sure we don't end up with stale entries with geometry clipped
to the previous mImageBounds on the receiving side.

The update code is duplicated for now but will hopefully be cleaned up
after the blob re-coordination work is done.

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

--HG--
extra : moz-landing-system : lando
2018-11-11 22:49:38 +00:00
Kartikaya Gupta 9a0b69bfb3 Bug 1503616 - Propagate the zoom animation id over to the APZ code. r=botond
Depends on D11180

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

--HG--
extra : moz-landing-system : lando
2018-11-09 21:13:10 +00:00
Kartikaya Gupta 1b737d162d Bug 1503616 - Set a animatable transform property on the root content WR stacking context. r=mstange
This sets a placeholder transform on the root stacking context for the
content display list, and allows us to modify that transform directly in
the compositor. This is similar to what
nsDisplayOwnLayer::CreateWebRenderCommands does for scroll thumb layers,
which are similarly manipulated by APZ for async scrolling.

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

--HG--
extra : moz-landing-system : lando
2018-11-09 21:14:27 +00:00
sotaro 8013630c8b Bug 1506091 - Wait for GPU after posting NotifyDidRender r=mattwoodrow 2018-11-12 10:36:13 +09:00
Jeff Muizelaar 2ec0586f2c Bug 1505606. Add profiler markers for CONTENT_FRAME_TIME. r=mstange 2018-11-08 22:18:40 -05:00
Csoregi Natalia 6e0e603f48 Merge inbound to mozilla-central. a=merge 2018-11-07 11:52:57 +02:00
Ryan Hunt d46a2d5c71 Bug 1503655 part 10 - Remove unneeded includes for RenderFrameParent. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D11112

--HG--
extra : rebase_source : 769261eb74f6b01a48f3a20ccb62c5f2f1c33f32
extra : histedit_source : 027cf9d45b82a32d0b73cb468bf9931003a62a02
2018-11-06 15:34:59 -06:00
Hiroyuki Ikezoe 051215da7b Bug 1504884 - Drop AnimationInfo::mLayerManager. r=birtles
It's not used at all.

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

--HG--
extra : moz-landing-system : lando
2018-11-07 03:09:05 +00:00
Matt Woodrow eb76e7c060 Bug 1456555 - Deal with clipped containers being smaller than their contents during blob building. r=Gankro
MozReview-Commit-ID: I0tc6l84NRa

Depends on D10041

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

--HG--
extra : moz-landing-system : lando
2018-11-06 21:05:41 +00:00
sotaro 3b545f56f3 Bug 1500017 - Use triple buffer with DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL SwapChain r=mattwoodrow 2018-11-05 18:58:37 +09:00
Matt Woodrow 394f747fb0 Bug 1503730 - Add visual indicator for when WebRender frames record a CONTENT_FRAME_TIME of >200. r=sotaro
MozReview-Commit-ID: KdRf3WClD6M

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

--HG--
extra : moz-landing-system : lando
2018-11-04 20:35:36 +00:00
Ryan Hunt 2226bcc8a3 Bug 1504220 - Move ScrollableLayerGuid, ViewID, ZoomConstraints from FrameMetrics.h r=botond
This commit attempts to lower the pain of modifying FrameMetrics.h.

It looks like most includes really only want ViewID or
ScrollableLayerGuid, so this commit factors them out into a separate
header. In the process FrameMetrics::ViewID is changed to
ScrollableLayerGuid::ViewID, which personally seems like a better
place for it now that we have RepaintRequest. Unfortunately that
requires a lot of places to be updated.

After this commit there are still a couple of major places that
FrameMetrics is included.
 * nsDisplayList.h
 * nsIScrollableFrame.h
 * Layers.h

Those are going to be more tricky or impossible to fix so they're
not in this commit.

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

--HG--
rename : gfx/layers/FrameMetrics.h => gfx/layers/ScrollableLayerGuid.h
rename : gfx/layers/FrameMetrics.h => gfx/layers/ZoomConstraints.h
extra : rebase_source : 29ac79f91460a181bf7437af5c371207e22858e2
extra : source : c2e70e531075493fc6e374dcec862827f0bc6e77
2018-11-01 15:15:46 -05:00
Andrew Osmond fb274b0684 Bug 1502454 - Ensure we are consistent in how we define and use scroll IDs with WebRender. r=kats
In ClipManager::DefineScrollLayers, we don't always create a scroll ID
for each ASR. We may fail to get the scroll metadata, or it may not be
scrollable, in which case we should use the scroll ID of its ancestor
(or the root scroll ID if there is no ancestor). This should fix a crash
where we simply assumed the leaf of an ASR tree will always have a valid
scroll ID.

Differential Revision: https://phabricator.services.mozilla.com/D10708
2018-11-02 13:08:58 -04:00
Ciure Andrei 83010e5db0 Merge inbound to mozilla-central. a=merge 2018-11-02 18:44:43 +02:00
Andrew Osmond 016a11ff73 Bug 1428558 - Part 7. Suppress display list regeneration for animated image updates. r=nical
This patch allows us to intercept invalidation requests for display
items, and avoid regenerating the display list for animated images which
are using SharedSurfacesAnimation.

Differential Revision: https://phabricator.services.mozilla.com/D7504
2018-11-02 09:09:52 -04:00
Andrew Osmond 39a21e7b4b Bug 1428558 - Part 3. Release our reference to an external image ID as soon as possible. r=nical
Animated images will work by changing the external image ID that an
ImageKey points to. We cannot allow the old external image to be
released and potentially unmapped until we have produced a new frame
with the new external image ID. We currently wait until the epoch has
advanced, but in the future when we don't rebuild the scene to animate
an image, the epoch will remain the same. This could cause us to hold
onto no longer used surfaces for much longer than expected. As such, in
this patch we switch to waiting for a FrameRendered notification from
WebRender, which works even if the scene rebuild was avoided.

Differential Revision: https://phabricator.services.mozilla.com/D7500
2018-11-02 09:09:52 -04:00
Andrew Osmond 74a32dcaab Bug 1428558 - Part 2. Improve plumbing to sending resource updates to WebRender. r=nical
Animated images will require scheduling a composite of the frame in
addition to updating the ImageKey/external image ID bindings. It would
be good if this could be done as part of the same IPDL message.
Additionally a page may have many animated images that we update the
frame for at the same time, so these updates should be batched together.
In the event that we needed to regenerate the display list, or produce
an empty transaction, ideally we would just throw these resource updates
in with the rest of the changes. This patch allows us to do all of that
without unnecessarily burdening the caller with tracking extra state.

Differential Revision: https://phabricator.services.mozilla.com/D7499
2018-11-02 09:09:52 -04:00
Andrew Osmond 83a52f66de Bug 1428558 - Part 1. Streamline mappings between an ImageKey and an ExternalImageId for shared surfaces. r=nical
Async animated images need a single ImageKey which can point to any
frame represented by its own external image ID. Additionally a frame
could be referenced again directly (e.g. something shows/uses the first
frame of the animated image).

Before this patch, the ownership between an ImageKey and an external
image ID for a shared surface was not clearly expressed. This resulted
in a special command to release the reference to the external image
separately from deleting the image key.

This patch makes the strong reference to an external image ID and an
ImageKey directly related. Not only does this facilitate multiple
ImageKeys owning the same surface, it also simplifies the ownership
semantics.

Differential Revision: https://phabricator.services.mozilla.com/D7520
2018-11-02 09:09:52 -04:00
Kartikaya Gupta b6030f993c Bug 1490393 - Flush a deferred transform before picking up another if the ASR changes. r=mstange
The implementation of deferred transforms did not handle the case where
we ended up deferring multiple transform items in a row with different
ASRs. In this case, when we encounter the nested transform item that we
want to defer, we need to flush the previously-deferred transform item
into a WebRenderLayerScrollData item. This patch accomplishes that, and
includes a mochitest that exercises the relevant behaviour.

Depends on D8110

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:14:50 +00:00
Kartikaya Gupta 1523c9bf61 Bug 1490393 - Accumulate the deferred transform down the StackingContextHelper chain if the ASR matches. r=mstange
The implementation of deferred transforms did not handle the case where
we ended up deferring multiple transform items before encountering the
APZ-relevant display item. In this case we need to somehow accumulate
all the deferred transforms. This patch accomplishes that, and includes
a mochitest that exercises the relevant behaviour.

Depends on D8109

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:14:31 +00:00
Kartikaya Gupta 12f8d1ed88 Bug 1490393 - Extract a helper method on StackingContextHelper to get the deferred transform matrix. r=mstange
Depends on D8108

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:12:29 +00:00
Kartikaya Gupta 2db495b01c Bug 1490393 - Improve documentation regarding the deferred transforms. r=mstange
This code will be expanded a bit in the next few patches, so hopefully
the comments here provide a reasonable explanation of what this code is
about.

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:12:06 +00:00
Jamie Nicol 9aa1aa7578 Bug 1503877 - Handle PauseComposition correctly with webrender enabled. r=kats
On android with webrender enabled, minimising the app results in an
assertion failure: CompositorBridgeParent::DidComposite asserts that
it should not be called with a webrender compositor.

This makes it so that that in CompositorBridgeParent::PauseComposition
we call NotifyPipelineRendered instead of DidComposite for webrender
compositors.

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

--HG--
extra : moz-landing-system : lando
2018-11-02 09:00:45 +00:00
sotaro 683db7acd5 Bug 1502789 - Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates() r=nical 2018-10-31 14:19:41 +09:00
Kartikaya Gupta c277149ab9 Bug 1501062 - Set the visible region on scrollthumb WebRenderLayerScrollData items. r=botond
This field is used by APZ to implement the feature where the scrollbar snaps
back to the starting position if the mouse gets too far away.
2018-10-29 15:40:09 -04:00
Andrew Osmond f608cada7d Bug 1405814 - Avoid crash with WebRender when the scroll metadata is unavailable. r=kats
Similar to bug 1471671, we are seeing missing scroll metadata in cases
we do not expect that, and have been observing low volume crashes in the
wild as a result. It appears that in the non-WR path, it skips such items,
so we should probably do the same thing with WebRender. If it is a real
problem, we will hopefully get a reproducible test case from a user if
scrolling fails for them.

Differential Revision: https://phabricator.services.mozilla.com/D9815
2018-10-25 20:00:35 -04:00
Andrew Osmond 3370375e1c Bug 1471671 - Avoid crash with WebRender when the scroll metadata is unavailable. r=kats
We are seeing crash reports in the wild where there is no scroll
metadata available for an ASR for a display item and its clip. It
appears that in the non-WR path, it skips such items, so we should
probably do the same thing with WebRender. If the scrolling ends up
being wrong, hopefully a reproducible use case will make its way to use
to further debug, as the crash reports have not yielded anything to date.

Differential Revision: https://phabricator.services.mozilla.com/D9699
2018-10-25 13:39:28 -04:00
Ryan Hunt 1601a8bb80 Bug 1453425 - Add relative scroll offset updates using nsGkAtoms::relative. r=botond
This commit adds a scroll origin, nsGkAtoms::relative, which can be used to
mark main thread scrolling that can be combined with a concurrent APZ scroll.

The behavior of this is controlled by a pref, apz.relative-update. This pref
is initially activated and is intended as an aid to narrowing down causes
of regressions for users in bug reports.

Relative scroll updates work by tracking the last sent or accepted APZ
scroll offset. This is sent along with every FrameMetrics. Additionally,
a flag is added to FrameMetrics, mIsRelative, indicating whether the
scroll offset can be combined with a potential APZ scroll. When this
flag is set, AsyncPanZoomController will apply the delta between the sent
base scroll offset, and sent new scroll offset.

This flag is controlled by the last scroll origin on nsGfxScrollFrame. The
new origin, `relative`, is marked as being able to clobber APZ updates,
but can only be set if all scrolls since the last repaint request or
layers transaction have been relative.

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

--HG--
extra : rebase_source : 51351a84c9cda228a0975e22eda3fd3bd8d261c4
extra : histedit_source : 4b564c19b16fe2bd26adc671b62b7cb6106e8163
2018-10-09 23:24:28 -05:00
Kartikaya Gupta 2c29b10d55 Bug 1469403 - Skip DL dumps when the DL builder is from an inactive docshell. r=mattwoodrow
Depends on D9141

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

--HG--
extra : moz-landing-system : lando
2018-10-22 23:42:05 +00:00
Emilio Cobos Álvarez ba7599486e Bug 1498221 - Don't apply layer scaling to fallback filters. r=mattwoodrow
Using layer scaling confuses the filter code (see bug 1497239).

Right now we're sort-of double-scaling. Looks like what the filter code expects
is just getting the scaling passed down, see bug 1224207.

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

--HG--
extra : moz-landing-system : lando
2018-10-22 23:41:30 +00:00
Jamie Nicol 9498be51e6 Bug 1479754 - Hook up the force-first-paint codepath with webrender r=kats
When a CompositorBridgeParent receives a force first paint message, it
sets the flag on the AsyncCompositionManager, which notifies the
widget code at the next composite via
UiCompositorControllerParent::NotifyFirstPaint().

With webrender, this is crashing as there is no
AsyncCompositionManager. And even if it weren't crashing, the widget
will never receive the first paint message, so it never uncovers its
content.

This change ensures the widget receives the first message when
webrender is enabled. CompositorBridgeParent will set the flag on its
WebRenderBridgeParent, which will set the flag on the next received
display list. When the WebRenderBridgeParent flushes the corresponding
transaction, it calls UiCompositorcontrollerParent::NotifyFirstPaint,
to ensure the widget code gets the message.

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

--HG--
extra : moz-landing-system : lando
2018-10-19 13:48:04 +00:00
Kartikaya Gupta a971a37e5f Bug 1485834 - Allow recomputing the cumulative resolution in ComputeScrollMetadata. r=botond
We need to correctly populate the cumulative resolution field in the
ScrollMetadata in order to support zooming. Without this, the cumulative
resolution doesn't include the presShell resolution, and that results in
APZ getting into an inconsistent state.

Currently, the cumulative resolution is populated from the
ContainerLayerParameters object's scale, but in the case of WebRender,
we call ComputeScrollMetadata with an empty ContainerLayerParameters
since don't actually do layer building or rasterization in Gecko.
This patch makes this more explicit by changing the argument to a
Maybe<ContainerLayerParameters> and passing Nothing() from the WebRender
call sites.

In this scenario, we just use the cumulative presShell resolution as
the cumulative resolution, which should be correct for WebRender as
we won't have an "extra" CSS-derived resolution applied on the Gecko
side.

Depends on D9120

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

--HG--
extra : moz-landing-system : lando
2018-10-19 14:24:50 +00:00
sotaro fe52320e8b Bug 1497910 - Call wr_renderer_readback() before calling RenderCompositor::EndFrame() r=nical 2018-10-17 07:54:01 +09:00
Kartikaya Gupta 51d0eb31fa Bug 1484173 - Expose the vsync interval via the CompositorVsyncSchedulerOwner interface. r=sotaro
We need this for the next patch.

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

--HG--
extra : moz-landing-system : lando
2018-10-16 00:33:51 +00:00
sotaro 2dae3826d6 Bug 1498092 - Add necessary forced frame rendering r=nical 2018-10-15 20:28:01 +09:00
Nicolas Silva cd2c34aaa5 Bug 1479912 - Clear WebRender resources asynchronously. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D7280

--HG--
extra : moz-landing-system : lando
2018-10-12 06:47:29 +00:00
Ryan VanderMeulen 44c10c107a Merge m-c to autoland. a=merge 2018-10-10 12:32:05 -04:00
Emilio Cobos Álvarez c1e1ca5fbd Bug 1497239 - Properly apply inherited scale to filters. r=jrmuizel
I'll file a followup bug to deal with the fallback transition going wrong.

I don't know why it'd be fine to not apply the scale to SVG wrappers, but on my
quick testing I didn't manage to break it, so I'll spend a bit more time trying
to do that...

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

--HG--
extra : moz-landing-system : lando
2018-10-10 14:49:15 +00:00
Daniel Varga 2ad5744e7f Merge mozilla-central to mozilla-inbound. a=merge 2018-10-10 13:56:40 +03:00
Jeff Muizelaar d0ab08d503 Bug 1493616. Make sure we invalidate the entire area of the item r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D8125

--HG--
extra : moz-landing-system : lando
2018-10-10 01:16:39 +00:00
Emilio Cobos Álvarez ddbbaf6156 Bug 1497059 - Bail out on empty dtRect. r=mstange
I thought it was going to be trivial to add a test-case for this with a scale
transform and such, but I haven't been able to.

This restores the wallpaper that there was before my change.

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

--HG--
extra : moz-landing-system : lando
2018-10-09 23:09:39 +00:00
Andrew Osmond 75ee4d6a42 Bug 1496726 - Fix how some display item containers were missing from the clip optimization exclusion list. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D7966
2018-10-09 13:09:08 -04:00
Gurzau Raul fdf7e4364c Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-10-10 07:43:59 +03:00
Sotaro Ikeda 848aa7ecc5 Bug 1461239 - Use InvalidateRenderedFrame() when necessary r=nical 2018-10-09 23:20:23 -04:00
Jeff Muizelaar 8f95a3627c Bug 1493616. blob-inval: Log the some more data about the broken situation. 2018-10-07 13:15:01 -04:00
shindli 9dc23d90a5 Merge inbound to mozilla-central. a=merge 2018-10-07 00:11:08 +03:00
Jeff Muizelaar 20d9bc4191 Bug 1493616. Add some data gathering to try to figure out the crash. 2018-10-06 12:41:00 -04:00
Emilio Cobos Álvarez 9aeb8183fd Bug 1444185 - More consistently round around fallback data. r=mstange
To avoid trimming pixels at the top / left.

This makes it closer to non-WR[1], and fixes both the checkboxes getting
cut off and the master password field.

[1]: non-WR at least at 124 scaling on a hiDPI display is still perfect, though I saw nin symmetric borders at other resolutions, so we might be able to improve here further.

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

--HG--
extra : moz-landing-system : lando
2018-10-06 10:34:36 +00:00
Jeff Muizelaar e8874566d6 Bug 1493616. Clear mInvalid more agressively so that we don't reuse it across paints r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D7948

--HG--
extra : moz-landing-system : lando
2018-10-06 02:42:22 +00:00
Ciure Andrei 19cad53fba Backed out changeset f936a4baa698 (bug 1493616) for build bustages WebRenderCommandBuilder.cpp CLOSED TREE 2018-10-06 05:17:41 +03:00
Jeff Muizelaar bd16ee6128 Bug 1493616. Clear mInvalid more agressively so that we don't reuse it across paints r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D7948

--HG--
extra : moz-landing-system : lando
2018-10-05 22:27:59 +00:00
sotaro 28923c3278 Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj 2018-10-05 16:35:29 +09:00
Narcis Beleuzu bcd56bfa14 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-10-04 12:29:16 +03:00
sotaro 3a927a66da Bug 1496324 - Revoke TransactionId when transaction is not forwarded r=mattwoodrow 2018-10-04 17:31:06 +09:00
Jeff Muizelaar 8fe557b34e Bug 1496188. blob-img: remove animated geometry root code that makes no sense r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D7642

--HG--
extra : moz-landing-system : lando
2018-10-04 01:11:32 +00:00
Markus Stange 9ffcb31c68 Bug 1495886 - Fix a typo in a profiler marker: Traget -> Target. r=kats,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D7540

--HG--
extra : moz-landing-system : lando
2018-10-02 21:19:17 +00:00
Jeff Muizelaar 4a027bb61a Bug 1493616. blob-inval: Log whether we have a 3d transform
--HG--
extra : rebase_source : 9639b71fd21b4bc9f0fec3100634888d0b29ccc9
2018-10-01 11:34:54 -04:00
sotaro f28d78646a Bug 1491798- Schedule repaint if WebRender is updated by tab move r=mattwoodrow 2018-10-01 10:12:22 +09:00
Jeff Muizelaar dfcb291ba9 Bug 1493616. Fix up logging to only trigger appropriately. 2018-09-29 20:53:07 -04:00
Jeff Muizelaar 1e25d9fc35 Bug 1493616. Add some logging to help debug this crash.
--HG--
extra : rebase_source : 5b847544605d7b59b31ddca70be6176df0e8edb2
2018-09-29 19:05:18 -04:00
Jeff Muizelaar d7cb9ac2ef Bug 1494836. Replace NormalizedRect for visible area. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D7189
2018-09-26 10:32:41 -04:00
Jonathan Watt 5c1dd39583 Bug 1494285 p3. Rename nsDisplayFilter to nsDisplayFilters. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D7008

--HG--
extra : rebase_source : 89a1bd3e34666a09bd9d9d26329f183ebc28a1c3
extra : amend_source : 71c0eacf545383c23533ae05c46561159567d667
extra : histedit_source : a1047949377d690bba5cfcf86b16cb2be0610af0
2018-08-30 13:15:47 +01:00
Jonathan Watt 0133d476ce Bug 1494285 p2. Rename nsDisplayMask to nsDisplayMasksAndClipPaths. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D7007

--HG--
extra : rebase_source : de16f2d9fe5a0610af12b64603757f4fd8d6eee6
extra : amend_source : 1c932942463586d1dfe09bbf31569adc51efa220
extra : histedit_source : 5a6591e23a84382f1add26b9e81f06b8a2f3205a
2018-08-30 10:51:24 +01:00
Daniel Zielas 21d87f2b40 Bug 1420996 - Replace CompositorHitTestInfo with an EnumSet. r=botond
--HG--
extra : rebase_source : b62faecd4eb7a988e62a1f41eca6481f90e57c02
extra : histedit_source : 417426b84d2a269d84980df972073e67c2643cd3
2018-09-25 20:47:55 +02:00
arthur.iakab ec46826255 Merge inbound to mozilla-central. a=merge 2018-09-26 15:54:41 +03:00
sotaro 126b769801 Bug 1493088 - Use non low priority transaction for async pipline with ImageBridge r=nical 2018-09-26 11:45:30 +09:00
sotaro f79bc9e186 Bug 1492745 - Remove PWebRenderBridge::Create() r=mattwoodrow,froydnj 2018-09-26 10:19:18 +09:00
Chris Pearce 3d0ca1234a Bug 1434503 - Round video frame images bounds to device pixel boundaries before passing to WebRender. r=sotaro
When scrolling on Twitter video frames can sometimes be drawn with a flicker
above or below them. This is because the bounds for video frames' images that
we pass to WebRender are not rounded to pixel boundaries, and so they can end
up being rounded off in WebRender unexpectedly when composited.

So round off the bounds of video frame images to device pixel boundaries before
passing to WebRender.

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

--HG--
extra : moz-landing-system : lando
2018-09-26 00:18:21 +00:00
Jean-Yves Avenard 7b6d1c117d Bug 1493198 - P1. Make ImageDescriptor::is_opaque an enum and rename accordingly. r=nical
Prevent future ambiguous conversion once a bit depth int is added.
Also more self-explanatory

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

--HG--
extra : moz-landing-system : lando
2018-09-24 14:24:30 +00:00
Nicolas Silva 510a2d5cf0 Bug 1477819 - Defer ObserveLayersUpdate to after scene building. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D6514

--HG--
extra : source : 8b40085bcfbb37d070152e9d1752f5a8ed52b0a6
extra : histedit_source : b3ff6509c258c92a55b57047af5c337d921f7a57
2018-09-21 18:47:18 +02:00
Jeff Muizelaar 24fdba412e Bug 1493268. Re-generate FFI header and adjust bindings.
Changes GlyphRasterSpace to RasterSpace.
2018-09-22 21:19:52 -04:00
Jeff Muizelaar 8d0131224b Bug 1490033. Use IsStyleMaybeAnimated to set up snapping surface transform. r=mstange
This catches all animations instead of those that only run on the compositor.

Differential Revision: https://phabricator.services.mozilla.com/D6543
2018-09-21 23:28:34 -04:00
Jeff Muizelaar c53343f961 Bug 1491590. Make sure that the paint rect is set to the bounds. r=mstange
This prevents us from doing unnecessary drawing because we clip to
the bounds of the item.

Differential Revision: https://phabricator.services.mozilla.com/D6428
2018-09-21 18:53:41 -04:00
Jeff Muizelaar 90fbfc8d8a Bug 1447880. Paint nsDisplayMasks directly instead of using a BasicLayerManager. r=mstange
This allows us to invalidate individual items inside of the mask instead of
treating the mask and it's children as a single item.

Differential Revision: https://phabricator.services.mozilla.com/D6224
2018-09-21 18:50:23 -04:00
Jeff Muizelaar f2485f9b16 Bug 1447880. Allow PaintMaskAndClipPath to support different ways of painting its children. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D6223
2018-09-21 18:50:08 -04:00
Jeff Muizelaar e6183a10a0 Bug 1447880. Handle inactive 3d transforms. r=mstange
It isn't possible to trigger this code currently because
the only way to have an inactive 3d transform is with a mask
or filter item and those get handled with a BasicLayerManager.

This becomes necessary once we handle mask items internally.

Differential Revision: https://phabricator.services.mozilla.com/D6222
2018-09-21 18:49:32 -04:00
Jeff Muizelaar b1a30b1cb4 Bug 1492615. Improve logging even more r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D6432

--HG--
extra : moz-landing-system : lando
2018-09-21 12:56:53 +00:00
Gurzau Raul b1522a7bf0 Merge inbound to mozilla-central. a=merge 2018-09-21 07:13:51 +03:00
Andrew Osmond c5be5d2b08 Bug 1492925 - Ensure we release the shared surfaces when a WebRender pipeline is removed. r=sotaro 2018-09-20 21:27:50 -04:00
Jeff Muizelaar 982a5601bf Bug 1492615. Improve logging of blob property changes r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D6342

--HG--
extra : moz-landing-system : lando
2018-09-20 20:14:23 +00:00
sotaro a6cdc76571 Bug 1492323 - Make explicit that WebRenderBridgeParent::MaybeGenerateFrame() is called if it is root WRBP r=nical 2018-09-20 17:47:05 +09:00
Matt Woodrow e6fabc8bd9 Bug 1483549 - Add separate CONTENT_FRAME_TIME recording for SVG with WR. r=jrmuizel data-review=francois
MozReview-Commit-ID: Rqx1bqOeQw

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

--HG--
extra : amend_source : b55099ae3bf8a9b89432bc7e1b30b59b9967986f
2018-09-18 15:13:18 +12:00
Bas Schouten 3f601ce856 Bug 1479640: Restructure cleartype parameter code to run less frequently and only in the parent process. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D4784

--HG--
extra : moz-landing-system : lando
2018-09-13 18:59:27 +00:00
Bobby Holley f35563781f Bug 1480293 - Basic Memory Reporting for WebRender. r=jrmuizel
Reviewers: jrmuizel, gw

Tags: #secure-revision

Bug #: 1480293

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

MozReview-Commit-ID: 1vGl3890CjR
2018-09-14 15:27:31 -07:00
Gurzau Raul d4d9bd916d Backed out changeset 9762d76da9b3 (bug 1480293) for failing at aboutmemory/tests/test_memoryReporters.xul 2018-09-14 22:32:18 +03:00
Bobby Holley 42a527b3d1 Bug 1480293 - Basic Memory Reporting for WebRender. r=jrmuizel
Reviewers: jrmuizel, gw

Tags: #secure-revision

Bug #: 1480293

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

MozReview-Commit-ID: 1vGl3890CjR
2018-09-14 10:59:00 -07:00
Andrew Osmond 86d7bb0dde Bug 1485420 - Part 2. Make ClipManager trim clip chains which can be merged with the display item. r=mstange 2018-09-14 10:42:23 -04:00
sotaro 24c5a93279 Bug 1486958 - Sync FlushRendering() only during resizing on windows r=mattwoodrow 2018-09-14 17:13:55 +09:00
Nicolas Silva f5c8fc210d Bug 1477819 - Use WebRender low priority transactions for web content. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D5531

--HG--
extra : rebase_source : 627738d5f791aa9c243e0174d3d153f5ac8e319f
2018-09-12 15:30:17 +00:00
Matt Woodrow f4a90435ef Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
MozReview-Commit-ID: Ib5t0e8S6df

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

--HG--
extra : moz-landing-system : lando
2018-09-08 18:41:34 +00:00
Henrik Winnemöller be01b218cc Bug 1488555 - Use ImageRendering property to provide proper filtering support for AsyncImage. r=nical
Introduce an ImageRendering argument for CreateImageKey which is then used at the CreateAsyncImageWebRenderCommands call to provide the proper filtering instead of using always Auto filtering. Update all calls to CreateImageKey to use the new interface.
2018-09-07 22:28:41 +02:00
Jeff Muizelaar 07e9250f5d Bug 1449634. Handle foreignobject better with blob invalidation. r=mstange
Turn off grouping and switch to regular WebRender building when
we encounter a foreignobject.

MozReview-Commit-ID: 6fHc4Ioi22N
2018-09-06 16:10:51 -04:00
Jeff Muizelaar 050bab0d8b Bug 1487903. Fix invalidation of filter and mask items. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D5073
2018-09-06 10:56:09 -04:00
Margareta Eliza Balazs baa535d4e0 Merge inbound to mozilla-central. a=merge 2018-09-06 12:53:57 +03:00
Lee Salzman de75729420 Bug 1480615 - reuse scaled fonts across blob image recordings. r=jrmuizel 2018-09-05 21:55:53 -04:00
Matt Woodrow 41c48dbf73 Bug 1473890 - Verify that CompositorAnimations come from the content process that they claim. r=nical
MozReview-Commit-ID: AqcezlMQXE4

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

--HG--
extra : moz-landing-system : lando
2018-09-06 02:36:10 +00:00
Jeff Muizelaar a21bea480d Bug 1452426. Hook up invalidation testing in WebRender. r=mstange 2018-08-30 18:29:36 -04:00
Narcis Beleuzu a12393e44d Backed out 2 changesets (bug 1420996) for marionette failures.
Backed out changeset 413bd039c126 (bug 1420996)
Backed out changeset 01ed229650de (bug 1420996)
2018-08-30 10:26:42 +03:00
Daniel Zielas ad4b942e82 Bug 1420996 - Replace CompositorHitTestInfo with an EnumSet. r=botond
--HG--
extra : rebase_source : 124088a3cc1ec691ced2c82aae7075946a790e41
2018-08-12 15:05:43 +02:00
Jeff Muizelaar 92e5b037a8 Bug 1477448. Ensure ToDeviceSpace() preserves EmptyRects. r=mstange
MozReview-Commit-ID: 40qjwj3dpmp
2018-08-22 22:21:30 -04:00
Jean-Yves Avenard efd5ec6e7a Bug 1245400 - P5. Report frames dropped with WebRender. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D2182
2018-08-22 17:26:37 +02:00
Jean-Yves Avenard a0a2549c82 Bug 1245400 - P2. Keep track of frames that should have been painted but didn't. r=nical, r=mattwoodrow
We can't rely on the FrameID continuity to determine if a frame has been dropped due to timing or not.
The reason being that the VideoSink will not send to the compositor frames it knows as being late already (causing a discontinuity in the frames IDs), and count them as being dropped.
If we were to look at discontinuity on the compositor we would account for those frames twice.

FramesID will also increase non-linearly if a frame isn't painted because it's not visible (either out of the visible tree or in a hidden tab).

What we can measure however, is when a frame should have been painted but didn't because it was too late by looking at the value returned by ImageComposite::ChooseImageIndex() or when a new set of images is being received by the ImageComposite.
Any images found in the earlier array but never returned must have been dropped due to timing.

Looking at the index continuity greatly simplify the logic as we no longer need to worry if a video is hidden or not, or be part of a layer that is itself hidden as neither SetImages will be called then, nor ChooseImage

For now, we only account for those frames dropped, and do not report them yet.

Differential Revision: https://phabricator.services.mozilla.com/D2176
2018-08-22 17:26:36 +02:00
Jean-Yves Avenard f7be15f4f4 Bug 1245400 - P1. Make ImageComposite::mImages a private member. r=nical
We will use the characteristic of which TimedImage is returned to keep track on how many frames were dropped because they were too old. As such, we must make sure the retrieval of the current image is serialised.

This allows to reduce duplicated code between WebRenderImageHost and ImageHost classes.

Additionally, make RenderInfo::img member const as really, we never want to modify that one.

A future change will enforce that RenderInfo.img never survives longer than the ChooseImage()'s caller to clarify the lifetime of the TimedImage.

Differential Revision: https://phabricator.services.mozilla.com/D2175
2018-08-22 17:26:36 +02:00
Andrew Osmond 7b5c6eb801 Bug 1452513 - Avoid issuing transactions with WebRender when the namespace has changed. r=kats
When the namespace changes (e.g. due to a tab move between windows), we
may get stale transaction requests that we need to ignore. In
WebRenderBridgeParent::RecvSetDisplayList, we would automatically send
any unsent transaction data when exiting the method, but this did not
take into account the staleness. This patch ensures we only flush the
data if we actually want it.

The transaction in question that was observed and causing crashes was
UpdateImageBuffer.
2018-08-21 08:29:09 -04:00
sotaro 4c0aee518b Bug 1482032 part 2 - Only register a value for CONTENT_FRAME_TIME if we actually drew something r=mattwoodrow 2018-08-15 14:13:49 +09:00
sotaro 8f19f46520 Bug 1482032 part 1 - A bit clean up of FlushTransactionIdsForEpoch() r=mattwoodrow 2018-08-15 14:13:24 +09:00
sotaro bf2bee5c8e Bug 1481995 - Remove WebRenderBridgeParent::mForceRendering r=nical 2018-08-10 08:10:11 +09:00
Jeff Muizelaar da9d4bb3c0 Bug 1481655. Don't add recordings of the hit test info to blob images. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D2938

--HG--
extra : moz-landing-system : lando
2018-08-08 18:15:00 +00:00
dvarga de4435eec5 Backed out changeset 37ac6d023498 (bug 1481655) for bustage at build/src/gfx/layers/wr/WebRenderCommandBuilder.cpp on a CLOSED TREE 2018-08-08 21:00:23 +03:00
Jeff Muizelaar f0b0ce30f2 Bug 1481655. Don't add recordings of the hit test info to blob images. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D2938

--HG--
extra : moz-landing-system : lando
2018-08-08 17:32:52 +00:00
sotaro 4709864388 Bug 1476846 - Fix UpdateEpoch() handling r=nical 2018-08-08 14:14:00 +09:00
sotaro 92f8dea8a0 Bug 1476846 - Reduce latency of applying async images of video r=nical 2018-08-07 19:12:06 +09:00
Andi-Bogdan Postelnicu b2d4c86823 Bug 1453795 - GFX - Initialize member fields in classes/ structures. r=nical
--HG--
extra : rebase_source : 56f2cc017632bf27115490ae05254019108c6179
extra : amend_source : 98ea6c3c02a9f7650d2cf65deaf5085cf9a2efa4
2018-06-16 17:42:33 +03:00
Kartikaya Gupta 4e5a308827 Bug 1479939 - Ensure we tell WR to remove the compositable pipelines when clearing resources. r=sotaro
MozReview-Commit-ID: AxuvERUalhb

--HG--
extra : rebase_source : 674a20346c234912f7389d9fc7078c956cf08fc7
2018-08-02 00:17:36 -04:00
Hiroyuki Ikezoe 221a08d59e Bug 1479234 - Drop GetAnimationOpacity and GetAnimationTransform ipc calls. r=boris,froydnj
They are no longer used.

MozReview-Commit-ID: 1SaIkj4ryUF

--HG--
extra : rebase_source : 0666e3f297e9c12f8a024e96944d99c2c301820c
2018-07-31 06:13:15 +09:00
Hiroyuki Ikezoe 94f5f622eb Bug 1479234 - Introduce a generic function to get an animation value on the compositor. r=boris,froydnj
On the compositor we store animation values in a hash table and the hash is
the compositor animation id which is a unique id for each property respectively.
So we can get the corresponding animation value for the given property.

In this patch there are lots of duplicated code, but they will be removed in the
next patch.

MozReview-Commit-ID: 7EboVcculcg

--HG--
extra : rebase_source : 304ea80849af8af72a07437736041aeabbe47eeb
2018-07-31 06:13:15 +09:00
Coroiu Cristina 7634333ced Backed out 4 changesets (bug 1479234) for build bustage at build/src/gfx/vr/ipc/VRLayerChild.cpp on a CLOSED TREE
Backed out changeset 6ecc1666f571 (bug 1479234)
Backed out changeset c3bab1bc97cf (bug 1479234)
Backed out changeset c8c2625a33ba (bug 1479234)
Backed out changeset 2ffc8e9d5686 (bug 1479234)
2018-07-31 00:32:04 +03:00
Hiroyuki Ikezoe 697a9da7aa Bug 1479234 - Drop GetAnimationOpacity and GetAnimationTransform ipc calls. r=boris,froydnj
They are no longer used.

MozReview-Commit-ID: 1SaIkj4ryUF

--HG--
extra : rebase_source : 0666e3f297e9c12f8a024e96944d99c2c301820c
2018-07-31 06:13:15 +09:00
Hiroyuki Ikezoe 23a4443de4 Bug 1479234 - Introduce a generic function to get an animation value on the compositor. r=boris,froydnj
On the compositor we store animation values in a hash table and the hash is
the compositor animation id which is a unique id for each property respectively.
So we can get the corresponding animation value for the given property.

In this patch there are lots of duplicated code, but they will be removed in the
next patch.

MozReview-Commit-ID: 7EboVcculcg

--HG--
extra : rebase_source : 304ea80849af8af72a07437736041aeabbe47eeb
2018-07-31 06:13:15 +09:00
Kartikaya Gupta 3faf3e38d9 Bug 1478016 - Add a strongly-typed LayersObserverEpoch type. r=mattwoodrow
MozReview-Commit-ID: 6fELexXRYeV

--HG--
extra : rebase_source : 0eb028ee9b98199d18421f7ff28433189940fdca
2018-07-30 09:24:50 -04:00
sotaro 2d7e793ae4 Bug 1478570 - Fix ExternalImageId allocation of AsyncImagePipelineManager r=jrmuizel 2018-07-30 10:16:03 +09:00
Kartikaya Gupta 22456cd52b Bug 1479075 - Ensure FlushRenderingAsync actually flushes the compositor. r=sotaro
MozReview-Commit-ID: AfVIwLj2YJp

--HG--
extra : rebase_source : 3c9f4af10be9ab38fb708a2be4cb9393cd7e86c7
2018-07-28 04:47:08 -04:00
Kartikaya Gupta b154baea17 Bug 1478504 - Inline function only used in a couple of places. r=sotaro
MozReview-Commit-ID: JfOgsxUHSlu

--HG--
extra : rebase_source : bc08909aa478071daf862ba355e2e4df03dfcf00
2018-07-27 09:43:41 -04:00
Kartikaya Gupta bfa67498d5 Bug 1478504 - Use NotifyPipelineRendered instead of DidComposite for WebRender. r=sotaro
MozReview-Commit-ID: 4eaMTEPD9NY

--HG--
extra : rebase_source : 7d2f5b5fe4d45f135f0899dccf6a910848b5c7e4
2018-07-27 09:42:30 -04:00
sotaro 2bcc8b96f5 Bug 1477608 - Reuse same ExternalImageId for different video frames if possible r=jrmuizel 2018-07-25 23:30:08 +09:00
Kartikaya Gupta 533c8b4d83 Bug 1468020 - Extract helper function to avoid duplicated code. r=mstange
MozReview-Commit-ID: JuirkAId7Km

--HG--
extra : rebase_source : c9d15e9fd4a823b321aff9c1048b659f87d03823
2018-07-24 16:38:25 -04:00
Kartikaya Gupta ad4d295efb Bug 1468020 - Conform to static analysis bot suggestion. r=mstange
MozReview-Commit-ID: KeWy2KHPSjk

--HG--
extra : rebase_source : 87764ba4387e1a53d8d6fdb66c1fe03669dee943
2018-07-24 16:38:25 -04:00
Kartikaya Gupta c219864291 Bug 1468020 - Don't layerize filter and mask items. r=mstange
This restricts the active-item-detection code to wrap lists and
perspective items because other wrapper items are not supported yet.

MozReview-Commit-ID: JuirkAId7Kk

--HG--
extra : rebase_source : 971de2c56d183090bb9a8701af62ada493e39b77
2018-07-24 16:37:38 -04:00
Bogdan Tara 1cd7dec7b6 Backed out 4 changesets (bug 1468020) for crashtest failures on gfx/tests/crashtests/1468020.html CLOSED TREE
Backed out changeset 262d541a474f (bug 1468020)
Backed out changeset 621ab5087373 (bug 1468020)
Backed out changeset 866492bf5ccf (bug 1468020)
Backed out changeset eb6a2ae68d09 (bug 1468020)
2018-07-24 22:57:02 +03:00
Kartikaya Gupta 970bd5648f Bug 1468020 - Extract helper function to avoid duplicated code. r=mstange
MozReview-Commit-ID: JuirkAId7Km

--HG--
extra : rebase_source : 3e2b3d228b3ad6dafc11dc89631778cd23580c9c
2018-07-24 14:21:08 -04:00
Kartikaya Gupta af58b4a732 Bug 1468020 - Conform to static analysis bot suggestion. r=mstange
MozReview-Commit-ID: KeWy2KHPSjk

--HG--
extra : rebase_source : 4280ba5c9f2b77e5c5ed98cfc9b9e586c4794add
2018-07-24 14:21:08 -04:00
Kartikaya Gupta 614fc7e747 Bug 1468020 - Don't layerize filter and mask items. r=mstange
This restricts the active-item-detection code to wrap lists because
other wrapper items are not supported yet.

MozReview-Commit-ID: JuirkAId7Kk

--HG--
extra : rebase_source : 5dbb8af8504f301ca49273b4f6f434a91524860a
2018-07-24 14:21:07 -04:00
Gurzau Raul 19e302fb18 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-07-24 12:52:06 +03:00
Kartikaya Gupta 38c46ea534 Bug 1468020 - More correctly detect active items in the grouper. r=mstange 2018-07-23 17:09:01 -04:00
Nicolas Silva 6d4507f6ff Bug 1455422 - Implement the new blob image rasterization hooks. r=kats, gankro 2018-07-19 16:33:05 -04:00
sotaro 8b12e2f10c Bug 1476876 - Make FlushRendering async if DComp is used on Windows with WebRender r=nical 2018-07-20 22:58:40 +09:00
Kartikaya Gupta e750c8c1b4 Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
The prefs, when enabled, will dump the gecko DL items followed by the
WR DL items that were generated from that gecko item. This allows us to
easily go from a DOM element with known id/class attributes to e.g. an
ImageKey of an image that was generated for that element.

Also, this logging can be enabled in CI builds just like gecko display-list
dumping, instead of the ifdef that we previously had in WebRenderLayerManager.

MozReview-Commit-ID: Eeo4iO62YY1

--HG--
extra : rebase_source : b4a348b2e8bced976489257b966f70b29c56df25
2018-07-19 15:30:30 -04:00
sotaro 432fb44cee Bug 1475187 - Remove AsyncImagePipelineManager::ApplyAsyncImages() call from WebRenderBridgeParent::RecvSetDisplayList() r=kats 2018-07-19 07:51:37 +09:00
Kartikaya Gupta dc1007a996 Bug 1471962 - Flush scene builds when flushing rendering. r=jrmuizel
MozReview-Commit-ID: 1BqhTG1u3nT

--HG--
extra : rebase_source : 031ad412d1f08b4658ad19a6e0d331562665b69a
2018-07-17 11:34:31 -04:00
Alexis Beingessner a8977d3600 Bug 1465948 - factor in the BuildingRect for filters and masks. r=jrmuizel
MozReview-Commit-ID: BABKDG5U0UB
2018-07-13 13:50:39 -04:00
Alexis Beingessner ae6bb80dd4 Bug 1474970 - mark wrap lists as ContainersLayerItems. r=mstange
MozReview-Commit-ID: KDz50Xlp0Ps

--HG--
extra : rebase_source : b2b1dfc96aa9639ee6af6cfb669551208fbe02bb
2018-07-11 13:20:58 -04:00
Andreea Pavel 10f6df7c1f Merge mozilla-central to autoland. a=merge on a CLOSED TREE
--HG--
rename : dom/webidl/ScrollBoxObject.webidl => dom/chrome-webidl/XULScrollElement.webidl
rename : layout/xul/ScrollBoxObject.cpp => dom/xul/XULScrollElement.cpp
rename : layout/xul/ScrollBoxObject.h => dom/xul/XULScrollElement.h
2018-07-13 00:53:43 +03:00
Kartikaya Gupta 614342989c Bug 1469528 - Flush the clip push/pop draw commands so they don't end up in the wrong entry. r=jrmuizel
MozReview-Commit-ID: 7PVPxaF2RnK

--HG--
extra : rebase_source : 6630f06f3c5316720a1ebbcb219a34f5f2c11f43
2018-07-12 14:27:15 -04:00
sotaro 12703134b4 Bug 1460515 - Reuse more image keys at WebRenderImageData::UpdateImageKey() r=nical 2018-07-11 17:45:28 +09:00
sotaro 885555c9c4 Bug 1474532 - Suppress redundant frame generation with async-scene-build enabled r=kats 2018-07-11 12:47:06 +09:00
Kartikaya Gupta 11b43679d8 Bug 1421825 - Fix crash and re-enable crashtest. r=jrmuizel
In some cases we get a gecko display list that looks like this:

WrapList with asr(<A>, <B>)
  Item with asr (<B>) and clipchain(<something> [A])

In this case, we would initialize the WebRenderLayerScrollData for the
nested item using a stop-at ancestor of A (because that was the leafmost
ASR from the containing WrapList) but the item itself has an ASR of B,
which is an ancestor of A. So when walking up from B we'd never hit the
stop-at ancestor, and so we'd end up duplicating metrics from the
containing WRLSD onto the nested WRLSD. This generated an assertion
failure in the APZ code.

This patch detects this scenario and skips adding metrics on the nested
WRLSD. This produces an APZ tree equivalent to what the non-WebRender
path would produce.

MozReview-Commit-ID: 8eo6pzXXKBd

--HG--
extra : rebase_source : 0581c54c4d9fa6ca08249e42b306c7155022bec7
2018-07-10 09:37:40 -04:00
Nicolas Silva 4ae96a4caa Bug 1474576 - Remove the async scene building pref. 2018-07-10 14:49:21 +02:00
sotaro aa35629fdf Bug 1474229 - Use more unordered_map/unordered_set in WebRenderBridgeParent r=nical 2018-07-10 11:06:08 +09:00
Kartikaya Gupta 78dba184db Bug 1461313 - Handle invalid clip-path URIs with WebRender. r=mstange
In the case of an invalid clip-path, the browser is supposed to discard the
mask entirely. In the non-webrender codepath this would happen
implicitly because the computed MaskUsage would have no flags set, and
so no actions would be taken on the gfxContext which contained the
display items rasterized so far. In the WebRender codepath, though, we
invoke the code on a A8 drawtarget that's zero-filled, so if PaintMask
fails to rasterize anything into it, it gets treated as a "mask everything
out" mask. Instead, this patch makes it so that we detect the scenario
where the computed MaskUsage is a no-op, and ensure that we don't apply
the mask in that case.

An alternative approach considered was to initialize the A8 drawtarget to
white instead of black but in cases where there is an actual mask, the
rest of the code assumes it is zero-filled and so that doesn't work.

MozReview-Commit-ID: Hw7nCiUXVJl

--HG--
extra : rebase_source : 241d550fa0ed1b3bd088c73d9565b166acbcece8
2018-07-05 08:05:34 -04:00
sotaro 610a1f38df Bug 1473815 - Simplify WebRenderBridgeParent::mAnimStorage iteration code r=nical 2018-07-07 09:30:50 +09:00
sotaro 3acc79b45a Bug 1472951 - Remove ExternalImageId allocation for ImageClient r=nical 2018-07-06 21:25:33 +09:00
Doug Thayer c0c56d6901 Bug 1265824 - Pass the texture direct mapping info to all texture creating functions r=mattwoodrow
The client side can't get the GL context in CompositorOGL. So, it can't know
the texture direct mapping capability directly. This patch adds the texture
direct mapping info in TextureFactoryIdentifier. Then, the client side could
get the info form the TextureFactoryIdentifier.

MozReview-Commit-ID: KEazDVg0p9Y

--HG--
extra : rebase_source : 09ce1065cd076a3a5dc276f93837d608443c60a1
2018-05-02 18:20:25 -07:00
Andrew Osmond 7fb17ddb91 Bug 1469964 - Part 1. Expose WebRender plumbing for partial updates for external images. r=nical 2018-07-12 11:43:09 -04:00
Gurzau Raul ecaa52212e Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-07-04 19:33:40 +03:00
Ryan Hunt f8b04d075b Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
This commit implements the CONTENT_FRAME_TIME metric for the webrender code
path. It follows the same structure as the previous commit implementing it for
the non-webrender code path.

MozReview-Commit-ID: 6aI5uISjgge

--HG--
extra : rebase_source : 973253589d6c27138bd49f4d81b3e74c3fcf5022
extra : histedit_source : 5b126b0285b674d59d8bd4b7bda09a01804dc043
2018-06-26 13:43:14 -05:00
Ryan Hunt 36ba7ed8eb Bug 1470528 - Add IsRootWebrenderBridgeParent method. r=kats
This commit adds a helper function for determining if the WebRenderBridgeParent
is for a content process and replaces uses with it appropriately.

MozReview-Commit-ID: 6YZhjYEYS3P

--HG--
extra : rebase_source : 97b0a86c4a2905d098ab199d6d1a1fd00c58a46d
2018-06-26 13:37:31 -05:00
Ryan Hunt 0412e688a8 Bug 1473301 - Remove BorderLayer. r=mattwoodrow
MozReview-Commit-ID: KGXW2lYBZ3c

--HG--
extra : rebase_source : a782ec3fb1c87d1d034219cbd7fd1b8d9d751559
extra : amend_source : ec7c8f7b4080c53a851117cfb1c7611c3606c562
2018-07-03 16:15:58 -05:00
Narcis Beleuzu 04b4925170 Backed out 3 changesets (bug 1470528) for build bustages on WebRenderBridgeParent. CLOSED TREE
Backed out changeset 90513daef576 (bug 1470528)
Backed out changeset e438548991db (bug 1470528)
Backed out changeset f859daf8d8d9 (bug 1470528)
2018-07-04 00:41:14 +03:00
Ryan Hunt c284332e41 Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
This commit implements the CONTENT_FRAME_TIME metric for the webrender code
path. It follows the same structure as the previous commit implementing it for
the non-webrender code path.

MozReview-Commit-ID: 6aI5uISjgge

--HG--
extra : rebase_source : acbf83d0071e8932b5e96016e6e39e27a7b4da8c
extra : histedit_source : a0f93f80441e5f45c0113244d15400d0f53d9c92
2018-06-26 13:43:14 -05:00
Ryan Hunt 5ca70b4c61 Bug 1470528 - Add IsRootWebrenderBridgeParent method. r=kats
This commit adds a helper function for determining if the WebRenderBridgeParent
is for a content process and replaces uses with it appropriately.

MozReview-Commit-ID: 6YZhjYEYS3P

--HG--
extra : rebase_source : 8ecb1f9146376ac84b84680a5a3454200c940d6a
2018-06-26 13:37:31 -05:00
sotaro 6bfc2aa91f Bug 1472600 - Update SyncHandle when Tab is moved between windows r=nical 2018-07-03 08:43:17 +09:00