Now that we have C++17, and thus inline const, we can do this.
Depends on D56306
Differential Revision: https://phabricator.services.mozilla.com/D56307
--HG--
extra : moz-landing-system : lando
I couldn't get some Windows sandbox code to build with the other patch in this
bug.
Differential Revision: https://phabricator.services.mozilla.com/D56343
--HG--
extra : moz-landing-system : lando
wr::WebRenderPipelineInfo needs to be handled even when WR rendering does not happen.
Differential Revision: https://phabricator.services.mozilla.com/D55899
--HG--
extra : moz-landing-system : lando
In bug 1531142 we made it so that when a spatial node is being pinch-zoomed we
use a local raster-space to avoid rerasterizing glyphs for every slight change
in zoom level. This makes it so that we also apply the same trick when
being asynchronously zoomed by a double-tap gesture.
Differential Revision: https://phabricator.services.mozilla.com/D55699
--HG--
extra : moz-landing-system : lando
In future, WR will consider this when deciding whether an image
should be promoted to be a native compositor surface.
Differential Revision: https://phabricator.services.mozilla.com/D55406
--HG--
extra : moz-landing-system : lando
By bug 1597619 change, MakeCurrent() became not called before calling eglSwapInterval. The comment already mentioned this requirement.
Differential Revision: https://phabricator.services.mozilla.com/D55272
--HG--
extra : moz-landing-system : lando
We add the SideBits to the data we store in the FixedPosScrollTargetTracker. nsDisplayCompositorHitTestInfo then passes the side bits when it sets hit test info. We then pack the side bits into the hit test info bits; luckily they were only using 12 of 16 bits. The wr HitTest api then extracts the side bits from the hit test info bits and passes them back.
Differential Revision: https://phabricator.services.mozilla.com/D54404
--HG--
extra : moz-landing-system : lando
The only use of this was inside Android's nsWindow::PreRender.
That method was removed in changeset 81de9d1439b0e352729142f6aa2914674073da03 (bug 1335895).
Differential Revision: https://phabricator.services.mozilla.com/D53771
--HG--
extra : moz-landing-system : lando
This patch include two performance improvements:
- Only rebuild the DC visual tree if different from last frame.
- Use EGLImage instead of pbuffer for DC <-> GL interop.
These fix most of the talos regressions with DC enabled in WR.
Differential Revision: https://phabricator.services.mozilla.com/D53916
--HG--
extra : moz-landing-system : lando
mSyncObject->Synchronize() was necessary to handle a case that D3D Texture was created on main thread of content process and the Texture does not have a keyed mutex. But with WebRender, the situation does not happen often. Further the Synchronize() is sometimes very slow. Therefore it is better to remove it from RenderCompositorANGLE::BeginFrame().
Canvas 2d does not use keyed mutex yet. Then the change adds keyed mutex usage for the canvas 2d.
D3D11DXVA2Manager still uses the Synchronize(). In this case, the Synchronize() is manually called in D3D11DXVA2Manager::CopyToImage(). Then RenderCompositorANGLE still needs to create SyncObjectHost.
Differential Revision: https://phabricator.services.mozilla.com/D53168
--HG--
extra : moz-landing-system : lando
We already snap the complex clip rects during scene building, taking
into account any necessary transforms and device pixel scaling. Just
like normal clips, we shouldn't round in layout space.
Differential Revision: https://phabricator.services.mozilla.com/D52673
--HG--
extra : moz-landing-system : lando
On Windows, save the Ctrl-Shift-3 capture to the user's local app data
to make sure we have write permissions.
Verified with ./mach run + capture => saved to C:\Users\...\AppData\Local\wr-capture
Differential Revision: https://phabricator.services.mozilla.com/D53208
--HG--
extra : moz-landing-system : lando
These settings are now supplied during layer creation and never change.
Consumers must now create new NativeLayer objects if they want to change size or toggle opaqueness.
This aligns the NativeLayer API with DirectComposition's capabilities. It also simplifies swap chain
management.
Differential Revision: https://phabricator.services.mozilla.com/D51757
--HG--
extra : moz-landing-system : lando
During high contrast mode, alpha is used by SwapChain. In this case, IDXGISwapChain1::Present1() shows nothing with compositor window. To address the problem, we disable the Present1() usage when alpha is used.
Differential Revision: https://phabricator.services.mozilla.com/D52511
--HG--
extra : moz-landing-system : lando
These settings are now supplied during layer creation and never change.
Consumers must now create new NativeLayer objects if they want to change size or toggle opaqueness.
This aligns the NativeLayer API with DirectComposition's capabilities. It also simplifies swap chain
management.
Differential Revision: https://phabricator.services.mozilla.com/D51757
--HG--
extra : moz-landing-system : lando
Removes NofityForUse() functions for simplicity.
Ensure that RenderTextureHost::PrepareForUse() is called before RenderTextureHost:: Lock(). When a task of calling RenderTextureHost::PrepareForUse() is simply posted to render thread, there is a case that RenderTextureHost:: Lock() is called before PrepareForUse() .
Differential Revision: https://phabricator.services.mozilla.com/D51974
--HG--
extra : moz-landing-system : lando
`windowUtils.setCompositionRecording()` now returns a promise that is resolved
when the composition recorder is enabled (if given `true`) or when frames are
written to disk (if given `false`). To accomplish this, the
`WebRenderCompositionRecorder` now returns a `MozPromise` when writing frames
to disk begins that is resolved when that process finishes.
Differential Revision: https://phabricator.services.mozilla.com/D47300
--HG--
extra : moz-landing-system : lando