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

13024 Коммитов

Автор SHA1 Сообщение Дата
Bob Owen 9b1c422ff4 Bug 1464032 Part 10: Add a CanvasTranslator and canvas recorded events. r=jrmuizel
These are extensions to the Moz2D RecordedEvents to record and play back canvas
texture related functions in the GPU process.
The CanvasTranslator handles the playback of these and the Moz2D ones.
2018-12-02 14:17:12 +00:00
Bob Owen 8f860de188 Bug 1464032 Part 8: Add a CanvasEventRingBuffer and CanvasDrawEventRecorder. r=Gankro
These are to be used as part of recording canvas drawing in the content
processes and playing it back in the GPU process through shared memory.
2018-12-02 14:14:43 +00:00
Bob Owen 8b5ea2b146 Bug 1464032 Part 7: Take snapshot before return for TextureClients with synchronization. r=mattwoodrow
This is so we don't need to lock the previous back buffer when it might also be
locked by the compositor. These locks are generally for copying to the next
back buffer or when getting image data from the previous back buffer.
This also makes it easier to asynchronously cache the DataSourceSurface in the
GPU process, when a page is using getImageData. This is done in a later patch.
2018-12-02 14:14:35 +00:00
Bob Owen e25e5074c1 Bug 1464032 Part 6: Add remote canvas pref and refactor TextuteData creation to use it. r=mattwoodrow
This is ground work for when we will be returning a recording TextureData for
certain types in subsequent patches.
2018-11-28 20:44:27 +00:00
Bob Owen fd4b37602b Bug 1464032 Part 1: Fix unified build issues. r=jrmuizel 2018-12-02 14:02:27 +00:00
Daniel Varga fe7dbedf22 Merge mozilla-inbound to mozilla-central. a=merge 2019-06-07 12:50:35 +03:00
Csoregi Natalia eb1f65e802 Merge mozilla-central to mozilla-inbound. CLOSED TREE 2019-06-07 01:40:06 +03:00
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
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
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
Bas Schouten 44af4c9b25 Bug 1555098: Fall back to non-double buffering when double buffering swap chain creation fails in CompositorD3D11, the way we do in advanced layers. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33745

--HG--
extra : rebase_source : 02000eeb042542b6e1c4900ceefca69ee6d8eabc
2019-06-05 06:39:45 +02: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