Commit Graph

13016 Commits

Author SHA1 Message Date
Boris Chiou
d1f4ea261c Bug 1555548 - Send other transform-like properties as non-animating animation into compositor. r=hiro
Not only animating transform-like properties, but also non-animating ones have
to be passed into the compositor, so the final transform matrix could
take them into account (on the compositor).

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

--HG--
extra : moz-landing-system : lando
2019-06-06 18:29:46 +00:00
Kartikaya Gupta
37ebd39e5c Bug 1550467 - Add a test for event untransforms. r=botond
This exercises the transforms propagated in bug 1530661, which is
WebRender-specific (because the events only have the target layers id
set on them if WR is enabled).

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

--HG--
extra : moz-landing-system : lando
2019-06-06 20:49:52 +00:00
Kartikaya Gupta
ff26c575c6 Bug 1550467 - Also install SimpleTest.is into the fission window. r=botond
I split this out so it's more obvious what pieces need to be modified
to add additional functions.

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

--HG--
extra : moz-landing-system : lando
2019-06-06 20:49:43 +00:00
Kartikaya Gupta
575727cc8b Bug 1550467 - Add a basic browser-mochitest for testing APZ+fission codepaths. r=botond,nika
This introduces the framework and helpers needed to do this kind of testing,
and adds a basic sanity test that ensures some basic functionality.

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

--HG--
extra : moz-landing-system : lando
2019-06-06 20:49:34 +00:00
Kartikaya Gupta
aef7a3eaeb Bug 1550467 - Ensure that listeners in chrome scripts are cleaned up. r=botond,jmaher
Apparently leaving these listeners registered can leak DOM windows
(in some circumstances that I don't fully comprehend) which causes
test failures when running on debug builds. At any rate, unregistering
listeners on cleanup seems like a good thing to do.

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

--HG--
extra : moz-landing-system : lando
2019-06-06 20:49:25 +00:00
Miko Mynttinen
6c57050ada Bug 1490404 - Part 2: Add retained display list statistics r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33680

--HG--
extra : moz-landing-system : lando
2019-06-06 17:54:14 +00:00
shindli
3caa33a7ea Merge inbound to mozilla-central. a=merge 2019-06-06 12:57:52 +03:00
sotaro
82b76845fe Bug 1553969 - Do not disable WebRender at ImageBridgeChild when gecko uses WebRender r=nical
Differential Revision: https://phabricator.services.mozilla.com/D33753

--HG--
extra : moz-landing-system : lando
2019-06-06 02:17:22 +00:00
sotaro
6680aadc04 Bug 1556340 - Make D3D11TextureData and DXGIYCbCrTextureData alive during host side usage with WebRender r=nical
By Bug 1555544 , it became clear that D3D11TextureData and DXGIYCbCrTextureData should not be deleted before calling RenderDXGITextureHostOGL::EnsureLockable() / RenderDXGITextureHostOGL::EnsureLockable().

With WebRender, the EnsureLockable()s are called on RenderThread asynchronously. Then for achieving the above, it is simpler just to keep D3D11TextureData and DXGIYCbCrTextureData alive during host side usage.

There is already a mechanism to do it. By using NotifyNotUsed, it could be done.

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

--HG--
extra : moz-landing-system : lando
2019-06-05 22:50:50 +00:00
Ryan Hunt
d1d4eb916c Bug 1556557 - Remove BrowserChildBase. r=nika
This class is only inherited by BrowserChild and seems to be a remnant of
the B2G days.

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

--HG--
extra : rebase_source : 504b3185b4cf59bcd4150935b9569641fbf8f844
extra : source : 82604ba5659a292616a10d19ad3f977b3094b33e
extra : histedit_source : 24b70700a41aeac53e2f34bf1f190867ffb75af6
2019-06-03 16:04:46 -04:00
Ryan Hunt
298a301151 Bug 1556548 - Make RenderFrame an internal detail to BrowserParent. r=mattwoodrow,farre
Code outside of BrowserParent should just get the LayersId from a getter
and not worry about RenderFrame.

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

--HG--
extra : rebase_source : 63f9f9680a7cb16a18d9e56999e02a124aa63429
extra : source : e86839ca63260b09184755c98890fa8abf371530
extra : histedit_source : 34333f5f78ecf9b4f3e12c6175a6e81724a41fb2
2019-05-31 16:00:57 -05:00
Andrew Osmond
d639d2c5ac Bug 1435586 - Use static gfxPlatform methods directly instead of requiring initialization. r=kats
gfxPlatform::GetSourceSurfaceForSurface and CreateDrawTargetForSurface
are both static methods that we sometimes use via the pattern
gfxPlatform::GetPlatform()->... This is problematic because this forces
gfxPlatform to be initialized in the process, and in the GPU process, we
don't support this. It should be safe to call these methods without
initializing gfxPlatform, so this patch removes the GetPlatform() call.

GetSourceSurfaceForSurface may end up initializing gfxPlatform anyways,
depending on whether or not a DrawTarget was given. This should not be a
concern for the crashes observed in bug 1435586.

Differential Revision: https://phabricator.services.mozilla.com/D33785
2019-06-05 12:40:26 -04:00
Noemi Erli
e6c999f792 Backed out 2 changesets (bug 1554790) for failures in reftest-resolution.html
Backed out changeset 01f72d6cc13b (bug 1554790)
Backed out changeset 3a41c4ed8bf3 (bug 1554790)
2019-06-05 23:24:26 +03:00
Botond Ballo
6bdb9a362d Bug 1554790 - Use reftest-resolution where appropriate in APZ scrollbar rendering reftests. r=kats
With this change, the tests in question pass on desktop, except for
scrollbar-zoom-resolution-2.html which is annotated as failing.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 18:26:04 +00:00
Ryan Hunt
267c1c0f34 Bug 1519546, part 8 - Also gather EffectsInfo for remote browsers with WebRender. r=jrmuizel
The nsDisplayListBuilder bits were added in the previous commit.

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

--HG--
extra : rebase_source : aec41ccaaab4c99b11ed94baf908d1ec61eaee31
extra : intermediate-source : bbcfdcc12774c1b8d78c6420614141382fed3d40
extra : source : 489c8d663f7f63ea32d3eb2226d45a84e51aabe8
2019-05-24 09:28:34 -05:00
sotaro
e9e8848ea1 Bug 1555544 - Remove calling TextureClient::CancelWaitForNotifyNotUsed() r=jgilbert
Flickering happened when SharedSurface_ANGLEShareHandle is destroyed before RenderDXGITextureHostOGL::EnsureLockable() is called on Render thread. RenderDXGITextureHostOGL failed at device->OpenSharedResource() . In this case, SharedSurface_ANGLEShareHandle failed to render. Then black was rendered.

If  TextureClient::CancelWaitForNotifyNotUsed() is not called, the refcount is kept until the host side ends its usage. The refcount is removed by CompositorBridgeChild::NotifyNotUsed().

Depends on D33265

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

--HG--
extra : moz-landing-system : lando
2019-05-31 12:35:42 +00:00
sotaro
16ce9c4a30 Bug 1555544 - Change function name from CancelWaitForRecycle() to CancelWaitForNotifyNotUsed() r=jgilbert
CancelWaitForRecycle() does not cancel wait for recycling. It cancels wait for end of usage on host side.

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

--HG--
extra : moz-landing-system : lando
2019-06-01 09:37:56 +00:00
Barret Rennie
8923589429 Bug 1551735 - Clearly document the case of the RendererOGL receiving a new WebRenderCompositionRecorder while it has one r=kats
Differential Revision: https://phabricator.services.mozilla.com/D32356

--HG--
extra : moz-landing-system : lando
2019-05-31 00:31:52 +00:00
Barret Rennie
d9cb9952d0 Bug 1551735 - Record compositions in Web Render r=kats
Now that we have a suitable composition recorder infrastructure, it is just a
matter of plumbing the `WebRenderCompositionRecorder` from the
`CompositorBridgeParent` to the `RenderThread` to start recording frames.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 00:31:39 +00:00
Barret Rennie
f5ab9bc353 Bug 1551735 - Add a thread-safe composition recorder for WebRender r=kvark,kats
Since WebRender does its rendering on a separate thread from the compositor
thread, we need a composition recorder that can be shared between threads.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 00:31:24 +00:00
Barret Rennie
fc26f28fc6 Bug 1551735 - Ref count and document CompositionRecorder r=kats
The CompositionRecorder was being stored as a UniquePtr on the
CompositorBridgeParent, but was then passed to and stored on the LayerManger as
a raw pointer. This has been updated to use a RefPtr.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 00:30:24 +00:00
Barret Rennie
5bbd89905f Bug 1555379 - Record content paint times for WebRender r=kats
The WebRenderBridgeChild now records whether or not it was painting content
while sending display lists to the WebRenderBridgeParent, allowing for
composition times to be recorded for WebRender.

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

--HG--
extra : moz-landing-system : lando
2019-05-30 21:08:01 +00:00
Barret Rennie
67fb95c52f Bug 1555379 - Document the various CompositionPayloadTypes r=bas
Differential Revision: https://phabricator.services.mozilla.com/D33055

--HG--
extra : moz-landing-system : lando
2019-05-30 20:38:52 +00:00
Coroiu Cristina
0c344192ae Backed out 7 changesets (bug 1551735) for build bustage at src/gfx/layers/wr/WebRenderCompositionRecorder.h on a CLOSED TREE
Backed out changeset 98e75ac2cf4f (bug 1551735)
Backed out changeset 152e3a6e5c10 (bug 1551735)
Backed out changeset 9deb5350e244 (bug 1551735)
Backed out changeset 6154bdfe6fad (bug 1551735)
Backed out changeset 4a0936bda490 (bug 1551735)
Backed out changeset a7868d694fe1 (bug 1551735)
Backed out changeset 06c8e5f7768d (bug 1551735)
2019-05-31 00:05:00 +03:00
Barret Rennie
1725af146a Bug 1551735 - Clearly document the case of the RendererOGL receiving a new WebRenderCompositionRecorder while it has one r=kats
Differential Revision: https://phabricator.services.mozilla.com/D32356

--HG--
extra : moz-landing-system : lando
2019-05-30 20:19:56 +00:00
Barret Rennie
0177b781d0 Bug 1551735 - Record compositions in Web Render r=kats
Now that we have a suitable composition recorder infrastructure, it is just a
matter of plumbing the `WebRenderCompositionRecorder` from the
`CompositorBridgeParent` to the `RenderThread` to start recording frames.

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

--HG--
extra : moz-landing-system : lando
2019-05-30 20:19:48 +00:00
Barret Rennie
6e0b85ac76 Bug 1551735 - Add a thread-safe composition recorder for WebRender r=kvark,kats
Since WebRender does its rendering on a separate thread from the compositor
thread, we need a composition recorder that can be shared between threads.

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

--HG--
extra : moz-landing-system : lando
2019-05-30 20:32:42 +00:00
Barret Rennie
76600ea0a2 Bug 1551735 - Ref count and document CompositionRecorder r=kats
The CompositionRecorder was being stored as a UniquePtr on the
CompositorBridgeParent, but was then passed to and stored on the LayerManger as
a raw pointer. This has been updated to use a RefPtr.

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

--HG--
extra : moz-landing-system : lando
2019-05-30 20:17:39 +00:00
Noemi Erli
02b7a9faeb Backed out 7 changesets (bug 1551735) for build bustages in RenderThread.cpp CLOSED TREE
Backed out changeset aa165d8c181d (bug 1551735)
Backed out changeset e7b857609786 (bug 1551735)
Backed out changeset f2a2396a0d4a (bug 1551735)
Backed out changeset 5891d00fca85 (bug 1551735)
Backed out changeset 2e6ca6d6c527 (bug 1551735)
Backed out changeset 3b2078f90715 (bug 1551735)
Backed out changeset a516d20303e6 (bug 1551735)
2019-05-30 23:10:21 +03:00
Barret Rennie
969a6a61ea Bug 1551735 - Clearly document the case of the RendererOGL receiving a new WebRenderCompositionRecorder while it has one r=kats
Differential Revision: https://phabricator.services.mozilla.com/D32356

--HG--
extra : moz-landing-system : lando
2019-05-29 21:53:44 +00:00
Barret Rennie
69f79b959b Bug 1551735 - Record compositions in Web Render r=kats
Now that we have a suitable composition recorder infrastructure, it is just a
matter of plumbing the `WebRenderCompositionRecorder` from the
`CompositorBridgeParent` to the `RenderThread` to start recording frames.

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

--HG--
extra : moz-landing-system : lando
2019-05-29 23:05:54 +00:00
Barret Rennie
75ce1caae2 Bug 1551735 - Add a thread-safe composition recorder for WebRender r=kvark,kats
Since WebRender does its rendering on a separate thread from the compositor
thread, we need a composition recorder that can be shared between threads.

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

--HG--
extra : moz-landing-system : lando
2019-05-30 13:06:43 +00:00
Barret Rennie
00a6425f1f Bug 1551735 - Ref count and document CompositionRecorder r=kats
The CompositionRecorder was being stored as a UniquePtr on the
CompositorBridgeParent, but was then passed to and stored on the LayerManger as
a raw pointer. This has been updated to use a RefPtr.

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

--HG--
extra : moz-landing-system : lando
2019-05-29 21:52:12 +00:00
Boris Zbarsky
d2959ecb98 Bug 1553018 part 2. Make various gfx preferences bindings use in Pref annotations on interfaces follow the StaticPrefs naming convention for getters. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D32943

--HG--
extra : moz-landing-system : lando
2019-05-30 17:21:57 +00:00
Srujana Peddinti
2a3531f404 Bug 1549504 - Assert that AsyncPanZoomController::mRecursiveMutex is held in Metrics() r=botond
Moved assertion statement from GetFrameMetrics() to Metrics() so that internal accesses to the frame metrics are covered as well.

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

--HG--
extra : moz-landing-system : lando
2019-05-29 18:42:03 +00:00
Ryan Hunt
445c058173 Bug 1553136 - Match CompositorManagerChild::ProcessingError behavior in UiCompositorControllerChild. r=rbarker
This will make this site only crash in debug, nightly, or dev edition builds.

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

--HG--
extra : moz-landing-system : lando
2019-05-29 16:08:16 +00:00
Noemi Erli
ac1c8c1fe6 Merge inbound to mozilla-central. a=merge 2019-05-29 12:49:15 +03:00
Andrew Osmond
fbce6c5efa Bug 1524280 - Part 2. Store the blob image reference to each shared surface in BlobItemData. r=jrmuizel
When a blob image invalidates, it doesn't always repaint the entire
blob. When we stored the shared surface references in the DIGroup, it
would incorrectly forgot about images referenced by items that were not
invalidated when it repainted. As such, it could free them too early and
cause a crash when rasterizing the blob in the compositor process.

This did not crash most of the time because the image cache would bail
us out. It takes a full minute for the image cache to expire, but the
issue was more readily reproducible when that timeout was shortened.

We now store the references in BlobItemData, on a per display item
basis. This ensures that when any given item is invalidated, it will
continue referencing any resources that it needs.

Differential Revision: https://phabricator.services.mozilla.com/D32820
2019-05-28 16:23:52 -04:00
Andrew Osmond
c7f25f38ce Bug 1524280 - Part 1. Ensure we always post when freeing SharedUserData. r=jrmuizel
We now also post the releasing of the shared surface image keys and
external image ID to the main thread. This allows the current
transaction to complete before freeing the surface, which guards against
cases where the surface is referenced and released somehow in the space
of the same transaction.


Differential Revision: https://phabricator.services.mozilla.com/D32861
2019-05-28 16:23:52 -04:00
sotaro
acbc3518d5 Bug 1554091 - Remove WrExternalImageBufferType r=jrmuizel
If ExternalImageType is just passed from C to rust, it caused crash on non-Windows platform. It was caused by stack corruption. Then &ExternalImageType is used instead of ExternalImageType to bypass the problem.

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

--HG--
extra : moz-landing-system : lando
2019-05-28 22:03:54 +00:00
Barret Rennie
ac1f6702c5 Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Differential Revision: https://phabricator.services.mozilla.com/D32228

--HG--
extra : moz-landing-system : lando
2019-05-28 15:32:29 +00:00
Barret Rennie
f615aee5a7 Bug 1553261 - Clean up some of the CompositionPayload infrastructure r=kats
Some time ago (bug 819791), InfallibleTArray and nsTArray become equivalent, so
continuing to use InfallibleTArray here will just lead to confusion.

In addition, the overloaded `RegisterPayload` could take either a single
payload or multiple, so I've split it into
`RegisterPayload(CompositionPayload&)` and
RegisterPayloads(nsTArray<CompositionPayload>&)`

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

--HG--
extra : moz-landing-system : lando
2019-05-28 13:42:57 +00:00
Botond Ballo
9ef9fc2fd8 Bug 1554794 - Add PresShell::UsesMobileViewportSizing() and use it in place of GetIsViewportOverridden() where appropriate. r=kats,hiro
With desktop zooming, we need to separate the concepts of "may have a distinct
visual viewport" from "has mobile viewport sizing logic applied to it".

This can be thought of as completing the disentanglement of zooming from meta
viewport support started in bug 1459260.

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

--HG--
extra : moz-landing-system : lando
2019-05-28 13:31:59 +00:00
Alexis Beingessner
6af060e8b1 Bug 1553295 - let masks be active in blobs. r=jrmuizel
There doesn't seem to be a reason *not* to do this (merely an omission),
and the results we get without it are messing up somewhere with invalidation
and image cache management.

This is likely just a bandaid over a more serious issue, but if we never observe
that issue, does it exist..?

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

--HG--
extra : moz-landing-system : lando
2019-05-28 14:55:48 +00:00
Matt Woodrow
f732a16883 Bug 1468728 - Don't try to maintain visible regions for Layers that might need to have a 3d representation. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D30452

--HG--
extra : moz-landing-system : lando
2019-05-27 20:21:06 +00:00
Andrew Osmond
042a189a68 Bug 1536997 - Fix broken assert for recycling animated images with WebRender. r=kats
By default, recycling frames for animated images is enabled. However the
first frame is never recycled because we may need the first frame
immediately if the animation is reset. If only the first frame of an
animation is displayed before shutting down a tab, then it will not
correctly register with the layer state manager prior to its
destruction. This trips an assert incorrectly.

Now we just always register with the layer state manager if recycling is
enabled, and never if recycling is disabled. This allows us to remove
from state information at the cost of requiring a restart to toggle to
recycling pref (which is almost never done now that the feature is
stable.)

Differential Revision: https://phabricator.services.mozilla.com/D32526
2019-05-27 13:45:32 -04:00
Coroiu Cristina
16e94ed95a Merge inbound to mozilla-central a=merge 2019-05-27 00:13:53 +03:00
Razvan Maries
6fbdaf61c3 Backed out changeset f9699ae30f4d (bug 1213601) on jrmuizel's request. 2019-05-26 18:12:56 +03:00
Jean-Yves Avenard
022c57caf3 Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
And with some tidying some comments and removing stray #include "gfxPrefs.h"

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

--HG--
extra : moz-landing-system : lando
2019-05-26 14:31:53 +00:00
Jean-Yves Avenard
5322579cda Bug 1550422 - P19. Convert gfxPrefs::LayersWindowRecordingPath to gfxVars. r=jrmuizel
StaticPrefs doesn't support nsCString type and the changes required to support this would be rather big. Seeing that there was only a single gfxPrefs using this, and this is a "Once" pref ; we move it to gfxVars instead.

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

--HG--
extra : moz-landing-system : lando
2019-05-26 14:30:57 +00:00